- HTTP API - REST endpoints for executing queries and managing subscriptions
- Python API - Direct programmatic access to datasets, query builders, and processors
Base URL
The Snuba API is available at your Snuba instance:Authentication
Snuba queries require tenant identification through the request body:The organization ID that owns the data being queried
Identifier for the service making the request (used for rate limiting and observability)
Query Languages
Snuba supports two query languages:SnQL (Snuba Query Language)
SQL-like language optimized for event data:MQL (Metrics Query Language)
Specialized language for metrics aggregation:Error Handling
Snuba returns structured error responses with appropriate HTTP status codes.Error Response Format
Common Error Types
The error category:
invalid_query- Query syntax or validation errorrate-limited- Request exceeded rate limitsclickhouse- Database errorstorage-not-available- Requested storage is not availablejson- JSON parsing errorschema- Request schema validation error
HTTP Status Codes
| Status Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad Request (invalid query, schema validation) |
| 404 | Dataset/Entity not found |
| 429 | Rate Limited |
| 500 | Internal Server Error |
| 503 | Service Unavailable (too many mutations) |
Rate Limiting
Snuba implements allocation policies to manage query resources:- Thread throttling - Limits concurrent query threads
- Bytes scanned - Limits data scanned per query
- Quota allowances - Per-organization resource quotas
Caching
Snuba automatically caches query results using Redis:- Cache key - Generated from query SQL
- Cache partitioning - Results partitioned by storage
- Duplicate detection - Concurrent identical queries share results
Consistency
For queries requiring strong consistency, set theconsistent flag:
Debugging
Enable debug mode to include detailed stats in responses:- Query execution stats
- Clickhouse query settings
- SQL generated
- Timing breakdown
- Cache status
- Allocation policy details
Next Steps
Query API
Execute SnQL and MQL queries
Subscriptions
Create recurring query subscriptions
Python API
Use Snuba programmatically