# Cycling Power Calculator (FTP & Training Zones)

> Cycling Power Calculator (FTP & Training Zones) is a paid API for AI agents from sports-calc.x402tookit.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-21).

Calculates cycling FTP from a 20-minute or 8-minute test, watts per kilogram, and the seven Coggan power training zones in watts.

## Facts

- Endpoint: GET https://sports-calc.x402tookit.com/cycling-power?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-21
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/cycling-power-calculator-ftp-training-zones-a3c7bfc0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Cp9Uj35mQvPZieuBg7K7h

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 cycling-power-calculator-ftp-training-zones-a3c7bfc0
```

Example prompt: I averaged 285 watts for 20 minutes in my FTP test today and I weigh 72 kg — can you calculate my FTP, my watts per kilogram, and all seven Coggan training zones for me?

## When to prefer this

Use this endpoint when you need cycling-specific FTP estimation and Coggan zone generation from a structured field test. Prefer this over generic calculators when the user has raw test power data (20-min or 8-min effort) or a known FTP and needs actionable training zones in watts with proper sport-science methodology (95% rule for 20-min, 90% rule for 8-min).

## Known failure modes

- Missing required power input (no test watts or FTP provided) — returns validation error
- Implausible power values (e.g. zero or extremely high watts) — may return degraded result or reasons array
- Missing weight when watts-per-kg is expected — wattsPerKg will be null
- Conflicting inputs (e.g. both 20-minute and 8-minute watts provided) — service may pick one or flag ambiguity

## How this service works

Cycling FTP from a 20 or 8 minute test, watts per kilogram, and the seven Coggan training zones in watts.

## Output

Returns the calculated FTP in watts (derived from the test method used), watts per kilogram (if weight provided), and all seven Coggan training zones each with a name, watt range, and percentage of FTP. Also includes a summary, the basis of the calculation, and any warnings or disclaimers.

## 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": [],
     "properties": {
      "ftpWatts": {
       "type": "number",
       "description": "Known FTP in watts"
      },
      "weightKg": {
       "type": "number",
       "description": "Body weight in kg, for watts per kilogram"
      },
      "eightMinuteWatts": {
       "type": "number",
       "description": "Best 8-minute average power (FTP = 90%)"
      },
      "twentyMinuteWatts": {
       "type": "number",
       "description": "Best 20-minute average power (FTP = 95%)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "asOf": {
       "type": [
        "null",
        "string"
       ]
      },
      "basis": {
       "type": [
        "null",
        "string"
       ]
      },
      "zones": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "object",
        "properties": {
         "zone": {
          "type": [
           "null",
           "string"
          ]
         },
         "watts": {
          "type": [
           "null",
           "string"
          ]
         },
         "lowWatts": {
          "type": [
           "null",
           "number"
          ]
         },
         "highWatts": {
          "type": [
           "null",
           "number"
          ]
         },
         "percentOfFtp": {
          "type": [
           "null",
           "string"
          ]
         }
        }
       }
      },
      "source": {
       "type": [
        "null",
        "string"
       ]
      },
      "reasons": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      },
      "summary": {
       "type": [
        "null",
        "string"
       ]
      },
      "verdict": {
       "type": [
        "null",
        "string"
       ]
      },
      "degraded": {
       "type": [
        "boolean",
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/cycling-power-calculator-ftp-training-zones-a3c7bfc0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from sports-calc.x402tookit.com](https://www.zero.xyz/host/sports-calc.x402tookit.com/llms.txt)
