REST API for programmatic log ingestion and analysis retrieval.
API access requires Starter plan or higher. Generate keys from Dashboard โ Settings โ API Keys.
Base URL
https://app.errorlens.ai
On a self-hosted deployment, replace this with your NEXT_PUBLIC_APP_URL.
Authentication
Send your API key in the x-api-key header on every request. Keys start with the prefix el_live_.
x-api-key: el_live_your_key_here
POST /api/connectors/ingest
Submit a log payload for analysis. The analysis runs asynchronously โ fetch the result with the dashboard or with GET /api/analysis/:id using a session token.
Per-key rate limit: 100 requests / minute. Exceeding it returns 429 with a Retry-After header.
GET /api/analysis
List recent analyses for the authenticated user. Use a session bearer token from the dashboard, not an API key โ this endpoint is intended for the web app.
Pass ?poll=1 on repeat requests during status polling โ the response will skip the up-to-100KB error_log field.
Error codes
400 Bad Request โ missing or invalid request body
401 Unauthorized โ invalid or missing API key / session token
403 Forbidden โ plan does not include API access
429 Too Many Requests โ per-IP or per-key rate limit exceeded
(Retry-After header included)
500 Internal Error โ server-side failure, safe to retry after 30s
Rate limits
The ingest endpoint is rate-limited per API key:
Free: Not available (Starter or higher required)
Starter: 100 req/min per key
Pro: 100 req/min per key
Team: 100 req/min per key
Enterprise: Custom โ contact sales
Outbound webhooks (integrations)
ErrorLens does not currently expose a registration endpoint for webhooks. To receive analysis.completed events on your own server, configure a Custom Webhook integration from Dashboard โ Integrations โ ErrorLens will then POST a signed JSON payload to your URL whenever an analysis completes.
Verify the X-ErrorLens-Signature header by recomputing hmac-sha256(body, sharedSecret) and comparing with constant-time equality.
SDKs
Official SDKs are on the roadmap; for now, calling the REST API directly with fetch /curl / requests is supported on every plan. See the quick-start guide for ready-to-paste examples in five languages.