API · /servo-api

RC Servo & PWM API

healthy 4,008 Subscribers

RC servo and PWM maths as an API, computed locally and deterministically — the pulse-width, angle and duty-cycle numbers a robotics, RC or embedded developer drives a servo with. The angle endpoint turns a pulse width into the servo angle: a hobby servo reads the width of the pulse (not a duty cycle), so the standard 1000–2000 µs maps linearly across the travel with 1500 µs at centre — angle = (pulse − min) ÷ the min-to-max span × the travel — and it flags when a pulse asks for more than the configured range so you do not drive the servo into its mechanical stops. The pulse endpoint runs it the other way, giving the pulse width a microcontroller should write for a target angle (90° is 1500 µs on a 1000–2000 µs / 180° servo), exactly what an Arduino-style servo library computes under the hood. The duty endpoint converts a pulse and a refresh frequency into the PWM period and duty cycle: a 50 Hz servo frame is 20 ms, so a 1500 µs pulse is just 7.5 % duty — the value a timer peripheral needs — and faster frames for digital servos or multirotor ESCs (e.g. 333 Hz) change it. Everything is computed locally and deterministically, so it is instant and private. Ideal for robotics and RC firmware, microcontroller and embedded tools, drone and animatronics projects, and maker calculators. Pure local computation — no key, no third-party service, instant. 3 compute endpoints. For stepper steps-per-mm use a stepper-motor API.

api.oanor.com/servo-api
Get an API key Try in playground → Contact provider

Machine-readable spec so AI agents can integrate this API.

/api/servo-api/openapi.json
/api/servo-api/llms.txt

Discovery: GET /api/index.json lists every API.

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
92 ms
Server probes · 24h
Subscribers
4,008
active
Total calls
4
last 7 days
status Full status page → · 8 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 8,200 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 8,200 calls/month
  • 2 req/sec
  • Angle + pulse + duty
  • No credit card
Sign in to subscribe

Starter

€7.90 /month

  • 84,000 calls / month
  • 6 requests / second
  • Hard cap (429 above quota, no overage)
  • 84,000 calls/month
  • 6 req/sec
  • Custom min/max/travel & frequency
  • Email support
Sign in to subscribe

Pro

€27.50 /month

  • 345,000 calls / month
  • 15 requests / second
  • Hard cap (429 above quota, no overage)
  • 345,000 calls/month
  • 15 req/sec
  • Robotics & firmware pipelines
  • Priority support
Sign in to subscribe

Mega

€85.00 /month

  • 1,580,000 calls / month
  • 40 requests / second
  • Hard cap (429 above quota, no overage)
  • 1,580,000 calls/month
  • 40 req/sec
  • Platform scale
  • Dedicated SLA
Sign in to subscribe

Built by

Related APIs

Other APIs with overlapping tags.

Stepper Motor API

Stepper-motor motion maths as an API, computed locally and deterministically — the steps-per-millimetre and speed numbers a 3D-printer, CNC or robotics builder configures a machine with. The leadscrew endpoint gives the steps per mm for a lead-screw or ball-screw axis: (motor steps per revolution × microstepping) ÷ the screw lead, so a 1.8° motor (200 steps) at 16 microsteps on an 8 mm-lead screw is 400 steps/mm with 2.5 µm of resolution — the value that goes straight into the firmware. The belt endpoint does the same for a belt-and-pulley axis, where the travel per motor turn is the pulley teeth × the belt pitch (GT2 belt = 2 mm), so a 20-tooth GT2 pulley gives the classic 80 steps/mm of a 3D-printer X/Y axis, and shows the speed-versus-precision trade of a bigger pulley. The speed endpoint turns a steps-per-mm and a step pulse rate into the axis speed in mm/s and mm/min — at 80 steps/mm a 40 kHz step rate is 500 mm/s, though the real limit is the motor stalling at high step rates and the controller pulse ceiling. It also notes that microstepping adds smoothness, not true accuracy, since torque per microstep falls. Everything is computed locally and deterministically, so it is instant and private. Ideal for 3D-printer and CNC firmware setup, motion-control and robotics tools, and maker calculators. Pure local computation — no key, no third-party service, instant. Ideal-geometry estimates — leave a margin below the theoretical top speed. 3 compute endpoints. For CNC surface finish use a CNC-finish API; for gear ratios a gear-ratio API.

api.oanor.com/steppermotor-api

Drone Build API

Multirotor (drone) flight maths as an API, computed locally and deterministically — the thrust, efficiency and hover numbers an FPV builder or UAV designer dials a quadcopter in with. The thrust-weight endpoint gives the thrust-to-weight ratio, total motor thrust ÷ all-up weight: aim for at least 2:1 so the craft has authority to hold position and fight wind, with freestyle wanting 3–5:1 and heavy-lift living near 1.5:1 — four 800-gram motors on a 1,200-gram quad is a punchy 2.67:1. The disk-loading endpoint gives the rotor disk loading, weight ÷ total prop disk area, where lower is more efficient: big slow props move more air for less power, which is why endurance and cinematic rigs run large props at low disk loading. The hover-throttle endpoint gives the hover throttle, all-up weight ÷ total thrust — a good build hovers near 40–50 % leaving headroom for manoeuvres, while hovering above ~60 % means it is overweight, sluggish and runs hot. Everything is computed locally and deterministically, so it is instant and private. Ideal for FPV and drone-build apps, UAV-design and motor-selection tools, hobbyist calculators, and maker sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Estimates — bench-test motors at your voltage and prop. For battery runtime use a battery API.

