API Reference

Messages

Read or upload individual messages and message batches.

GET/v1/traces/{externalId}/messages

Requires the traces:read API key scope.

AuthorizationBearer <token>

A namespace-scoped API key created in Traces organization settings.

In: header

Path Parameters

externalId*string

Query Parameters

includeParts?boolean
cursor?string

Cursor returned by a previous paginated response.

limit?integer

Page size. Supplying this enables paginated mode.

Range1 <= value <= 256
filter?string

Return all messages or only highlights.

Value in

  • "all"
  • "highlights"

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/traces/string/messages"
{  "ok": true,  "data": {    "messages": [      {        "id": "string",        "externalId": "string",        "sourceKey": "string",        "role": "user",        "textContent": "string",        "model": "string",        "order": 0,        "timestamp": 0,        "parts": [          {            "externalId": "string",            "sourceKey": "string",            "type": "text",            "content": {},            "order": 0,            "tokenUsage": {              "inputTokenCount": 0,              "outputTokenCount": 0,              "cacheReadTokenCount": 0,              "cacheWriteTokenCount": 0,              "reasoningTokenCount": 0,              "totalInputTokenCount": 0            }          }        ],        "tokenUsage": {          "inputTokenCount": 0,          "outputTokenCount": 0,          "cacheReadTokenCount": 0,          "cacheWriteTokenCount": 0,          "reasoningTokenCount": 0,          "totalInputTokenCount": 0        }      }    ]  }}
{  "ok": false,  "error": {    "code": "string",    "message": "string",    "details": {}  }}
{  "ok": false,  "error": {    "code": "string",    "message": "string",    "details": {}  }}
{  "ok": false,  "error": {    "code": "string",    "message": "string",    "details": {}  }}
PUT/v1/traces/{externalId}/messages/{messageId}

Requires the traces:write API key scope.

AuthorizationBearer <token>

A namespace-scoped API key created in Traces organization settings.

In: header

Path Parameters

externalId*string
messageId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/traces/string/messages/string" \  -H "Content-Type: application/json" \  -d '{    "idScheme": "v2",    "order": 1,    "parts": [      {        "content": {          "text": "Implemented bounded exponential backoff."        },        "externalId": "part-001",        "type": "text"      }    ],    "role": "assistant",    "textContent": "Implemented bounded exponential backoff.",    "timestamp": 1722470400000  }'
{  "ok": true,  "data": {    "message": {      "id": "string",      "externalId": "string",      "sourceKey": "string",      "role": "user",      "textContent": "string",      "model": "string",      "order": 0,      "timestamp": 0,      "parts": [        {          "externalId": "string",          "sourceKey": "string",          "type": "text",          "content": {},          "order": 0,          "tokenUsage": {            "inputTokenCount": 0,            "outputTokenCount": 0,            "cacheReadTokenCount": 0,            "cacheWriteTokenCount": 0,            "reasoningTokenCount": 0,            "totalInputTokenCount": 0          }        }      ],      "tokenUsage": {        "inputTokenCount": 0,        "outputTokenCount": 0,        "cacheReadTokenCount": 0,        "cacheWriteTokenCount": 0,        "reasoningTokenCount": 0,        "totalInputTokenCount": 0      }    }  }}
{  "ok": false,  "error": {    "code": "string",    "message": "string",    "details": {}  }}
{  "ok": false,  "error": {    "code": "string",    "message": "string",    "details": {}  }}
{  "ok": false,  "error": {    "code": "string",    "message": "string",    "details": {}  }}
POST/v1/traces/{externalId}/messages/batch

Requires the traces:write API key scope.

AuthorizationBearer <token>

A namespace-scoped API key created in Traces organization settings.

In: header

Path Parameters

externalId*string

Stable trace ID assigned by your integration.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/v1/traces/string/messages/batch" \  -H "Content-Type: application/json" \  -d '{    "idScheme": "v2",    "messages": [      {        "externalId": "msg-001",        "order": 0,        "parts": [          {            "content": {              "text": "Add bounded retries."            },            "externalId": "part-001",            "type": "text"          }        ],        "role": "user",        "textContent": "Add bounded retries."      }    ]  }'
{  "data": {    "messages": 1  },  "ok": true}