Create an API key
1
Open API key settings
Go to Settings → API Keys in the Quikly app.
2
Click Create API Key
Enter a descriptive name (e.g., “n8n automation” or “Cursor MCP”) and select the scopes you need.
3
Copy the key
The full key is shown only once. Copy it and store it somewhere safe — you cannot retrieve it later.
Scopes
Each API key has one or more scopes that control what it can do:Authenticate requests
Include your API key in theX-API-Key header on every request:
Rate limits and quota
API calls are rate-limited per minute and capped monthly depending on your plan:
When you exceed your monthly quota, the API returns
402 Payment Required.
When you exceed your per-minute limit, the API returns 429 Too Many Requests and includes a Retry-After header.
Per end-user limits (X-External-User-Id)
When X-External-User-Id is present (after normalization), the API applies additional limits on top of your account totals:
- Per end-user per minute: default 12 requests/minute per distinct
X-External-User-Id(configurable server-side). - Per end-user per UTC calendar month: default
min(your plan's monthly API quota, 250)calls for that sameX-External-User-Id.
402 with error: external_user_quota_exceeded or 429 with error: external_user_rate_limit_exceeded.
These limits use in-memory counters (they reset on server restart and on UTC month rollover for the monthly slice). They mitigate one downstream tenant burning an entire API key’s pool.
Per agent/workflow limits (X-Agent-Id)
When X-Agent-Id is present (after normalization), the same pattern applies independently of X-External-User-Id:
- Per agent per minute: default 12 requests/minute (configurable server-side).
- Per agent per UTC calendar month: default
min(your plan's monthly API quota, 250)calls for thatX-Agent-Id.
402 with error: agent_id_quota_exceeded or 429 with error: agent_id_rate_limit_exceeded.
If both X-External-User-Id and X-Agent-Id are set, all three limits apply: account-wide, per end-user, and per agent.
Integration traceability headers
For external integrations, send these headers on every request:
Requests without these headers can be rejected with
400 Bad Request.
Check your current usage with:
Response headers
Every response from the public API includes these attribution headers. Clients can safely ignore them, but they are useful for logging, debugging, and proving that a given piece of data came from Quikly:Removing or masking these headers before relaying Quikly-generated content to end-users is a breach of the Terms of Service §5.3.2 on self-serve plans. Partner integrations can negotiate attribution rules in their agreement.
Manage existing keys
In Settings → API Keys, you can:- Rename a key to keep your list organized
- Deactivate a key temporarily without deleting it
- Revoke a key permanently — revoked keys cannot be reactivated
Security best practices
- Use environment variables to store keys in your deployment environment.
- Rotate keys periodically — create a new key, update your integrations, then revoke the old one.
- Use the narrowest scope that your integration requires.
- Set expiration when creating keys for temporary integrations. You can specify
expires_in_daysduring creation. - Monitor usage by checking the usage endpoint or the API Keys page in the dashboard. Each key shows its last-used timestamp.
- Revoke immediately if a key is compromised.
Key format
Quikly API keys follow the formatqk_ followed by a random string. When you view keys in the dashboard, only the prefix (e.g., qk_abc1...) is visible — the full key is only shown at creation time.