Skip to main content
POST
/
api
/
v1
/
telemetry
/
session
Ingest session telemetry
import requests

url = "https://api.example.com/api/v1/telemetry/session"

payload = {
    "name": "<string>",
    "trace_name": "<string>",
    "session_id": "<string>",
    "user_id": "<string>",
    "tags": ["<string>"],
    "metadata": {},
    "attributes": {},
    "start_time_unix_nano": 123,
    "end_time_unix_nano": 123,
    "children": [
        {
            "name": "<string>",
            "record_type": "<string>",
            "start_time_unix_nano": 123,
            "end_time_unix_nano": 123,
            "duration_ms": 123,
            "status_code": "<string>",
            "status_message": "<string>",
            "attributes": {},
            "children": "<array>"
        }
    ]
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
{
  "success": false,
  "error": {
    "detail": [
      {
        "loc": [
          "<string>"
        ],
        "msg": "<string>",
        "type": "<string>",
        "input": "<unknown>",
        "ctx": {}
      }
    ]
  }
}

Headers

X-API-Key
string | null

Body

application/json

A session telemetry record containing nested turn and child spans.

Posted by otel_report.py to /api/v1/telemetry/session. Uses the Langfuse SDK directly (rather than OpenTelemetry) to preserve proper parent-child nesting.

name
string | null
trace_name
string | null
session_id
string | null
user_id
string | null
tags
string[] | null
metadata
Metadata · object
attributes
Attributes · object
start_time_unix_nano
integer | null
end_time_unix_nano
integer | null
children
SessionSpan · object[] | null

Response

Successful Response