API
The Teshape API gives coaches and integrators programmatic access to workout history, client data, and the training library. It’s in early beta — breaking changes may ship with notice, and not all resources are available yet.
Beta status
The API is available to coaches on Pro and Elite plans. During the beta period:
- Breaking changes may be introduced with at least 30 days notice
- Rate limits are more generous than the planned GA limits
- Some resource types are read-only (writes are coming)
- No SLA is offered; the API runs on the same infrastructure as the main app
Authentication
All API requests require a bearer token in the Authorization header. Generate an API key from Settings → API → Create key. Keys are scoped to your coach account — they can only access resources you own.
GET /v1/clients Authorization: Bearer tsh_live_xxxxxxxxxxxx
API keys can be rotated or revoked at any time from the same settings page. Revoked keys return 401 Unauthorized immediately.
Keep keys secret. Anyone with your API key has full read access to your coaching account. Never embed a key in client-side code or commit it to a public repository.
Base URL
https://api.teshape.com/v1/All endpoints are HTTPS-only. HTTP requests are rejected at the load balancer. The API speaks JSON — set Content-Type: application/json on all POST/PATCH requests.
Rate limits
During beta, rate limits are applied per API key per minute:
| Plan | Requests / min |
|---|---|
| Pro | 120 |
| Elite | 600 |
Rate limit headers are included on every response:
X-RateLimit-Limit: 120 X-RateLimit-Remaining: 117 X-RateLimit-Reset: 1717026600
When you exceed the limit, the API returns 429 Too Many Requests. Implement exponential backoff in your client.
Endpoint categories
The following resource groups are available in beta. Full reference docs for each are available in the developer portal (access on request).
/v1/clientsList all active and archived clients. Includes basic profile, connection date, and current plan.
/v1/clients/:id/sessionsPaginated workout session history for a client. Includes logged sets, RPE, and session summary metrics.
/v1/clients/:id/measurementsBody measurement history for a client. Returns all measurement types and timestamps.
/v1/library/plansList all training plans in your coach library.
/v1/library/workoutsList all workouts in your coach library.
/v1/library/exercisesList exercises — both the global Teshape catalog and your custom exercises.
Errors
All errors return a JSON body with a code and message:
{
"code": "not_found",
"message": "Client 9f3a… not found or not accessible."
}| Status | Meaning |
|---|---|
| 200 | OK |
| 400 | Bad request — check request body or query params |
| 401 | Missing or invalid API key |
| 403 | Authenticated, but not authorised for this resource |
| 404 | Resource not found or not accessible by your account |
| 429 | Rate limit exceeded |
| 500 | Server error — retry with backoff |
Requesting access
API access during beta is available on Pro and Elite plans. To enable it on your account, go to Settings → API. You’ll see the option to create your first key once beta access is live on your account.
If you’re building an integration and need early access or have specific endpoint requirements, email support@teshape.comwith “API beta” in the subject. We’re actively looking for use cases to prioritise for v1.