Search for a command to run...
Core concept
Bearer authAuthenticate server-to-server requests with scoped API keys. Test and live keys share one contract but have intentionally different delivery behavior.
Put the key in the Authorization header on every protected request. Keys are secrets: do not send them in a query string, log the full value, or ship them in frontend JavaScript.
GET /v1/clients HTTP/1.1
Host: api.intelliconcierge.dev
Authorization: Bearer ik_test_your_keyKeys are shown once
A live key can still validate a single send without delivery by setting dry_run: true in the message request.
Create separate keys for separate services. A sender worker usually needs only messages:send; an onboarding service needs the client scopes.
| Scope | Type | Description |
|---|---|---|
clients:read | scope | List clients and fetch a client by client_ref. |
clients:write | scope | Create WhatsApp and Instagram hosted sessions and complete client onboarding. |
messages:send | scope | Send free-form and template messages. |
webhooks:read | scope | Read webhook configuration and delivery records. |
webhooks:write | scope | Update webhook configuration and redeliver test events. |
Authenticated partner routes return correlation and edge-throttle metadata. The authoritative business throttle is also enforced upstream, so clients should always handle 429 even when the last remaining count was positive.
| Header | Type | Description |
|---|---|---|
X-Request-Id | UUID | Correlation ID for the request. Include it in support tickets and use it to find the call in Request Logs. |
X-RateLimit-Limit | integer | Current edge-window request ceiling for this key. |
X-RateLimit-Remaining | integer | Requests remaining in the current edge window. |
Retry-After | seconds | Present on a 429 response. Wait at least this long before retrying. |
X-Request-Id: 7f438d93-9516-4e91-977d-0d2c78d2ef4c
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 598
# On 429 responses:
Retry-After: 23Treat the shown limit as runtime metadata, not a permanent plan guarantee. Limits can differ by environment and plan.
{
"error": {
"code": "unauthorized",
"message": "Missing or malformed API key. Send `Authorization: Bearer ik_...`."
}
}See Errors & debugging for the complete envelope and retry guidance.