Synchronous orbit radius calculator
For Earth, with a mass of 5.9722e24 kg and a sidereal day of 86164.0905 s, a synchronous orbit sits 42164.2437691 km from the centre. Enter any planet's mass and rotation period to get the radius in metres and kilometres. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Mass
- 5,972,200,000,000,000,000,000,000
- Day length
- 86,164.0905
- Mass kg
- 5,972,200,000,000,000,000,000,000
- Day length seconds
- 86,164.0905
- Gravitational constant
- 0.0000000001
- Gravitational parameter
- 398,602,544,600,000
A synchronous orbit has an orbital period equal to the rotation period of its central body. This calculator returns the required radius measured from the planet's center when you provide the planet mass and sidereal day length. It applies the circular two-body form of Kepler's third law with the standard gravitational constant. The result is supplied in metres and kilometres, making it useful for physics exercises, early mission estimates, and comparisons between planets. The browser calculation is deterministic, and the same inputs always produce the same output.
Choose the mass and the correct kind of day
Enter the central body's mass in kilograms and its sidereal day length in seconds. The mass is the mass of the planet, moon, or other dominant body, not the satellite. The sidereal day is the time the body takes to rotate once relative to distant stars.
It can differ from the familiar solar day measured from noon to noon because the planet also moves along its orbit. For Earth, a true synchronous calculation therefore normally uses about 86164 seconds rather than 86400 seconds. Both inputs must be finite and positive.
A zero day length has no physical meaning in this model and makes the requested period degenerate, so the calculator returns an invalid-input error instead of a misleading radius. Convert hours or days to seconds before submitting the value, and convert masses expressed in scientific notation carefully. The input contract uses SI units deliberately, preventing hidden unit conversions from changing an otherwise straightforward application of Kepler's third law.
Understand the radius returned by the formula
The calculator starts with the standard gravitational parameter, GM, where G is the Newtonian gravitational constant and M is the central-body mass. For a circular orbit, the period relation is T squared equals four pi squared times r cubed divided by GM. Rearranging gives r as the cube root of GM times T squared divided by four pi squared.
The returned orbital radius is measured from the center of the body, not from its surface. That distinction matters: altitude requires subtracting a planetary radius, and this capability intentionally does not ask for one or claim to return altitude. The output includes metres and kilometres for convenience, plus the gravitational parameter and a formula label that make calculations easier to audit.
The model treats the satellite mass as negligible compared with the planet mass. It also assumes a circular two-body orbit and does not include oblateness, third-body gravity, radiation pressure, atmospheric drag, or station-keeping corrections.
Use the result as a first-order engineering value
A synchronous radius is most useful as a transparent first estimate. It can check a classroom answer, establish the scale of an orbit around an unfamiliar planet, or provide an initial radius for a more detailed numerical model. A positive mathematical radius does not by itself prove that a practical orbit exists.
Compare the result with the body's physical radius, atmosphere, ring system, Roche region, and sphere of influence. If the calculated radius lies inside the body, the requested synchronous circular orbit is not physically available above the surface. Direction also matters in real mission terminology: a geostationary orbit is a special prograde, circular, equatorial synchronous orbit, while a general synchronous orbit need not appear fixed over one longitude.
This calculator answers only the period-matching radius question. Use a full propagator for perturbations, inclination, eccentricity, launch constraints, stability, or long-term station keeping.
What you can do with it
Check orbital mechanics homework
Verify the center-to-center radius obtained from Kepler's third law without mixing a solar day with a sidereal day.
Compare synchronous orbits across planets
Use tabulated masses and rotation periods to compare the scale of period-matched circular orbits around different bodies.
Seed a preliminary mission model
Generate a deterministic first-order radius before adding surface altitude, perturbations, inclination, and operational constraints.
FAQ
What formula does the calculator use?
It uses r = cbrt(G × M × T² / (4 × pi²)), the circular two-body form of Kepler's third law solved for orbital radius.
Is the result an altitude above the surface?
No. It is the orbital radius from the center of the planet. Subtract the planet's physical radius separately to obtain a first-order surface altitude.
Should I enter a solar day or a sidereal day?
Use the sidereal rotation period, because synchronization is defined relative to the body's rotation against inertial space.
What happens when day length is zero?
Zero is explicitly rejected because it cannot describe a physical rotation period for this model.
What is the synchronous orbit radius for Earth?
42164.2437691 km from Earth's centre, using a mass of 5.9722e24 kg and a sidereal day of 86164.0905 s. Subtract the planet's radius if you need the height above the surface.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/mech/synchronous-orbit-radius \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mass":5.9722e+24,"day_length":86164.0905}'const res = await fetch("https://api.kit.forhosting.com/mech/synchronous-orbit-radius", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mass": 5.9722e+24,
"day_length": 86164.0905
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/synchronous-orbit-radius",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mass": 5.9722e+24,
"day_length": 86164.0905
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/synchronous-orbit-radius", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mass":5.9722e+24,"day_length":86164.0905}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mass":5.9722e+24,"day_length":86164.0905}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/synchronous-orbit-radius", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"mass": 5.9722e+24,
"day_length": 86164.0905
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.synchronous_orbit_radius",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Use the result as a first-order engineering value
When automating repeated calculations through the API, each successful item uses the published base price of $0.002.
Technical questions
How much does an API calculation cost?
Each successful API item uses the published base price of $0.002. Invalid input is rejected rather than returned as a numerical result.