Logs
Developer Logs give every workspace an observability surface for API, publishing, OAuth, webhook, and worker activity. Query them over REST, backfill with cursor pagination, or stream them in near real time over SSE.
GETList logs
/v1/logsCursor-paginated search and backfill across retained logs.GETGet log/v1/logs/{id}Fetch one log, including redacted request and response payloads.GETStream logs/v1/logs/streamServer-Sent Events stream for near real-time ingestion, with replay.Scope and isolation
- Logs are always scoped to the workspace that owns the API key or dashboard session. The normal logs API never accepts a
workspace_idparameter. - Requesting a log that belongs to another workspace returns
404 NOT_FOUND. - Admin logs are a separate, super-admin-only surface and are never available through these endpoints.
Redaction and payloads
- The list endpoint never returns raw payloads. The detail endpoint includes redacted
request_payloadandresponse_payload. - Redaction runs before logs are persisted. Any object key whose lowercased name contains
token,secret,authorization,cookie,password,refresh_token,access_token, orclient_secretis replaced with[REDACTED]. - Payloads are truncated to keep log rows bounded.
- Use the
request_idfield to correlate API responses with their logs.
Retention by plan
Backfill returns every log still retained for your workspace, not all logs ever created. Retention depends on plan:
Plan
Retention
free1 dayapi7 daysbasic14 daysgrowth30 daysteam90 daysenterprise180 daysChoosing an access pattern
Use REST list with
cursor for polling and backfill. Use the SSE stream for near real-time ingestion. Keep using webhooks for post and account lifecycle events.