DocsDeprecated APIs

Deprecated APIs

These APIs are deprecated and receive security patches only, no other fixes or new functionality. To migrate, see Migration of deprecated APIs.

Deprecated endpoints

All paths are relative to /api/public.

Deprecated endpoint(s)ParametersReplacement
GET /traces, /traces/{id}API referenceObservations API v2, filtered by traceId
GET /observations, /observations/{id}API referenceObservations API v2
GET /sessions, /sessions/{id}API referenceObservations API v2, filtered by sessionId
GET /scores, /v2/scores (+ /{id})API referenceScores API v3
GET /metricsDocumented belowMetrics API v2
GET /metrics/dailyDocumented belowMetrics API v2
GET /datasets/{name}/runs (+ /{runName})API referenceExperiments API
POST /ingestionAPI referenceOpenTelemetry ingestion
POST /traces, /spans, /generations, /eventsNot in the API referenceOpenTelemetry ingestion

Score writes via POST /scores are not deprecated.

Metrics API v1

GET /api/public/metrics

The v1 Metrics API supports querying across different views (traces, observations, scores) and allows you to:

  • Select specific dimensions to group your data
  • Apply multiple metrics with different aggregation methods
  • Filter data based on metadata, timestamps, and other properties
  • Analyze data across time with customizable granularity
  • Order results

Replacement: Metrics API v2.

Query Parameters

The v1 API accepts a JSON query object passed as a URL-encoded parameter:

ParameterTypeDescription
queryJSON stringThe encoded query object defining what metrics to retrieve

Query Object Structure

FieldTypeRequiredDescription
viewstringYesThe data view to query: "traces", "observations", "scores-numeric", "scores-categorical", or "scores-boolean"
dimensionsarrayNoArray of dimension objects to group by, e.g. [{ "field": "name" }]
metricsarrayYesArray of metric objects to calculate, e.g. [{ "measure": "latency", "aggregation": "p95" }]
filtersarrayNoArray of filter objects to narrow results, e.g. [{ "column": "metadata", "operator": "contains", "key": "customKey", "value": "customValue", "type": "stringObject" }]
timeDimensionobjectNoConfiguration for time-based analysis, e.g. { "granularity": "day" }
fromTimestampstringYesISO timestamp for the start of the query period
toTimestampstringYesISO timestamp for the end of the query period
orderByarrayNoSpecification for result ordering, e.g. [{ "field": "name", "direction": "asc" }]

Dimension Object Structure

{ "field": "name" }

Metric Object Structure

{ "measure": "count", "aggregation": "count" }

Common measure types include:

  • count - Count of records
  • latency - Duration/latency metrics

Aggregation types include:

  • sum - Sum of values
  • avg - Average of values
  • count - Count of records
  • max - Maximum value
  • min - Minimum value
  • p50 - 50th percentile
  • p75 - 75th percentile
  • p90 - 90th percentile
  • p95 - 95th percentile
  • p99 - 99th percentile

Filter Object Structure

{
  "column": "metadata",
  "operator": "contains",
  "key": "customKey",
  "value": "customValue",
  "type": "stringObject"
}

Time Dimension Object

{
  "granularity": "day"
}

Supported granularities include: hour, day, week, month, and auto.

Example

Here's an example of querying the number of traces grouped by name:

curl \
-H "Authorization: Basic <BASIC AUTH HEADER>" \
-G \
--data-urlencode 'query={
  "view": "traces",
  "metrics": [{"measure": "count", "aggregation": "count"}],
  "dimensions": [{"field": "name"}],
  "filters": [],
  "fromTimestamp": "2025-05-01T00:00:00Z",
  "toTimestamp": "2025-05-13T00:00:00Z"
}' \
https://cloud.langfuse.com/api/public/metrics
query = """
{
  "view": "traces",
  "metrics": [{"measure": "count", "aggregation": "count"}],
  "dimensions": [{"field": "name"}],
  "filters": [],
  "fromTimestamp": "2025-05-01T00:00:00Z",
  "toTimestamp": "2025-05-13T00:00:00Z"
}
"""

langfuse.api.legacy.metrics_v1.metrics(query = query)

Response:

{
  "data": [
    { "name": "trace-test-2", "count_count": "10" },
    { "name": "trace-test-3", "count_count": "5" },
    { "name": "trace-test-1", "count_count": "3" }
  ]
}

Data Model

The v1 Metrics API provides access to several data views, each with its own set of dimensions and metrics you can query. This section outlines the available options for each view.

Available Views

