Skip to main content
RunAgain ingests over OTLP/HTTP. Any OpenTelemetry-capable runtime can export to it — the SDK integrations are just convenience wrappers over these endpoints.

Base URL

https://ingest.runagain.ai

Authentication

Every request must carry a project API key, via either header:
x-runagain-key: sk_…
Authorization: Bearer sk_…
Missing or unknown keys return 401.

Endpoints

POST /v1/traces
OTLP traces
Standard OTLP spans. Accepts application/json or application/x-protobuf. Spans are normalized into RunAgain’s model (gen_ai provider, model, tokens, cost, tool name, session/conversation ids).
POST /v1/logs
OTLP logs (Claude Code)
OTLP log-events, used for Claude Code. Accepts application/json only. Each event is mapped to a span and grouped into a trace by session.id.

Example

curl -X POST https://ingest.runagain.ai/v1/traces \
  -H "x-runagain-key: $RUNAGAIN_API_KEY" \
  -H "Content-Type: application/json" \
  --data @trace.json

Responses

StatusMeaning
200Accepted (empty body per OTLP/HTTP)
400Invalid OTLP payload
401Missing / unknown API key
415Unsupported content-type
Large span inputs/outputs are automatically offloaded to blob storage above a size threshold, so you can trace big prompts and responses without bloating queries.