Skip to main content
Logwiz exposes an OTLP HTTP endpoint that accepts OpenTelemetry logs, authenticates them with an ingest token, and forwards them to Quickwit’s OTLP endpoint. The target index is fixed by the token — the exporter does not choose it.

Endpoint

POST https://<your-logwiz>/api/otlp/v1/logs

Authentication

Authorization: Bearer <ingest-token>
When used through OTEL_EXPORTER_OTLP_LOGS_HEADERS, the value must be URL-encoded:
OTEL_EXPORTER_OTLP_LOGS_HEADERS=Authorization=Bearer%20<your-ingest-token>
The %20 between Bearer and the token is required — OTEL SDKs expect header values in URL-encoded form.

Supported content types

Logwiz accepts application/x-protobuf only. Any other Content-Type returns 415 Unsupported Media Type. Quickwit’s upstream OTLP endpoint does not accept JSON, and Logwiz does not transcode JSON to protobuf. Every major OTEL SDK already defaults to protobuf for HTTP logs — with one exception: the JavaScript package @opentelemetry/exporter-logs-otlp-http defaults to JSON. If you are using that package, switch to @opentelemetry/exporter-logs-otlp-proto (same OTLPLogExporter API).

Size and encoding

  • Maximum body: 10 MB on the wire (post-compression if Content-Encoding is set).
  • Content-Encoding: gzip is forwarded to Quickwit unchanged.

Response codes

StatusMeaning
200Accepted. Empty body.
400Empty request body.
401Missing Bearer token.
403Invalid or unknown ingest token.
413Body exceeds 10 MB.
415Content-Type is not application/x-protobuf.
429Upstream Quickwit is rate-limited. Retry-After is echoed.
503Upstream Quickwit error or network failure. Retry-After: 5.
Logwiz returns an empty 200 on success rather than a populated OTLP PartialSuccess response. OTEL SDKs treat an empty 200 as a full success and do not retry.

Environment variables

VariableValue
OTEL_SERVICE_NAMEYour service name (lands in service_name).
OTEL_EXPORTER_OTLP_LOGS_ENDPOINThttps://<your-logwiz>/api/otlp/v1/logs
OTEL_EXPORTER_OTLP_LOGS_HEADERSAuthorization=Bearer%20<your-ingest-token>
OTEL_EXPORTER_OTLP_LOGS_PROTOCOLhttp/protobuf (required)
OTEL_LOG_LEVELMinimum severity emitted by the SDK itself.

Index target

The target index is pinned by the ingest token, not by the SDK. To write to a different index, create a token scoped to that index in Administration → Tokens and use its value in the Authorization header. See Manage indexes.