feat!: remove endpoints deprecated in Langfuse v4 - #49
Merged
Steffen911 merged 1 commit intoAug 24, 2026
Conversation
Langfuse v4 moves to an observations-first data model, and the endpoints
built on the v3 model are deprecated: Langfuse Cloud serves them until
November 16, 2026, and self-hosted deployments lose them on upgrade to v4.
This prunes them from the generated client so it only exposes the API
surface that survives the cutover.
Removed entirely (every endpoint deprecated):
ingestion POST /ingestion
observations GET /observations, /observations/{id}
metrics GET /metrics (v1)
sessions GET /sessions, /sessions/{id}
scorev2 GET /v2/scores, /v2/scores/{id}
datasetrunitems POST/GET /dataset-run-items
Pruned to the non-deprecated operations:
trace dropped get()/list(), kept delete()/deleteMultiple() — trace
deletion is not deprecated and is now the documented way to
delete experiment data
datasets dropped getRun()/deleteRun()/getRuns(), kept the /v2/datasets
operations
Also drops the 34 types under resources/commons/types that the removal
orphaned (the v3-model read models: Trace*, Session*, Observation,
ObservationsView, the Score/ScoreV1 unions, DatasetRun*, Usage) and unwires
the six clients from LangfuseClient/AsyncLangfuseClient. Orphan status was
verified with an import-graph reachability pass and diffed against HEAD so
pre-existing orphans stayed out of scope.
Score writes are unaffected: POST /scores and DELETE /scores/{scoreId} stay
supported after the cutover. Only score reads move to /v3/scores.
The README now leads with OpenTelemetry as the recommended and going-forward
only supported path for tracing, and documents the per-endpoint migration
mapping. It also records that the prune has to be re-applied after each
regeneration, since the generator reproduces deprecated endpoints.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Steffen911
deleted the
claude/langfuse-java-deprecated-endpoints-d985e9
branch
August 24, 2026 15:39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Langfuse v4 moves to an observations-first data model, and the endpoints built on the v3 model are deprecated: Langfuse Cloud serves them until November 16, 2026, and self-hosted deployments lose them on upgrade to v4. This prunes them from the generated client so it only exposes the API surface that survives the cutover.
Removed entirely (every endpoint deprecated):
ingestion POST /ingestion
observations GET /observations, /observations/{id}
metrics GET /metrics (v1)
sessions GET /sessions, /sessions/{id}
scorev2 GET /v2/scores, /v2/scores/{id}
datasetrunitems POST/GET /dataset-run-items
Pruned to the non-deprecated operations:
trace dropped get()/list(), kept delete()/deleteMultiple() — trace
deletion is not deprecated and is now the documented way to
delete experiment data
datasets dropped getRun()/deleteRun()/getRuns(), kept the /v2/datasets
operations
Also drops the 34 types under resources/commons/types that the removal orphaned (the v3-model read models: Trace*, Session*, Observation, ObservationsView, the Score/ScoreV1 unions, DatasetRun*, Usage) and unwires the six clients from LangfuseClient/AsyncLangfuseClient. Orphan status was verified with an import-graph reachability pass and diffed against HEAD so pre-existing orphans stayed out of scope.
Score writes are unaffected: POST /scores and DELETE /scores/{scoreId} stay supported after the cutover. Only score reads move to /v3/scores.
The README now leads with OpenTelemetry as the recommended and going-forward only supported path for tracing, and documents the per-endpoint migration mapping. It also records that the prune has to be re-applied after each regeneration, since the generator reproduces deprecated endpoints.