Skip to main content
Squasher’s ingestion API accepts the Squasher event schema over HTTP. No SDK required — if you can make an HTTP request that sends structured events, you can send data to Squasher. This is the universal fallback for any language, framework, or platform that doesn’t have a dedicated SDK. If you use the Log Connectors screen in Squasher, create the HTTP API connector first and copy the managed endpoint and ingest key from there. The endpoint below uses the same wire format.

Endpoint

Authentication

Quick Start

Send a test event using curl:
Response: 202 Accepted

Batch Formats

Send one JSON object for a single event. To send multiple events, use any of these formats:
  • A top-level JSON array
  • An object containing an events array
  • Newline-delimited JSON (NDJSON), with one object per non-empty line
For an events envelope:
The equivalent top-level array is:
For NDJSON, set Content-Type: application/x-ndjson:
Empty bodies, empty batches, malformed JSON, and non-object events return 400 Bad Request and are not forwarded.

Payload Fields

Log Levels

Squasher processes all log levels but treats them differently: Non-error events provide context for AI triage — when an error occurs, Squasher uses surrounding log entries to build a richer diagnosis.

Examples

Error with Stack Trace

Structured Log Entry

Python

Go

Ruby

Rate Limits

  • Edge: 1 MB max payload per request for SDK/drain routes
  • OTLP: 5 MB max payload for /v1/traces and /v1/logs
  • Project admission limit — batches that exceed max_events_per_minute return 429 with Retry-After and X-RateLimit-* headers; retry after the advertised reset

Combining with SDKs

The HTTP API accepts the same payload format as Squasher’s SDKs. You can mix and match — use the SDK for your primary language and the HTTP API for auxiliary services. All events appear in the same dashboard and are deduplicated by fingerprint.

AI batch ingest

For LLM generations, agent sessions, and tool calls, prefer the Agent telemetry SDK. If you need direct HTTP, send Langfuse-compatible AI batches to POST /v1/ai/ingest/{project_id}. The OpenRouter integration has a complete curl payload.

Agent handoff