CMB Temperature at Redshift Calculator
The cosmic microwave background temperature at redshift calculator applies the standard adiabatic scaling relation T(z) = T0(1 + z).
Run — free
Enter a cosmological redshift and, if needed, replace the default present-day temperature of 2.7255 kelvin. The result reports the temperature in kelvin together with the inputs and scale factor used. It is suitable for quick astronomy checks, educational examples, simulation setup, and reproducible API workflows that need a transparent deterministic calculation.
Understanding CMB temperature and redshift
The cosmic microwave background, often shortened to CMB, is relic radiation from the early universe. As the universe expands, the wavelength of freely propagating radiation stretches with the cosmic scale factor, while the characteristic blackbody temperature decreases. Looking back to an epoch with positive redshift reverses that perspective: the universe was smaller, the radiation wavelengths were shorter, and the CMB temperature was higher. Under the standard adiabatic expansion model, this relationship is linear in one plus redshift. A redshift of zero represents the present epoch, so the calculated temperature equals the chosen present-day value. A redshift of three gives a factor of four, while a redshift close to negative one describes an extreme future limit in which the predicted temperature approaches zero. This calculator focuses only on that scaling law. It does not estimate redshift, cosmic time, distance, density, or departures from the standard thermal history.
How the calculation is performed
The calculation uses T(z) = T0 × (1 + z), where T0 is the present-day CMB temperature in kelvin and z is the supplied redshift. The default T0 is 2.7255 K, a commonly used reference value, but the field remains adjustable so a paper, data release, classroom convention, or numerical model can supply another baseline. Both inputs must be finite numbers. The present temperature cannot be negative, and redshift cannot be below negative one because that would make one plus z negative and produce an unphysical negative radiation temperature under this relation. Exactly z = -1 is accepted as the mathematical boundary and returns zero kelvin. The output preserves the redshift and present temperature, reports one plus z explicitly, and returns the resulting temperature in kelvin. No rounding is imposed, so the JSON result follows ordinary deterministic JavaScript number arithmetic and retains useful precision from the supplied values.
Using and interpreting the result
Use the result as a direct temperature input when a cosmology exercise or simplified model assumes standard CMB evolution. For example, a researcher preparing initial conditions can calculate the background radiation temperature at the simulation redshift, while an instructor can show why the CMB becomes progressively hotter at earlier epochs. Always confirm that the surrounding calculation uses the same definition of cosmological redshift and the same present-day reference temperature. The formula describes ideal adiabatic scaling and does not by itself include exotic photon injection, nonstandard temperature-redshift laws, measurement uncertainty, or a conversion from redshift to age. Kelvin is the only output temperature unit because absolute temperature is the natural quantity in the scaling relation. For automated work, store the returned baseline and one-plus-redshift factor beside the temperature; these fields make the result easier to audit and reproduce. Browser calculations are free, while API requests use the displayed $0.002 base price.
What you can do with it
Set a cosmological simulation background
Compute the CMB temperature at an initial redshift before supplying the radiation background to a simplified simulation.
Check an astronomy calculation
Verify a temperature quoted for an early-universe epoch with a transparent one-plus-redshift scaling calculation.
Teach cosmological redshift
Demonstrate how expansion changes a blackbody radiation temperature across present, past, and future redshifts.
FAQ
What formula does the calculator use?
It uses T(z) = T0(1 + z), with T0 as the present-day CMB temperature and z as cosmological redshift.
What present-day CMB temperature is used by default?
The default is 2.7255 kelvin. You can replace it with another nonnegative finite reference value.
Why are redshifts below negative one rejected?
They make one plus z negative, which would yield a negative temperature and lies outside the physical redshift domain used by this relation.
Can I enter a negative redshift?
Yes. Values from -1 up to 0 represent blueshifted or future-side scaling in this mathematical relation; exactly -1 returns zero kelvin.
Does this calculate cosmic age or distance?
No. It only scales the CMB temperature. Converting redshift to age or distance requires a cosmological model and additional parameters.
What does an API request cost?
The base price is $0.002 per request. The same deterministic calculation can run free in your 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/cmb-temperature-at-z \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"z":3}'const res = await fetch("https://api.kit.forhosting.com/astro/cmb-temperature-at-z", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"z": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/cmb-temperature-at-z",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"z": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/cmb-temperature-at-z", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"z":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"z":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/cmb-temperature-at-z", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"z": 3
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.cmb_temperature_at_z",
"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. |