Self-contained, validated machine-readable specs for the Strava V3 API, derived from Strava's official (but split-across-files and slightly buggy) published spec at https://developers.strava.com/swagger/ — the same spec that powers the API playground and the reference docs.
These are reference artifacts for this package (and anyone who wants a single spec file to feed into codegen, Postman, Swagger UI, etc.). They are not shipped in the published Dart package.
| File | Format | Notes |
|---|---|---|
strava_v3.openapi.json / .yaml |
OpenAPI 3.0.0 | Canonical / modern. Use this. |
strava_v3.swagger.json / .yaml |
Swagger 2.0 | Faithful bundle of the upstream 2.0 spec. |
sources/ |
— | Raw upstream files + build scripts (see below). |
Both bundles cover 32 paths and 60 schema definitions, with every
$ref resolved to a local reference (no external file dependencies).
cd openapi/sources
./fetch.sh # re-download the upstream split spec files
./build.sh # bundle -> swagger 2.0 -> openapi 3.0 -> yaml -> validateRequires python3 (+ pyyaml), node/npx, and curl.
bundle.py inlines all external $refs and normalizes three bugs in Strava's
published spec so the result validates:
- The route
export_gpx/export_tcxresponses use OpenAPI-3contentblocks inside a Swagger-2.0 document → converted to 2.0produces+ a{type: file}response schema. PUT /athletedeclares itsweightfield as apathparameter though no{weight}exists in the URL → corrected to aqueryparameter.GET /athletes/{id}/routesomits the{id}path-parameter declaration → injected.
Upstream is Swagger 2.0. The OpenAPI 3.0.0 file is generated from the bundled
2.0 file via swagger2openapi. If Strava
updates their spec, re-run fetch.sh then build.sh.