API Overview
Integrate Keva into your applications with our REST API
The current Keva public API is a RESTful interface for ticket and message operations.
Approvals, knowledge base, customers, workflows, and webhook management are not exposed
through API-key-authenticated /api/v1 routes.
Base URL
All API requests should be made to:
https://app.keva.support/api/v1Authentication
The API uses Bearer token authentication. Include your API key in the Authorization header:
curl https://app.keva.support/api/v1/tickets \
-H "Authorization: Bearer keva_live_your_api_key"API keys are prefixed with keva_live_ to identify them. Generate keys in Settings > API Keys.
Request Format
- All requests must use HTTPS
- Request bodies should be JSON with
Content-Type: application/json - Query parameters are used for filtering and pagination
Response Format
Ticket and message responses return JSON with a data field. List responses also include
pagination metadata:
{
"data": { ... },
"pagination": {
"page": 1,
"perPage": 20,
"total": 150
}
}Error responses include an error field:
{
"error": "Invalid API key"
}The public health response is a direct status object rather than a data envelope. It is
a liveness-only check and does not prove DB/Redis readiness. Unexpected platform failures
are not guaranteed to use the route-level JSON error shape.
Rate Limiting
Shaped API-key ticket and message requests use a strict 300 requests per minute
bucket per forwarded source before the raw key is hashed or the database is read,
then a strict 100 requests per minute bucket per full-key hash before database
lookup. Missing or unavailable Redis returns 503; an exhausted bucket returns
429 Too Many Requests. These responses do not currently include Retry-After.
The public health route is outside these buckets, and forwarded-source trust,
configured Redis behavior, deployed enforcement, edge protection, and universal
coverage remain unproven.
Pagination
List endpoints support pagination with these query parameters:
| Parameter | Default | Max | Description |
|---|---|---|---|
page | 1 | - | Positive integer page number |
per_page | 20 | 100 | Positive integer items per page |
Available Endpoints
| Resource | Description |
|---|---|
Health (GET /health) | Check public API liveness |
| Tickets | Create and manage support tickets |
Scopes
API keys can be limited to specific scopes:
| Scope | Description |
|---|---|
tickets:read | Read ticket data |
tickets:write | Create tickets and update status, priority, and assignment |
SDKs
Official SDKs are coming soon. In the meantime, use any HTTP client library.
Need Help?
- Check the error codes reference
- Email hello@keva.support