Skip to main content
POST
/
api
/
traces
Forward telemetry traces to the backend collector
curl --request POST \
  --url https://your-instance.example.com/api/traces \
  --header 'Content-Type: application/json' \
  --data '
{
  "resourceSpans": [
    {
      "resource": {
        "attributes": [
          {
            "key": "service.name",
            "value": {
              "stringValue": "tether-web"
            }
          },
          {
            "key": "service.version",
            "value": {
              "stringValue": "2026.05.20"
            }
          }
        ]
      },
      "scopeSpans": [
        {
          "spans": [
            {
              "traceId": "4bf92f3577b34da6a3ce929d0e0e4736",
              "spanId": "00f067aa0ba902b7",
              "name": "POST /api/messages",
              "kind": 3,
              "startTimeUnixNano": "1763624641135000000",
              "endTimeUnixNano": "1763624641311000000",
              "attributes": [
                {
                  "key": "http.status_code",
                  "value": {
                    "intValue": 200
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
'
{
  "status": "accepted"
}

Body

application/json

OpenTelemetry trace payload (any shape). The body is forwarded verbatim to the configured collector (Axiom) — Tether does not parse it, so any OTLP-JSON or vendor-extended structure works.

Response

202 - application/json

Traces accepted

status
enum<string>
required

Always accepted — the API queues the payload synchronously and returns; downstream collector failures are not surfaced.

Available options:
accepted