Skip to main content

Base URL

All API requests go to:
https://api.squasher.ai
Ingestion endpoints (sending errors and log drain data) go to:
https://ingest.squasher.ai

Authentication

Every request requires an API key in the x-squasher-key header:
curl https://api.squasher.ai/v1/projects \
  -H "x-squasher-key: sq_pk_your_key_here"
API keys are scoped per project. You can create and manage them in Dashboard > Settings > API Keys.
Key prefixScopeUse case
sq_pk_Ingest + readSDKs, CLI, read-only dashboards
sq_sk_Full accessServer-side admin, automation

Rate Limits

EndpointLimit
POST /v1/ingest/:project_idPlan-dependent (5K-2M events/month)
POST /v1/drain/*Unlimited (log drains are not rate-limited)
GET /v1/*100 requests/minute per API key
POST /v1/* (mutations)30 requests/minute per API key
When you exceed a rate limit, you’ll receive a 429 Too Many Requests response with a Retry-After header.

Response Format

All responses are JSON. Successful responses return the data directly. Errors return:
{
  "error": "Human-readable error message"
}

Status Codes

CodeMeaning
200Success
201Created
202Accepted (ingestion — event queued)
400Bad request (invalid payload)
401Unauthorized (missing or invalid API key)
403Forbidden (API key doesn’t have access to this resource)
404Not found
429Rate limit exceeded
500Internal server error