Ingest Spans
POST/tracing/spans/ingest
This endpoint has been deprecated and may be replaced or removed in future versions of the API.
Ingest spans into the tracing backend.
Use this endpoint to write full OpenTelemetry-style spans — including
multi-span hierarchies (parent → child → grandchild), attributes,
references, events and links. For simple single-span annotations or
evaluator outputs, prefer POST /preview/tracing/traces/
(create_simple_trace) — it's a higher-level helper on top of this
endpoint.
Request body
Provide exactly one of:
spans: a flat list of spans. Parent/child relationships are expressed viaparent_idon each span.traces: a nested tree keyed bytrace_idthen by span name, where each node may contain aspansdict of its children. The query endpoint (POST /tracing/spans/query) returns this shape.
Each span requires trace_id, span_id, start_time, end_time.
trace_id must be a 32-char hex UUID, span_id a 16-char hex.
Attributes follow the Agenta convention under the ag namespace
(ag.type, ag.data, ag.metrics, ag.references) and may be
submitted either as a flat dotted map (OTel wire format) or as a
nested object — both are accepted.
Response
Returns 202 Accepted with the links (trace_id + span_id) for
the spans that were parsed into the ingest stream. See
Tracing — Async write
contract
for what count < N submitted means.
Example
{
"spans": [
{
"trace_id": "f5a2efb40895881e938e2ebc070beca8",
"span_id": "15f3df0731995245",
"span_name": "completion_v0",
"span_type": "workflow",
"span_kind": "SPAN_KIND_SERVER",
"start_time": "2026-04-16T18:18:18.491929Z",
"end_time": "2026-04-16T18:18:20.415372Z",
"attributes": {
"ag.type.trace": "invocation",
"ag.type.span": "workflow",
"ag.data.inputs.country": "France",
"ag.data.outputs": "Paris"
}
}
]
}
Request
Responses
- 202
- 422
Successful Response
Validation Error