openapi: 3.1.0 info: title: Arize AX OTLP Ingestion Traces API version: 1.0.0 summary: Best-effort OpenAPI for the Arize AX OpenTelemetry (OTLP/HTTP) ingestion endpoint. description: 'Arize AX is built on the OpenInference OpenTelemetry conventions and accepts traces over the OTLP/HTTP protocol. This spec covers the OTLP/HTTP trace ingestion endpoint. The native GRPC OTLP endpoint (https://otlp.arize.com/v1) is not modeled here because OpenAPI cannot describe GRPC. Arize AX also exposes a GraphQL API (Admin, Annotations, Custom Metrics, Dashboards, Models, Monitors, etc.) and a REST API, each documented at https://arize.com/docs/ax. Authentication is performed via the space_id and api_key headers, both obtained from the Arize AX Settings page. An EU regional endpoint is also available via Endpoint.ARIZE_EUROPE in the arize-otel SDK. This is a best-effort spec derived from public docs and the arize-otel SDK. ' contact: name: Arize AI url: https://arize.com/docs/ax servers: - url: https://otlp.arize.com description: Arize AX OTLP ingestion (global) security: - ArizeApiKey: [] ArizeSpaceId: [] tags: - name: Traces description: OTLP trace ingestion paths: /v1/traces: post: tags: - Traces summary: Ingest OpenTelemetry traces (OTLP/HTTP) description: 'Accepts an OpenTelemetry ExportTraceServiceRequest payload encoded as either Protobuf (application/x-protobuf) or JSON (application/json). Use the space_id and api_key headers (or the OTLP standard authorization header carrying the same key) to authenticate. ' operationId: exportTraces parameters: - in: header name: space_id required: true schema: type: string description: Arize AX Space ID, found in Settings. - in: header name: api_key required: true schema: type: string description: Arize AX API Key, found in Settings. - in: header name: Content-Type required: true schema: type: string enum: - application/x-protobuf - application/json requestBody: required: true content: application/x-protobuf: schema: type: string format: binary description: Protobuf-encoded OTLP ExportTraceServiceRequest. application/json: schema: $ref: '#/components/schemas/ExportTraceServiceRequest' responses: '200': description: Traces accepted. content: application/json: schema: $ref: '#/components/schemas/ExportTraceServiceResponse' '400': description: Malformed payload. '401': description: Missing or invalid space_id / api_key. '413': description: Payload too large. '429': description: Rate limited. components: schemas: ResourceSpans: type: object properties: resource: type: object properties: attributes: type: array items: $ref: '#/components/schemas/KeyValue' scopeSpans: type: array items: type: object properties: scope: type: object properties: name: type: string version: type: string spans: type: array items: $ref: '#/components/schemas/Span' ExportTraceServiceRequest: type: object description: 'OTLP ExportTraceServiceRequest. See the opentelemetry-proto repo for the canonical schema. Modeled here loosely to keep this spec self-contained. ' properties: resourceSpans: type: array items: $ref: '#/components/schemas/ResourceSpans' Span: type: object properties: traceId: type: string spanId: type: string parentSpanId: type: string name: type: string kind: type: integer startTimeUnixNano: type: string endTimeUnixNano: type: string attributes: type: array items: $ref: '#/components/schemas/KeyValue' status: type: object properties: code: type: integer message: type: string KeyValue: type: object properties: key: type: string value: type: object ExportTraceServiceResponse: type: object properties: partialSuccess: type: object properties: rejectedSpans: type: integer format: int64 errorMessage: type: string securitySchemes: ArizeApiKey: type: apiKey in: header name: api_key description: Arize AX API Key (paired with space_id header). ArizeSpaceId: type: apiKey in: header name: space_id description: Arize AX Space ID.