ForHosting KIT · Health & fitness

VO2 max from 5K race time calculator

A 5K run in 25:00 means an average of 200 metres a minute, which points to an estimated VO2 max of about thirty-eight mL/kg/min. Enter your finish time in seconds to turn a race result into an aerobic fitness figure. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Time seconds
1,500
You get
Time min
25
Time display
25:00
Distance m
5,000
Velocity m per min
200

A five-kilometer road or track race is one of the most common endurance efforts runners log, and finish time encodes average velocity over a fixed five thousand metres. This capability converts that finish time into estimated maximal oxygen uptake using a published velocity regression: oxygen cost of running at race pace from a quadratic in metres per minute, divided by the fraction of VO2 max sustainable for the race duration. Coaches, PE teachers, and training apps get a structured VO2 max figure in millilitres per kilogram per minute without a metabolic cart or heart-rate strap. Missing time, non-finite values, and non-positive finish times are rejected as invalid input because a zero or negative duration cannot describe a completed five-kilometer race.

What a 5K race VO2 max estimate measures and which inputs you need

VO2 max is the highest rate at which the body can take up and use oxygen during intense exercise, usually expressed in millilitres of oxygen per kilogram of body mass per minute. Laboratory protocols measure it with gas exchange on a treadmill or bike, but many coaches still estimate aerobic capacity from race performance because a honest five-kilometer effort already compresses distance, pacing, and duration into one number.

Convert minutes and seconds yourself first—for example twenty-five minutes is one thousand five hundred seconds, and twenty minutes is one thousand two hundred seconds. The engine fixes race distance at five thousand metres, computes average velocity in metres per minute as five thousand divided by time in minutes, then applies Daniels oxygen-cost regression VO2 cost equals negative four point six zero plus zero point one eight two two five eight times velocity plus zero point zero zero zero one zero four times velocity squared.

It divides that cost by the duration-based fraction of VO2 max so longer races do not overstate capacity relative to short ones.

Running clubs after parkrun or local 5Ks

Coaches convert chip times into estimated VO2 max for training zones and seasonal fitness charts without metabolic testing.

PE classes and school cross-country programs

Teachers log five-kilometer times and compute a stable aerobic estimate for grading sheets and fitness standards.

How is VO2 max estimated from a 5K race time?

Average velocity is 5000 m divided by race time. Daniels oxygen cost is −4.60 + 0.182258·v + 0.000104·v² (v in m/min).

What happens if time is zero or negative?

Finish time must be a positive number of seconds describing a completed five-kilometer race; non-positive time is rejected and not charged.

Is the VO2 max from 5K race time calculator free?

The browser tool runs free on your device.

Is this the same as laboratory VO2 max or the Cooper test?

No. This is a field estimate from five-kilometer race velocity using Daniels regression, not gas-exchange VO2 peak and not the twelve-minute Cooper distance formula. Use it for practical aerobic screening from race results.

How do I enter a 5K time given in minutes and seconds?

Convert it to seconds first: 25:00 is 1500 seconds and 20:00 is 1200 seconds. Times under ten minutes or over two hours are rejected as outside the plausible range for a 5K.

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.

POSThttps://api.kit.forhosting.com/health/vo2max-5k-race

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.

curl -X POST https://api.kit.forhosting.com/health/vo2max-5k-race \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"time_seconds":1500}'
{
  "time_seconds": 1500
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "health.vo2max_5k_race",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

The path is pure arithmetic with no network and no random seed, so homework checkers, coaching SaaS, and prepaid API clients see identical JSON for identical inputs every time.

What a 5K race VO2 max estimate measures and which inputs you need

Send the required field time_seconds as a positive finite number equal to finish time in seconds; aliases time, seconds, t, race_time, finish_time, and time_s are accepted. Identical inputs always yield identical JSON because the algorithm never touches the network, a model, a clock, or a random generator. Missing time_seconds, non-finite values, non-positive times, and times outside the ten-minute to two-hour plausibility band all fail with invalid_input and are not charged.

Reading the response fields and common race-estimate pitfalls

Distance_m is always five thousand. Remember that the estimate assumes a maximal honest effort on a level course with accurate timing—GPS shortcuts, hills, heat, wind, and tactical pacing all bias finish time, and this calculator does not correct for environment or age. Extremely fast times under ten minutes or slow times over two hours are rejected as outside the educational safety band for a five-kilometer race estimate. On success the response echoes time_seconds and time_min, plus a human-readable time_display string such as twenty-five colon zero zero for logging. Velocity appears as velocity_m_per_min, velocity_km_h, and velocity_m_per_s so dashboards can chart pace without re-deriving units. Field vo2_cost_ml_kg_min is the oxygen cost of running at race velocity; fraction_vo2max is the share of VO2 max that duration typically supports; and vo2max_ml_kg_min is the estimated maximal oxygen uptake. Unit_vo2max is always ml/kg/min, formula restates the velocity regression, and method is always daniels_5k_velocity_regression so downstream code can branch without sniffing shapes. Non-positive time is impossible for a completed race and raises a clear invalid_input message that mentions non-positive time. Do not confuse this endpoint with Cooper twelve-minute distance, Rockport one-mile walk, Astrand step-test, or laboratory VO2 peak: those are different search intents and live in separate products.

API usage, pricing, coaching workflows, and practical limits

Call the free in-browser VO2 max from five-kilometer race time calculator for club race nights, school fitness days, and quick athlete checks without rebuilding Daniels constants in a spreadsheet. Prefer whole-second times from chip or gun results; if your UI collects minutes and seconds, convert client-side before calling. Keep expectations clinical: this is an educational and planning field estimate from race velocity, not a diagnostic medical device, and athletes with health conditions should follow professional advice rather than any single formula alone. Send a JSON body with required time_seconds equal to the five-kilometer finish time in seconds. Use the prepaid API when a coaching SaaS, sports-science notebook, school LMS, or training log needs a stable contract under KIT balance at $0.002 per successful item; validation failures never consume balance after the engine rejects the request. Pair this endpoint with your own race-result import workflow, then store vo2max_ml_kg_min alongside date, course, and conditions for longitudinal charts of aerobic fitness. Authors shipping SDKs can map vo2max_ml_kg_min directly into dashboards and export CSV columns labeled five-kilometer time and estimated VO2 max—the same numbers coaches compute by hand after a race.

Coaching apps and sports-science homework

Apps and courses call a prepaid endpoint for Daniels velocity regression instead of reimplementing constants in every client language.

What unit should I use for race time?

Provide time_seconds as total finish time in seconds (for example 1500 for a 25:00 race). Convert minutes and seconds on the client before calling the API.

Read the full KIT documentation →