Base URL
All API requests should be made to:Authentication
All endpoints require authentication via thex-api-key header. See Authentication for details.
Request Format
- Content-Type:
application/jsonfor POST requests - Accept:
application/json
Response Format
All responses are JSON objects. Successful responses return the requested data directly. Error responses follow a standard format:Error Codes
| Code | HTTP Status | Description |
|---|---|---|
VALIDATION_ERROR | 400 | Request validation failed |
BAD_REQUEST | 400 | Malformed request |
UNAUTHORIZED | 401 | Authentication required |
MISSING_API_KEY | 401 | No API key provided |
INVALID_API_KEY | 401 | API key is invalid or inactive |
FORBIDDEN | 403 | Access denied |
NOT_FOUND | 404 | Resource not found |
CONFLICT | 409 | Resource conflict (e.g., duplicate) |
INTERNAL_ERROR | 500 | Internal server error |
Validation Errors
When request validation fails, thedetails field contains an array of specific field errors:
Rate Limits
| Limit | Value |
|---|---|
| Requests per second | 1,000 |
X-RateLimit-Limit- Maximum requests allowedX-RateLimit-Remaining- Requests remaining in current windowX-RateLimit-Reset- Unix timestamp when the limit resets
429 Too Many Requests response.
Pagination
The query endpoint supports pagination vialimit and offset parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 50 | Max results per page (1-10000) |
offset | integer | 0 | Number of results to skip |
pagination object:
Instance Scoping
All analytics in Thunder are scoped to instances. When you query metrics, you must specify aninstanceId and results will only include data from that instance. Topics, signals, gaps, and usage metrics are analyzed separately per instance.