# Heart Rate Zones Calculator

> Heart Rate Zones Calculator is a paid API for AI agents from fitness-calc.x402tookit.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-30).

Calculates estimated maximum heart rate (Tanaka and Fox formulas) and five training zones by percentage of max or heart-rate reserve (Karvonen method) from age and optional resting HR.

## Facts

- Endpoint: GET https://fitness-calc.x402tookit.com/heart-rate-zones?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/heart-rate-zones-calculator-ee20a4fc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_qZxbmXPuUBueHWoCl8hGA

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability heart-rate-zones-calculator-ee20a4fc
```

Example prompt: I'm 38 years old with a resting heart rate of 58 bpm — can you calculate my five heart rate training zones using the Karvonen method?

## When to prefer this

Choose this endpoint when you need structured, formula-attributed heart rate zone data (Tanaka, Fox, Karvonen) with per-zone bpm ranges rather than a generic static chart. Ideal when the user supplies their resting HR for the more precise Karvonen/reserve method, or when you need to compare estimated vs measured max HR in one call.

## Known failure modes

- Age outside valid range (10–100) returns an error or degraded result
- Missing required 'age' parameter causes a 400-level error
- Providing a physiologically implausible measured max HR may trigger a warning or degraded flag
- Resting HR provided without age still requires age as the required field

## How this service works

Estimated maximum heart rate (Tanaka, Fox) and five training zones as percent of max or by heart-rate reserve (Karvonen).

## Output

Returns both Tanaka and Fox estimated maximum heart rates, the max HR actually used in calculations, resting HR and heart rate reserve (if provided), five labeled training zones each with a bpm min/max range and percent-of-reserve values, the calculation method name, a summary, verdict, disclaimer, and any degraded-mode flags or reasons.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "age"
     ],
     "properties": {
      "age": {
       "type": "number",
       "description": "Age in years, 10 to 100"
      },
      "maxHr": {
       "type": "number",
       "description": "Your measured maximum, if you have one"
      },
      "restingHr": {
       "type": "number",
       "description": "Resting heart rate in bpm for the Karvonen reserve method"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "age": {
       "type": [
        "null",
        "number"
       ]
      },
      "asOf": {
       "type": [
        "null",
        "string"
       ]
      },
      "zones": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "object",
        "properties": {
         "bpm": {
          "type": [
           "null",
           "object"
          ],
          "properties": {
           "max": {
            "type": [
             "null",
             "number"
            ]
           },
           "min": {
            "type": [
             "null",
             "number"
            ]
           }
          }
         },
         "zone": {
          "type": [
           "null",
           "string"
          ]
         },
         "percentOfReserve": {
          "type": [
           "null",
           "string"
          ]
         }
        }
       }
      },
      "method": {
       "type": [
        "null",
        "string"
       ]
      },
      "source": {
       "type": [
        "null",
        "string"
       ]
      },
      "reasons": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      },
      "reserve": {
       "type": [
        "null",
        "number"
       ]
      },
      "summary": {
       "type": [
        "null",
        "string"
       ]
      },
      "verdict": {
    
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/heart-rate-zones-calculator-ee20a4fc/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from fitness-calc.x402tookit.com](https://www.zero.xyz/host/fitness-calc.x402tookit.com/llms.txt)
