Authentication

All API requests require authentication via an API key passed in the Authorization header.

Header Format

Authorization: Bearer kshw_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Key Format

API keys follow this format:

kshw_<8-char tenant prefix>_<32 random chars>

Rate Limits

Rate limits depend on your plan:

PlanRequests/HourWrites/Day
Free10050
Pro500200
Max1000500
Business20001000

Error Responses

// 401 — Invalid or missing API key
{ "detail": "Invalid API key" }

// 403 — Insufficient scope
{ "detail": "Scope 'crm:write' required" }

// 429 — Rate limit exceeded
{ "detail": "Rate limit exceeded. Try again in 42 seconds." }