API Documentation
v1The Akii REST API lets you manage brands, trigger scans, read AI visibility monitoring data, configure webhooks, and check credits programmatically.
https://akii.com/api/v1Getting Started
Create an API Key
Generate a key from the dashboard or via the POST /api/v1/api-keys endpoint.
Add the Header
Include X-API-Key: akii_live_... in every request.
Make a Request
Call any endpoint to manage brands, trigger scans, or read data.
Authentication
All API endpoints (except key management) require an X-API-Key header.
API keys are created via the dashboard or the POST /api/v1/api-keys endpoint using session cookie authentication.
Key format: akii_<live|test>_{keyId}_{secret}
Scopes
Each API key has a set of scopes that determine what it can access.
| Scope | Description |
|---|---|
| brands:read | List and get brands |
| brands:write | Create, update, and delete brands |
| scans:read | Get scan status |
| scans:write | Create scans |
| monitoring:read | Read search tracker and citation data |
| actions:read | Read Control Center actions |
| intelligence:read | Read insights, snapshots, and capabilities |
| reddit:read | Read Reddit Engage campaign data |
| visibility:read | Read Visibility Activation campaign data |
| teams:read | Read team members and invitations |
| billing:read | Read subscription and billing info |
| webhooks:manage | Manage webhook subscriptions |
| usage:read | Read API usage statistics |
| credits:read | Read credit balance |
Quick Start
curl https://akii.com/api/v1/brands \ -H "X-API-Key: akii_live_YOUR_KEY"
const res = await fetch("https://akii.com/api/v1/brands", {
headers: { "X-API-Key": "akii_live_YOUR_KEY" },
});
const { data } = await res.json();
console.log(data);Rate Limits
Default limits per API key:
- 60 requests/minute
- 1,000 requests/hour
- 10,000 requests/day
Every response includes rate limit headers:
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 57 X-RateLimit-Reset: 1708646460
When rate limited (HTTP 429), the response includes a Retry-After header with the number of seconds to wait.
Error Handling
All errors follow a consistent envelope:
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Check the Retry-After header.",
"type": "rate_limit_error"
},
"meta": {
"request_id": "req-uuid",
"timestamp": "2026-02-23T00:00:00Z"
}
}| Status | Code | Description |
|---|---|---|
| 400 | validation_error | Invalid request parameters |
| 401 | missing_api_key / invalid_api_key | Authentication failed |
| 403 | insufficient_scope / brand_not_allowed | Authorization denied |
| 404 | not_found | Resource not found |
| 429 | rate_limit_exceeded | Too many requests |
| 500 | internal_error | Server error |
API Keys
Brands
Scans
Actions
Monitoring
Intelligence
Reddit Engage
Visibility Activation
Teams
Billing
Webhooks
Usage & Credits
Ready to integrate?
Create your free account and generate an API key to start building with the Akii API.