The Tailwind KOMpass Public API is a free, keyless, read-only JSON API. It exposes the signed-tailwind formula Tailwind KOMpass uses to rank Strava segments, a bearing helper, and the current Free and Pro plan facts. It is meant for AI agents, scripts and apps that need to answer “how much does this wind help on this road?” with the same numbers the app shows.
Base URL: https://api.tailwindkompass.com/functions/v1/public-api
OpenAPI 3.1 description: https://tailwindkompass.com/openapi.json (version 1.0.0)
GET /v1/tailwind · calculateTailwind: Signed tailwind along a segment.GET /v1/bearing · calculateBearing: Initial bearing between two points.GET /v1/plans · listPlans: Free and Pro plan facts.GET /health · getHealth: Service health.GET /openapi.json · getOpenApiSpec: This OpenAPI document.Pass the wind speed (km/h), the direction the wind comes from (degrees), and either the segment’s bearing or its start and end coordinates. Positive results are tailwind, negative results are headwind.
curl "https://api.tailwindkompass.com/functions/v1/public-api/v1/tailwind?wind_speed_kmh=20&wind_direction_deg=250&segment_bearing_deg=80"{
"signed_tailwind_kmh": 19.7,
"crosswind_kmh": 3.5,
"effect": "tailwind",
"segment_bearing_deg": 80,
"wind_speed_kmh": 20,
"wind_direction_deg": 250,
"formula": "signed = wind_speed_kmh * cos((wind_direction_deg + 180) - segment_bearing_deg)"
}Returns the initial great-circle bearing from a start point to an end point.
curl "https://api.tailwindkompass.com/functions/v1/public-api/v1/bearing?start_lat=52.37&start_lon=4.89&end_lat=52.37&end_lon=4.95"Returns what Free and Pro include, the current price and the trial terms.
curl "https://api.tailwindkompass.com/functions/v1/public-api/v1/plans"Every error is an RFC 9457 problem document served as application/problem+json, with a stable code and a hint that says how to fix the request.
{
"type": "https://tailwindkompass.com/developers#error-missing-parameter",
"title": "Missing Parameter",
"status": 400,
"detail": "The query parameter \"wind_speed_kmh\" is required.",
"instance": "/v1/tailwind",
"code": "missing_parameter",
"hint": "Add wind_speed_kmh=<number between 0 and 300> to the query string.",
"parameter": "wind_speed_kmh"
}missing_parameter (400): A required query parameter was not sent. `parameter` names it.invalid_parameter (400): A parameter is not a number or is out of range. `parameter` names it.not_found (404): No endpoint at that path. The hint lists the endpoints that exist.method_not_allowed (405): Only GET, HEAD and OPTIONS are supported.internal_error (500): Something failed on our side. Retry, then email support.No API key or sign-up is needed, and CORS is open to every origin. Responses carry Cache-Control headers, so cache them. Please keep usage reasonable; heavy automated traffic may be throttled. There is no SLA.
The API does not return Strava segments, weather forecasts or any personal data (watchlists, alerts, activities). Strava and weather data are licensed to Tailwind KOMpass for use inside the app only. To find segments with a tailwind near a place, send people to tailwindkompass.com/explore or the tailwind segment finder guide.
.md (for example /developers.md).Questions or ideas for new endpoints: support@tailwindkompass.com. Changes to the API are announced on the changelog.