ViewDescription
tracesQuery data at the trace level
observationsQuery data at the observation level
scores-numericQuery numeric scores
scores-categoricalQuery categorical (string) scores
scores-booleanQuery boolean scores

Trace Dimensions

DimensionTypeDescription
idstringTrace ID
namestringTrace name
tagsstring[]Trace tags
userIdstringUser ID associated with the trace
sessionIdstringSession ID associated with the trace
releasestringRelease tag
versionstringVersion tag
environmentstringEnvironment (e.g., production, staging)
observationNamestringName of related observations
scoreNamestringName of related scores

Trace Metrics

MetricDescription
countCount of traces
observationsCountCount of observations within traces
scoresCountCount of scores within traces
latencyTrace duration in milliseconds
totalTokensTotal tokens used in the trace
totalCostTotal cost of the trace

Observation Dimensions

DimensionTypeDescription
idstringObservation ID
traceIdstringAssociated trace ID
traceNamestringName of the parent trace
environmentstringEnvironment (e.g., production, staging)
parentObservationIdstringID of parent observation
typestringObservation type
namestringObservation name
levelstringLog level
versionstringVersion
providedModelNamestringModel name
promptNamestringPrompt name
promptVersionstringPrompt version
userIdstringUser ID from parent trace
sessionIdstringSession ID from parent trace
traceReleasestringRelease from parent trace
traceVersionstringVersion from parent trace
scoreNamestringRelated score name

Observation Metrics

MetricDescription
countCount of observations
latencyObservation duration in milliseconds
totalTokensTotal tokens used
totalCostTotal cost
timeToFirstTokenTime to first token in milliseconds
countScoresCount of related scores

Score Dimensions (Common)

DimensionTypeDescription
idstringScore ID
namestringScore name
environmentstringEnvironment
sourcestringScore source
dataTypestringData type
traceIdstringRelated trace ID
traceNamestringRelated trace name
userIdstringUser ID from trace
sessionIdstringSession ID from trace
observationIdstringRelated observation ID
observationNamestringRelated observation name
observationModelNamestringModel used in related observation
observationPromptNamestringPrompt name used in related observation
observationPromptVersionstringPrompt version used in related observation
configIdstringConfiguration ID

Score Metrics

Numeric Scores
MetricDescription
countCount of scores
valueNumeric score value
Boolean Scores
MetricDescription
countCount of scores
valueNumeric score value, where 0 is false and 1 is true. Use the avg aggregation to return the true rate

Boolean scores have an additional dimension:

DimensionTypeDescription
booleanValuebooleanBoolean value of the score for grouping and filtering
Categorical Scores
MetricDescription
countCount of scores

Categorical scores have an additional dimension:

DimensionTypeDescription
stringValuestringString value of the categorical score

Daily Metrics API

GET /api/public/metrics/daily

The Daily Metrics API returns aggregated daily usage and cost metrics for downstream use in analytics, billing, and rate limiting. Filter by trace name, user, or tags.

Replacement: Metrics API v2 with a daily time dimension.

Overview

Returned data includes daily timeseries of:

  • Cost in USD
  • Trace and observation count
  • Break down by model name
  • Usage (e.g. tokens) broken down by input and output usage

Optional filters:

  • traceName to commonly filter by the application type, depending on how you use name in your traces
  • userId to filter by user
  • tags to filter by tags
  • fromTimestamp
  • toTimestamp

Example

GET /api/public/metrics/daily?traceName=my-copilot&userId=john&limit=2
{
  "data": [
    {
      "date": "2024-02-18",
      "countTraces": 1500,
      "countObservations": 3000,
      "totalCost": 102.19,
      "usage": [
        {
          "model": "llama2",
          "inputUsage": 1200,
          "outputUsage": 1300,
          "totalUsage": 2500,
          "countTraces": 1000,
          "countObservations": 2000,
          "totalCost": 50.19
        },
        {
          "model": "gpt-4",
          "inputUsage": 500,
          "outputUsage": 550,
          "totalUsage": 1050,
          "countTraces": 500,
          "countObservations": 1000,
          "totalCost": 52.0
        }
      ]
    },
    {
      "date": "2024-02-17",
      "countTraces": 1250,
      "countObservations": 2500,
      "totalCost": 250.0,
      "usage": [
        {
          "model": "llama2",
          "inputUsage": 1000,
          "outputUsage": 1100,
          "totalUsage": 2100,
          "countTraces": 1250,
          "countObservations": 2500,
          "totalCost": 250.0
        }
      ]
    }
  ],
  "meta": {
    "page": 1,
    "limit": 2,
    "totalItems": 60,
    "totalPages": 30
  }
}

Was this page helpful?

Last edited