Compatibility

August 14, 2026 ยท View on GitHub

Last verified: 2026-08-14.

TargetStatusNotes
Langfuse Cloud observation-first/v4 UIPrimary targetOTLP/HTTP protobuf, trace endpoint, Basic auth, and ingestion header 4 are locked by wire tests and verified against a live Langfuse deployment before each release.
Langfuse self-hosted OTLP endpointVerified with v3.175.0 and v4.11.0The full synthetic ingestion and read-back gate passes against both upstream Compose images. Langfuse documents the OTLP endpoint for self-hosted releases beginning with v3.22.0; verify the exact deployed release before production use.
OpenTelemetry Go SDK v1.45TestedBoth isolated and caller-owned *sdktrace.TracerProvider modes are covered under the race detector.
OTLP/HTTP protobufSupportedThis is the only transport emitted by this module.
OTLP/HTTP JSONNot emittedLangfuse accepts it, but this SDK deliberately has one wire format.
OTLP/gRPCUnsupportedLangfuse's native endpoint does not support gRPC.

The SDK sends x-langfuse-ingestion-version: 4 unconditionally. A server that does not recognize this version is incompatible; upgrade that deployment rather than weakening the header.

Scores are submitted as single-event score-create batches to the JSON ingestion endpoint /api/public/ingestion on the same host, with the same Basic authentication; the event envelope carries the score timestamp, matching the official SDKs. This endpoint is independent of the OTLP ingestion version. Its 207 multi-status body is part of the delivery contract; how per-item results are classified for retry is described in the reference.

Prompts are read from the REST endpoint GET /api/public/v2/prompts/{name} on the same host with the same Basic authentication, selected by version or label. Responses are validated against the request (name, version, label, and type) before they are cached; caching and retry semantics are described in the reference.

go-langfuse uses the instrumentation scope langfuse-sdk.go. Langfuse treats the langfuse-sdk prefix as an ingestion marker that prevents semantic attributes from being copied into generic metadata.attributes; the .go suffix and x-langfuse-sdk-name: go identify the independent client.

The base URL must be a host root, /api/public/otel, or the full /api/public/otel/v1/traces endpoint. Path-prefixed reverse-proxy base URLs (for example https://gw.example.com/langfuse/api/public/otel) are not supported in v0.1.

Tests never require Langfuse credentials; compatibility is re-verified against a live Langfuse deployment before each release, as described in RELEASING.md.