api.oanor.com/drone-api

Voltage Divider API

Resistive voltage-divider circuit design as an API, computed locally and deterministically. The divide endpoint takes an input voltage and two resistors and returns the output voltage Vout = Vin·R2/(R1+R2), the current I = Vin/(R1+R2) that flows through the chain, and the power dissipated in each resistor and in total — a 12 V source with R1 = 1 kΩ and R2 = 2 kΩ gives 8 V at 4 mA. The loaded endpoint adds a load resistor across R2, computes the parallel combination R2′ = R2·RL/(R2+RL) and the loaded output Vout = Vin·R2′/(R1+R2′), and reports the droop in volts and percent against the unloaded value, the classic mistake when a divider feeds a real load. The resistor endpoint sizes the missing resistor for a target output — R2 = R1·Vout/(Vin−Vout) or R1 = R2·(Vin−Vout)/Vout — so you can pick parts for a reference or sensor-bias point. All quantities are volts, ohms, amps and watts. Everything is computed locally and deterministically, so it is instant and private. Ideal for electronics, embedded, hardware, sensor-interfacing and EE-education app developers, reference-voltage and bias-network tools, and maker software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is the resistive divider; for a single Ohm’s-law relationship use an Ohm’s-law API and for RC/RL filters an RC-filter API.

api.oanor.com/voltagedivider-api

Telescope Optics API

Telescope optics maths as an API, computed locally and deterministically — the magnification, exit-pupil and resolving-power numbers an amateur astronomer or stargazing-app developer picks gear and eyepieces with. The magnification endpoint gives magnification = the telescope's focal length ÷ the eyepiece focal length (a 1000 mm scope with a 10 mm eyepiece is 100×), the focal ratio, and — from the aperture — the useful range from about the aperture in mm ÷ 7 (lowest useful, a 7 mm exit pupil) up to roughly 2× the aperture in mm, beyond which the image only dims and blurs; pass an eyepiece apparent field and it returns the true field of view. The exit-pupil endpoint gives aperture ÷ magnification, the width of the light beam leaving the eyepiece — a big 4–7 mm exit pupil for bright wide views of nebulae, a small 0.5–2 mm for the Moon and planets at high power. The resolution endpoint gives the Dawes limit ≈ 116 ÷ aperture(mm) and the slightly stricter Rayleigh limit ≈ 138 ÷ aperture in arcseconds, plus the limiting magnitude ≈ 2.7 + 5·log₁₀(aperture mm) — bigger glass splits finer doubles and reaches fainter stars, though seeing usually caps real resolution near 1 arcsecond. Everything is computed locally and deterministically, so it is instant and private. Ideal for astronomy and stargazing apps, telescope-shop and eyepiece-calculator tools, and observing-planner utilities. Pure local computation — no key, no third-party service, instant. 3 compute endpoints. For camera/thin-lens imaging use a lens API; for stellar magnitudes a star-magnitude API.

api.oanor.com/telescope-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for RC Servo & PWM API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call RC Servo & PWM API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for RC Servo & PWM API?
Free tier allows 1 request per second. Paid plans scale up to 50 requests per second on the Mega tier. Hard limits return HTTP 429 above the quota — no surprise overage charges.
How much does RC Servo & PWM API cost?
RC Servo & PWM API has a free tier with 100 calls / month. Paid plans start at €7.90 / month with higher quotas and faster rate limits.
Can I cancel my subscription anytime?
Yes. Plans are billed monthly and you can cancel anytime from your billing dashboard. No long-term contracts and no cancellation fee.
Is RC Servo & PWM API GDPR-compliant?
All requests to RC Servo & PWM API go through our EU-based gateway. Your upstream API key never leaves our server and no personal data is shared with the upstream provider beyond the request you send.

Pick an endpoint from the list on the left to see its details and try it.

Code snippets

Sign up to get an API key, then call any path under your slug.

curl https://api.oanor.com/servo-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/servo-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/servo-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
    "https://api.oanor.com/servo-api/SOME_PATH",
    headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())

Ratings

Sign in to rate.

No reviews yet.

Discussion

Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.

Sign in to start a thread or reply.

Sign in

New thread

/ 4000

📌 Pinned 🔒 Locked

·

· ·

/ 4000

🔒 This thread is locked — no new replies.

  • No threads yet — start the discussion.

Support

Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.

Sign in to open a support ticket.

Sign in

Open new ticket

Describe what you need help with. The provider team gets an email and replies on the ticket page.

  • No tickets yet for this API.

Subscription active — calls can start immediately.

Send your first request —

Subscription active — copy a snippet and fire off your first call.