Authentication
All API requests must be authenticated using an API key. You can generate keys from your InceNar developer dashboard. Keys are tiered: Basic, Pro, Unlimited, and Developer.
API Key Format
Keys start with ink_ followed by a random string. Example: ink_pro_a1b2c3d4e5f6...
Include in requests
Authorization: Bearer ink_pro_YOUR_KEY
cURL example
curl https://api.incenar.com/v1/books \ -H "Authorization: Bearer ink_pro_YOUR_KEY"
Rate Limits & Quotas
Each API key has daily and monthly rate limits based on its tier. Exceeding the limit returns a 429 Too Many Requests response with aRetry-After header.
| Tier | Daily Requests | Monthly Requests |
|---|---|---|
| Basic | 100 | 1,000 |
| Pro | 10,000 | 100,000 |
| Unlimited | 100,000 | 1,000,000 |
| Developer | 50,000 | 500,000 |
Rate Limit Headers
Every successful response includes these headers:
X-RateLimit-Limit: 10000 X-RateLimit-Remaining: 9995 X-RateLimit-Reset: 2026-04-09T00:00:00Z
Error Codes
| Code | Meaning |
|---|---|
| 400 | Bad Request – invalid parameters |
| 401 | Unauthorized – missing or invalid API key |
| 403 | Forbidden – insufficient tier or permissions |
| 404 | Not Found – resource does not exist |
| 429 | Too Many Requests – rate limit exceeded |
| 500 | Internal Server Error – try again later |
GET
/v1/keys/meAllRetrieve information about the current API key (tier, usage, remaining quota).
Response Example
{
"data": {
"id": "key_123",
"tier": "pro",
"permissions": ["read:books", "write:webhooks"],
"usage": {
"today": 5,
"thisMonth": 342,
"dailyLimit": 10000,
"monthlyLimit": 100000,
"remainingToday": 9995,
"remainingThisMonth": 99658,
"resetsAt": "2026-04-09T00:00:00Z"
},
"expiresAt": null,
"createdAt": "2026-01-01T00:00:00Z"
}
}