Base URL
All API requests should be made to:Authentication
Authenticate requests by including your API key in theX-API-Key header:
Request format
- Content-Type:
application/jsonfor all requests with a body - Method: Use appropriate HTTP methods (GET, POST, PATCH, DELETE)
- IDs: All resource IDs are UUIDs
Response format
All responses are JSON-encoded. Successful responses include the requested resource or a confirmation.HTTP status codes
| Code | Description |
|---|---|
200 | OK - Request succeeded |
201 | Created - Resource created successfully |
204 | No Content - Request succeeded (delete operations) |
400 | Bad Request - Invalid request format |
401 | Unauthorized - Invalid or missing API key |
403 | Forbidden - Valid key but insufficient permissions |
404 | Not Found - Resource doesn’t exist |
422 | Validation Error - Request body validation failed |
500 | Internal Server Error - Server-side error |
Error responses
Errors return a JSON object with adetail field:
Pagination
List endpoints support pagination withpage and page_size parameters:
| Field | Description |
|---|---|
items | Array of resources |
total | Total count across all pages |
page | Current page number (1-indexed) |
page_size | Items per page |
has_more | Whether more pages exist |
Idempotency
POST requests that create resources are not idempotent. To avoid duplicates, track the returnedid from successful requests.
Versioning
The API version is included in the URL path:/api/v1/...
Breaking changes will be introduced in new versions (e.g., /api/v2/...). Existing versions remain supported.
Resource hierarchy
Common patterns
Presigned URL uploads
Audio file uploads use presigned URLs for direct-to-storage uploads:- Request URL: POST to get a presigned upload URL
- Upload: POST the file to the presigned URL
- Confirm: POST to confirm the upload completed
Async operations
Training and inference are async operations:- Create: POST to create a job
- Poll: GET the job periodically to check status
- Results: Read results when status is
completed
Draft and publish
Annotation sets follow a draft → publish workflow:- Create set (starts as draft)
- Add/edit annotations
- Publish (locks the set)
- Use for training
API endpoints
Authentication
Manage API keys
Datasets
Create and manage datasets
Audio Files
Upload and manage audio
Annotations
Label audio artifacts
Training
Train detection models
Inference
Detect artifacts in audio
