Spanport

Errors & limits

Ingest responses are JSON. Control-plane errors use the same shape: { "error": "…" }.

HTTP status

CodeWhenWhat to do
200Accepted (may be sampled out)Check sampledOut / spanport.destinations
400Bad JSON/protobuf body or control payloadFix encoding / required fields
401Missing / invalid / revoked API key (invalid api key)Mint a new key; check Bearer header
429Indie plan quota exceeded (plan_quota_throttled)Upgrade via POST /v1/billing/checkout
503Vault not configured for sealing destination secretsSet SPANPORT_VAULT_MASTER_KEY

Plan quotas (ingest)

PlanIncludedOver quota
Indie5 GB / moThrottle → 429
Startup50 GB / moAllowed; metered overage
Team200 GB / moAllowed; metered overage

Soft limits are evaluated before decode fan-out. See billing docs in the repo for Stripe Checkout / Portal.