Endpoints
Call these through the okoro proxy at https://okoro.ai/p/strava
| Action | Method | Path | Min scope |
|---|---|---|---|
| List activities | GET | read | |
| List clubs | GET | read | |
| Read athlete zones | GET | read | |
| Read athlete profile | GET | read | |
| Read athlete stats | GET | read | |
| List athlete routes | GET | read | |
| Create activity | POST | write | |
| Update activity | PUT | update | |
| List activity comments | GET | read | |
| List activity kudos | GET | read | |
| List activity laps | GET | read | |
| Get activity streams | GET | read | |
| Get activity zones | GET | read | |
| Read activity | GET | read | |
| List club activities | GET | read | |
| List club admins | GET | read | |
| List club members | GET | read | |
| Read club | GET | read | |
| Read gear | GET | read | |
| Get route streams | GET | read | |
| Export route | GET | read | |
| Read route | GET | read | |
| Explore segments | GET | read | |
| Star segment | POST | write | |
| List segment efforts | GET | read | |
| List starred segments | GET | read | |
| Get segment streams | GET | read | |
| Read segment | GET | read | |
| Get segment effort streams | GET | read | |
| Read segment effort | GET | read | |
| Upload activity file | POST | write | |
| Check upload status | GET | read |
Examples
Every request requires a short-lived operation token scoped to a single action.
1. Get an operation token
Exchange your service token for a short-lived operation token scoped to a single action.
TOKEN=$(curl -sX POST "https://okoro.ai/t/tokens" \
-H "Authorization: Bearer $OKORO_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"provider": "strava", "scope": "read", "intent": "describe what you are doing"}' \
| jq -r '.token')2. Call the API
Use the operation token as a Bearer token. The proxy forwards the request to Strava and logs the action.
List activities
curl -X GET "https://okoro.ai/p/strava/athlete/activities" \
-H "Authorization: Bearer $TOKEN"List clubs
curl -X GET "https://okoro.ai/p/strava/athlete/clubs" \
-H "Authorization: Bearer $TOKEN"Read athlete zones
curl -X GET "https://okoro.ai/p/strava/athlete/zones" \
-H "Authorization: Bearer $TOKEN"Read athlete profile
curl -X GET "https://okoro.ai/p/strava/athlete" \
-H "Authorization: Bearer $TOKEN"Read athlete stats
curl -X GET "https://okoro.ai/p/strava/athletes/{id}/stats" \
-H "Authorization: Bearer $TOKEN"List athlete routes
curl -X GET "https://okoro.ai/p/strava/athletes/{id}/routes" \
-H "Authorization: Bearer $TOKEN"Create activity
curl -X POST "https://okoro.ai/p/strava/activities" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}'Update activity
curl -X PUT "https://okoro.ai/p/strava/activities/{id}" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}'List activity comments
curl -X GET "https://okoro.ai/p/strava/activities/{id}/comments" \
-H "Authorization: Bearer $TOKEN"List activity kudos
curl -X GET "https://okoro.ai/p/strava/activities/{id}/kudos" \
-H "Authorization: Bearer $TOKEN"List activity laps
curl -X GET "https://okoro.ai/p/strava/activities/{id}/laps" \
-H "Authorization: Bearer $TOKEN"Get activity streams
curl -X GET "https://okoro.ai/p/strava/activities/{id}/streams" \
-H "Authorization: Bearer $TOKEN"Get activity zones
curl -X GET "https://okoro.ai/p/strava/activities/{id}/zones" \
-H "Authorization: Bearer $TOKEN"Read activity
curl -X GET "https://okoro.ai/p/strava/activities/{id}" \
-H "Authorization: Bearer $TOKEN"List club activities
curl -X GET "https://okoro.ai/p/strava/clubs/{id}/activities" \
-H "Authorization: Bearer $TOKEN"List club admins
curl -X GET "https://okoro.ai/p/strava/clubs/{id}/admins" \
-H "Authorization: Bearer $TOKEN"List club members
curl -X GET "https://okoro.ai/p/strava/clubs/{id}/members" \
-H "Authorization: Bearer $TOKEN"Read club
curl -X GET "https://okoro.ai/p/strava/clubs/{id}" \
-H "Authorization: Bearer $TOKEN"Read gear
curl -X GET "https://okoro.ai/p/strava/gears/{id}" \
-H "Authorization: Bearer $TOKEN"Get route streams
curl -X GET "https://okoro.ai/p/strava/routes/{id}/streams" \
-H "Authorization: Bearer $TOKEN"Export route
curl -X GET "https://okoro.ai/p/strava/routes/{id}/{id}" \
-H "Authorization: Bearer $TOKEN"Read route
curl -X GET "https://okoro.ai/p/strava/routes/{id}" \
-H "Authorization: Bearer $TOKEN"Explore segments
curl -X GET "https://okoro.ai/p/strava/segments/explore" \
-H "Authorization: Bearer $TOKEN"Star segment
curl -X POST "https://okoro.ai/p/strava/segments/{id}/starred" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}'List segment efforts
curl -X GET "https://okoro.ai/p/strava/segments/{id}/efforts" \
-H "Authorization: Bearer $TOKEN"List starred segments
curl -X GET "https://okoro.ai/p/strava/segments/{id}/starred" \
-H "Authorization: Bearer $TOKEN"Get segment streams
curl -X GET "https://okoro.ai/p/strava/segments/{id}/streams" \
-H "Authorization: Bearer $TOKEN"Read segment
curl -X GET "https://okoro.ai/p/strava/segments/{id}" \
-H "Authorization: Bearer $TOKEN"Get segment effort streams
curl -X GET "https://okoro.ai/p/strava/segment-efforts/{id}/streams" \
-H "Authorization: Bearer $TOKEN"Read segment effort
curl -X GET "https://okoro.ai/p/strava/segment-efforts/{id}" \
-H "Authorization: Bearer $TOKEN"Upload activity file
curl -X POST "https://okoro.ai/p/strava/uploads" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}'Check upload status
curl -X GET "https://okoro.ai/p/strava/uploads/{id}" \
-H "Authorization: Bearer $TOKEN"Scopes
Your service token must be configured with at least the required scope level.
readGET/athlete
/athlete/*
/athletes/*/*
/activities/*
/activities/*/*
/clubs/*
/clubs/*/*
/gears/*
/routes/*
/routes/*/*
/segments/explore
/segments/*
/segments/*/*
/segment-efforts/*
/segment-efforts/*/*
/uploads/*writeGET
POST/athlete
/athlete/*
/athletes/*/*
/activities
/activities/*
/activities/*/*
/clubs/*
/clubs/*/*
/gears/*
/routes/*
/routes/*/*
/segments/explore
/segments/*
/segments/*/*
/segment-efforts/*
/segment-efforts/*/*
/uploads
/uploads/*updateGET
POST
PUT/athlete
/athlete/*
/athletes/*/*
/activities
/activities/*
/activities/*/*
/clubs/*
/clubs/*/*
/gears/*
/routes/*
/routes/*/*
/segments/explore
/segments/*
/segments/*/*
/segment-efforts/*
/segment-efforts/*/*
/uploads
/uploads/*deleteGET
POST
PUT
PATCH
DELETE/athlete
/athlete/*
/athletes/*/*
/activities
/activities/*
/activities/*/*
/clubs/*
/clubs/*/*
/gears/*
/routes/*
/routes/*/*
/segments/explore
/segments/*
/segments/*/*
/segment-efforts/*
/segment-efforts/*/*
/uploads
/uploads/*allGET
POST
PUT
PATCH
DELETE/**