OpenAPI Specification
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.