Authorization header. Keys are tied to your InsiteChat user account and grant access to all chatbots you own.
Creating an API Key
Create a key
Click Create API Key, give it a descriptive name (e.g. Production Server, Staging, Zapier Integration), and click Generate.
Key Format
API keys are URL-safe random tokens prefixed withic_:
prefix, which always starts with ic_) are shown in the dashboard so you can identify which key is which. The full key is never stored on InsiteChat servers — only its SHA-256 hash — which is why we can’t show it back to you after creation.
Using Your API Key
Include the API key in theAuthorization header of every request:
Listing Your Keys
Dashboard → Developer → API Keys shows every key on your account with:
- Name — the label you gave the key at creation
- Prefix — the first 8 characters (e.g.
ic_aBcDeF) so you can spot which key is which - Last used — the timestamp of the most recent successful API call (or Never if unused)
- Created — when the key was generated
- Active / Revoked — current state
Revoking a Key
- Find the key on the API Keys page.
- Click Revoke and confirm.
401 Unauthorized (the same response as a malformed or unknown key — there is no separate error code distinguishing the two).
Use separate keys for each environment (production, staging, dev) and each integration (Zapier, your CRM sync, internal scripts). That way revoking a leaked key only impacts one consumer.
Rate Limiting
Each API key is rate-limited to 60 requests per minute on a rolling 60-second window. When you exceed the limit, the API returns:Retry-After header — back off on a fixed schedule (e.g. wait 60 seconds before retrying).
Error Responses
The API returns standard HTTP status codes. Error bodies follow the Django Ninja default shape — a singledetail field describing what went wrong:
| Status | Typical detail | Cause |
|---|---|---|
401 | (Ninja default Unauthorized) | Missing, malformed, or revoked API key |
400 | Maximum 5 active API keys allowed. | Hit the per-account key cap when calling the create-key endpoint |
404 | API key not found. | Tried to revoke a key that doesn’t exist or isn’t yours |
429 | API rate limit exceeded. Max 60 requests per minute. | Per-key rate limit |
429 | Monthly message limit reached. (or similar quota text) | Plan message quota exhausted (only on the chat endpoint) |
code field today — branch on the HTTP status (and on the detail text if you need to distinguish rate-limit 429s from quota 429s).