Orbit total energy calculator
A 1000 kg satellite circling a 5.972 × 10²⁴ kg planet at 6,771,000 m from its centre has a negative total energy, which means it is bound. Enter the two masses and the radius to get kinetic plus potential energy in joules. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Central mass
- 5,972,000,000,000,000,000,000,000
- Satellite mass
- 1,000
- Radius
- 6,771,000
- Total mechanical energy
- -29,433,554,570.96441 joule
- Gravitational constant
- 0.0000000001
This orbit total energy calculator finds the combined kinetic and gravitational potential energy of a satellite moving in a circular orbit. Enter the central body's mass, the satellite's mass, and the orbital radius measured from the central body's center. The negative result expresses that the satellite is gravitationally bound: energy must be added for it to escape to an infinitely distant point with zero remaining speed.
What total mechanical energy means in a circular orbit
A satellite in orbit has positive kinetic energy because it is moving, and negative gravitational potential energy because it is bound to the central body. For a circular orbit, gravity supplies exactly the centripetal force required to keep the satellite at a constant radius. Here, G is the gravitational constant, M is the central body's mass, m is the satellite's mass, and r is the distance from the central body's center to the satellite.
The answer is negative for every valid set of positive inputs. That sign is physically important rather than a bookkeeping convention: it says the orbiting object does not possess enough mechanical energy to reach infinity. A result with a larger negative magnitude represents a more tightly bound orbit.
Moving the same satellite to a larger circular radius makes the energy less negative, while increasing either mass makes its magnitude larger. The calculator reports joules when masses are in kilograms, radius is in meters, and G uses its default SI value.
Enter radius and masses with consistent units
Use the orbital radius, not merely the altitude above a planet's surface. For a satellite at a stated altitude, add the central body's mean radius before entering the value. This distinction is often the largest source of error in low-orbit calculations because altitude and center-to-center distance can differ by thousands of kilometers.
With the default gravitational constant, enter the central mass and satellite mass in kilograms and radius in meters; the resulting total mechanical energy is in joules. You may provide a different positive gravitational constant for another internally consistent unit system or for a classroom convention, but every input must then follow that same system. Both masses must be positive and finite.
Radius must also be positive and finite. In particular, a zero radius produces an input error because the formula would divide by zero and because a point at the central body's center cannot describe a circular orbit. These checks prevent an apparently precise but physically meaningless result.
Interpret the result and understand the model limits
The returned value is the total mechanical energy of the satellite under the standard circular two-body approximation. It is not the gravitational potential energy alone. In a circular orbit, potential energy is -GMm/r, kinetic energy is +GMm/(2r), and their sum is therefore -GMm/(2r).
This relationship makes the calculator useful for checking textbook work, estimating the ideal energy difference between circular orbits, and validating simulation output. To compare two circular orbits, calculate each total separately and subtract the initial value from the final value. A transfer to a higher orbit normally requires a positive energy increase because the final total is closer to zero.
Real missions also depend on transfer trajectories, propulsion efficiency, staging, atmospheric drag, and the central body's rotation, so the difference in ideal orbital energies is not by itself a launch fuel requirement. The model further assumes that the central mass dominates, the orbit is circular, bodies can be treated as point masses or spherical masses, and disturbances from other bodies are negligible. For an elliptical orbit, use the semi-major-axis form of orbital energy instead of substituting a changing instantaneous radius into this circular formula.
What you can do with it
Check orbital mechanics homework
Verify the sign and magnitude of a circular satellite orbit's total mechanical energy from the stated masses and radius.
Compare two circular orbits
Calculate the total energy at two radii and subtract the results to estimate the ideal energy change between them.
Validate simulation output
Compare a circular-orbit model's conserved mechanical energy with the closed-form analytical result.
FAQ
Why is total orbital energy negative?
The negative sign means the satellite is gravitationally bound and requires additional energy to escape to infinity.
Should I enter altitude or orbital radius?
Enter radius measured from the central body's center. Add the body's radius to altitude when necessary.
What units should I use?
With the default G, use kilograms for both masses and meters for radius to obtain joules.
How does the energy change in a higher orbit?
It becomes less negative. Moving the same satellite to a larger circular radius loosens the bond, while a heavier satellite or central body makes the energy larger in size.
Is this the same as the gravitational potential energy?
No. The result is the total mechanical energy, kinetic and potential combined, under the usual circular two-body approximation. The potential energy alone is a different number.
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/circular-orbit-energy-total \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"central_mass":5.972e+24,"satellite_mass":1000,"radius":6771000}'const res = await fetch("https://api.kit.forhosting.com/mech/circular-orbit-energy-total", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"central_mass": 5.972e+24,
"satellite_mass": 1000,
"radius": 6771000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/circular-orbit-energy-total",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"central_mass": 5.972e+24,
"satellite_mass": 1000,
"radius": 6771000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/circular-orbit-energy-total", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"central_mass":5.972e+24,"satellite_mass":1000,"radius":6771000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"central_mass":5.972e+24,"satellite_mass":1000,"radius":6771000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/circular-orbit-energy-total", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"central_mass": 5.972e+24,
"satellite_mass": 1000,
"radius": 6771000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.circular_orbit_energy_total",
"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
The calculator applies E = -GMm/(2r), using the standard SI gravitational constant unless you supply another consistent value.
What total mechanical energy means in a circular orbit
That condition links orbital speed to radius and lets the two energy terms collapse into one compact expression: E = -GMm/(2r).
Enter radius and masses with consistent units
Numeric strings are accepted as well as JSON numbers, which is convenient for API clients that obtain values from form fields.
Technical questions
What does the calculator cost?
It is free to run in the browser, and an API request costs $0.002.
What happens when radius is zero?
The request returns an invalid_input error because the formula would divide by zero.