Endpoint
Authentication
OTEL_EXPORTER_OTLP_LOGS_HEADERS, the value must be URL-encoded:
Supported content types
Rootprint acceptsapplication/x-protobuf only. Any other Content-Type returns 415 Unsupported Media Type.
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).
Encoding
Content-Encoding: gzip / x-gzip, zstd, deflate / x-deflate, and identity (or no header) for uncompressed. Any other value is rejected. OTEL SDKs send gzip or no compression.
Response codes
Rootprint maps OTLP errors to gRPC-style status codes. Upstream4xx statuses pass through as sent, and any upstream 5xx or network failure is clamped to a retryable 503.
On a
413, lower the agent’s batch size (batch.max_bytes in Vector, send_batch_max_size on the Collector’s batch processor) or raise the proxy’s body limit.
Environment variables
Index target
The target index is pinned by the ingest API key, not by the SDK. To write to a different index, create an ingest API key scoped to that index in Settings → API keys and use its value in theAuthorization header. See Manage indexes.
Rootprint also accepts OTLP traces at
POST /v1/traces, with the same ingest key and the
same protobuf-only rule. Spans ignore the index scope described above: they always go to the span
store named by TRACE_INDEX_ID, whatever index the key is pinned to. See
Send traces.
