Lookout

Protocol overview

Lookout’s ingest surface is organized around errors, traces, and source maps. This page maps those ideas to Lookout endpoints and notes where behavior is intentionally narrow. For errors-only vs errors + performance and the server-side trace gate, see Monitoring modes.

Errors

Send JSON error reports with your project API key (same key as in project settings).

Authentication: X-Api-Key, X-Api-Token (alias of the same key), Authorization: Bearer, or api_key in the JSON body. Full field tables and examples are in the Ingest API doc.

Extended camelCase JSON: Lookout accepts common alternate-client camelCase fields on the same endpoints and maps them before validation: exceptionClass, applicationPath, trackingUuid, seenAtUnixNano, stacktrace (frames with lineNumber / className), attributes (merged into context), sourcemapVersionId (stored under context.sourcemap_version_id), events (serialized into context.nested_client_events), and solutions (first text mapped to client solution when present), isLogis_log, openFrameIndexopen_frame_index, overriddenGroupinggrouping_override (custom fingerprint when fingerprint is empty), and top-level level when sent as camelCase. Native Lookout snake_case fields take precedence when both are sent.

Traces

Use the native Lookout span JSON model on POST https://lookout.dply.io/api/ingest/trace (or /api/v1/ingest/trace) as described in Ingest API — Distributed tracing.

For OpenTelemetry collectors or SDKs that emit OTLP JSON (resourceSpans / Protobuf-JSON field names), use POST https://lookout.dply.io/api/ingest/trace/otlp (or /api/v1/ingest/trace/otlp) — same API key, rate limit, and performance ingest gate. Multiple traceId values in one payload are split into separate stored traces.

Each project can disable trace ingest in app settings; disabled projects return 403 on both trace endpoints (errors on /api/ingest are unaffected). Correlate errors with traces using trace_id, span_id, lookout_trace / Sentry-compatible headers on ingest.

Source maps

A separate hosted upload API only for source maps is not implemented in Lookout. Include source_map_url and/or inline source_map on error ingest where documented; values are stored for future symbolication (not applied in the UI yet).

Framework SDKs

Laravel (lookout/tracing), Rails (packages/lookout-rails), and WordPress (packages/lookout-wordpress) helpers for breadcrumbs or server-side exception reporting are summarized on Framework integrations. Install paths and mirrors: Packages & installation.

Beyond the three pillars

Lookout also exposes cron check-ins, performance profiles, and logs on the same API key — see Crons, Profiling, and Logs in the Ingest API doc. Trace and profile sampling is client-side: use lower rates in production and optional slow-transaction rules — see Tracing and Profiling there.