Two-body reduced mass calculator
The two-body reduced mass calculator combines two masses into the single effective mass used to describe their relative motion.
Run — free
Enter both body masses in kilograms, and it applies the standard product-over-sum relationship to return the reduced mass and total mass in kilograms. This is useful for orbital mechanics, binary systems, molecular motion, and any model that separates center-of-mass motion from relative motion. The calculation is deterministic, runs without external data, and clearly rejects a system whose total mass is zero.
What reduced mass represents
A two-body system contains two objects that both move in response to their interaction. Tracking each object separately is possible, but many mechanics problems become simpler after the motion is split into center-of-mass motion and relative motion. Reduced mass is the effective mass associated with that relative coordinate. It is written as μ = m₁m₂/(m₁+m₂), where m₁ and m₂ are the two body masses. This calculator expects both values in kilograms and returns μ in kilograms. The reduced mass is never larger than the smaller input mass for ordinary non-negative physical masses. When one body is much heavier than the other, the reduced mass approaches the lighter mass, which explains why a small satellite can often be treated as moving around an almost fixed planet. When the masses are equal, the reduced mass is half either individual mass. Those checks are useful for judging whether a result has the expected scale before using it in another equation.
How to enter masses and interpret the result
Provide mass_1_kg and mass_2_kg as finite, non-negative values expressed in kilograms. Scientific notation is appropriate for astronomical bodies, while ordinary decimals work well for laboratory or engineering examples. The response repeats both accepted inputs, reports total_mass_kg, and reports reduced_mass_kg. It also includes the formula so downstream records remain self-explanatory. Units matter: because both inputs are explicitly kilograms, the returned effective mass is kilograms too. Do not place one value in grams and the other in kilograms, because the arithmetic cannot infer or repair mixed units. Zero is accepted for one body as a limiting mathematical case and produces a reduced mass of zero, but both masses cannot be zero because their sum would make the defining division undefined. Negative values are rejected because they are not physical body masses for this calculator. Extremely large values that make the total exceed JavaScript’s finite numeric range are also rejected instead of returning a misleading infinity.
Using reduced mass in two-body calculations
Reduced mass appears wherever a two-object interaction is rewritten as an equivalent one-body problem. In orbital mechanics, it supports exact two-body descriptions when neither body should be treated as perfectly stationary, such as binary stars, double planets, or a planet and a comparatively massive moon. In atomic and molecular physics, replacing an orbiting particle’s bare mass with the reduced mass improves energy-level and vibration calculations because the nucleus or companion atom also moves. The result from this capability is deliberately focused: it calculates mass only and does not apply a gravitational constant, determine an orbit, or estimate binding energy. That makes it suitable as a small, auditable step in a larger workflow. Preserve sufficient significant figures in both inputs, inspect the returned total, and pass reduced_mass_kg into the next equation that calls for μ. The browser calculation and API use the same deterministic function, while automated API requests are priced at $0.002 each.
What you can do with it
Model a binary star system
Find the effective mass for relative orbital motion when both stars have dynamically important masses.
Refine an atom or molecule calculation
Compute the mass term used in two-particle energy levels, rotational motion, or molecular vibration models.
Build an orbital mechanics workflow
Calculate reduced mass as a transparent intermediate value before applying a separate orbit or energy equation.
FAQ
What formula does the calculator use?
It uses μ = (m₁ × m₂) / (m₁ + m₂), the standard reduced-mass formula for a two-body system.
What units should I enter?
Enter both masses in kilograms. The total mass and reduced mass are returned in kilograms.
What happens when both masses are zero?
The request returns an invalid-input error because the total mass is zero and the formula would divide by zero.
Can one of the masses be zero?
Yes. If exactly one mass is zero and the other is positive, the reduced mass is zero.
How much does an API calculation cost?
Each API request costs $0.002. The same deterministic calculation is also available free in the browser.
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/astro/reduced-mass \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mass_1_kg":5.972e+24,"mass_2_kg":7.342e+22}'const res = await fetch("https://api.kit.forhosting.com/astro/reduced-mass", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mass_1_kg": 5.972e+24,
"mass_2_kg": 7.342e+22
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/reduced-mass",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mass_1_kg": 5.972e+24,
"mass_2_kg": 7.342e+22
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/reduced-mass", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mass_1_kg":5.972e+24,"mass_2_kg":7.342e+22}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mass_1_kg":5.972e+24,"mass_2_kg":7.342e+22}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/reduced-mass", 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_1_kg": 5.972e+24,
"mass_2_kg": 7.342e+22
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.reduced_mass",
"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. |