curl --request POST \
--url https://api.pandaprobe.com/traces/{trace_id}/spans \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"span_id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"name": "tool-call-search",
"kind": "TOOL",
"status": "OK",
"input": {
"query": "password reset"
},
"output": {
"results": [
{
"title": "Reset your password",
"url": "/help/reset"
}
]
},
"started_at": "2026-03-29T10:00:00.500Z",
"ended_at": "2026-03-29T10:00:01.200Z"
}
]
'{
"span_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}Add one or more spans to an existing trace (upsert).
Auth: Bearer + X-Project-ID | X-API-Key + X-Project-Name
curl --request POST \
--url https://api.pandaprobe.com/traces/{trace_id}/spans \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"span_id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"name": "tool-call-search",
"kind": "TOOL",
"status": "OK",
"input": {
"query": "password reset"
},
"output": {
"results": [
{
"title": "Reset your password",
"url": "/help/reset"
}
]
},
"started_at": "2026-03-29T10:00:00.500Z",
"ended_at": "2026-03-29T10:00:01.200Z"
}
]
'{
"span_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
1 - 500 elements1 - 512Categorises what a span represents in an agentic workflow.
AGENT, TOOL, LLM, RETRIEVER, CHAIN, EMBEDDING, OTHER Mirrors the OTel StatusCode for a span's outcome.
UNSET, OK, ERROR 255Show child attributes
Successful Response
Response body for successfully added spans.