Complete API reference for programmatic access to your Kounisou account
The full API is described as OpenAPI 3.1 — generate an SDK, a Postman collection, or wire it straight into an AI agent. There’s also an official MCP server so Claude (and any Model Context Protocol client) can drive Kounisou in natural language.
# Let Claude use your Kounisou account:
claude mcp add kounisou -e KOUNISOU_API_KEY=kns_live_... -- npx -y kounisou-mcpA valid account is required for every request. Free accounts get read-only access with a small hourly quota — enough to try the API and build light read integrations. Pro raises the limit to 1,000 req/hr, and Studio unlocks full read/write at 10,000 req/hr with unlimited webhooks.
All API requests must include an API key in the Authorization header:
curl https://kounisou.com/api/v1/clients \
-H "Authorization: Bearer kns_live_..."Generate API keys in your account settings.
API requests are rate limited to 1,000 requests per hour per API key. Rate limit info is included in response headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 2026-05-06T12:00:00ZList endpoints use cursor-based pagination. Pass cursor and limit query parameters:
GET /api/v1/clients?limit=20&cursor=abc123
{
"data": [...],
"meta": {
"cursor": "xyz789",
"hasMore": true,
"count": 20
}
}/api/v1/clientsList all clients. Supports pagination.
/api/v1/clientsCreate a new client invite.
/api/v1/clients/:idGet client details.
/api/v1/clients/:idUpdate client status or notes.
/api/v1/workoutsList all workout programs. Supports pagination.
/api/v1/workoutsCreate a new workout program.
/api/v1/exercisesList exercises (global + your custom). Supports filters: category, difficulty, muscle_group.
/api/v1/messagesSend a message to a client.
/api/v1/analyticsGet analytics summary (clients, workouts, engagement).
/api/v1/webhooksList webhook endpoints.
/api/v1/webhooksCreate a webhook endpoint. Returns secret once.
/api/v1/webhooks?id=:idDelete a webhook endpoint.
Available webhook event types:
client.created - New client addedclient.updated - Client profile updatedclient.deleted - Client removedworkout.completed - Client completed a workoutcheckin.submitted - Client submitted a check-inhabit.completed - Client completed a habitgoal.reached - Client reached a goalpayment.received - Payment receivedclient.inactive - Client became inactiveAll errors return a consistent JSON structure:
{
"error": {
"message": "Invalid API key",
"code": "INVALID_KEY"
}
}Common error codes: MISSING_AUTH, INVALID_KEY, KEY_REVOKED, KEY_EXPIRED, RATE_LIMIT_EXCEEDED, INSUFFICIENT_SCOPE, VALIDATION_ERROR, NOT_FOUND