Skip to main content
AgentVista accepts telemetry in the OpenTelemetry Protocol (OTLP) over HTTP/JSON. You can point any OpenTelemetry-compatible SDK or collector directly at AgentVista with minimal configuration. All three OTLP signals share the same base path and authentication requirements:
  • Base URL: https://api.agentvista.dev/api/v1
  • Auth: Authorization: Bearer <api_key> with write scope
  • Content-Type: application/json
The /otlp/v1 prefix matches the OTLP/HTTP convention, so you can configure an OpenTelemetry Collector or SDK exporter to use https://api.agentvista.dev/api/v1 as the endpoint without any path customization.

Ingest OTLP traces

POST /otlp/v1/traces Accepts OTLP/HTTP JSON trace data. AgentVista translates the payload into its internal format and stores traces and spans alongside native SDK traces. Translation rules:
  • service.name resource attribute → Agent name (auto-created if new)
  • OTLP span kinds (SERVER, CLIENT, etc.) → AgentVista span type values
  • OTLP hex traceId / spanId → UUID format
  • OTLP status code 2 (ERROR) → status: "failed", codes 0/1"completed"
Returns 400 for malformed JSON or a missing resourceSpans key. Returns 429 if your monthly event limit is exceeded.

Request body

object[]
required
OTLP ExportTraceServiceRequest.resourceSpans array. See the OTLP specification for the full schema.

Response — 200

number
Number of traces successfully ingested.
number
Number of traces that failed ingestion.
object[]
Per-trace error objects containing trace_id and error for any rejected traces.

Ingest OTLP metrics

POST /otlp/v1/metrics Accepts OTLP/HTTP JSON metrics data. Each data point is stored as a MetricDataPoint associated with a named Metric stream. Returns 400 for malformed JSON or a missing resourceMetrics key.

Request body

object[]
required
OTLP ExportMetricsServiceRequest.resourceMetrics array.

Response — 200

number
Number of data points successfully ingested.

Ingest OTLP logs

POST /otlp/v1/logs Accepts OTLP/HTTP JSON log data. Log records with traceId and spanId are linked to their parent trace for cross-signal navigation. Returns 400 for malformed JSON.

Request body

object[]
required
OTLP ExportLogsServiceRequest.resourceLogs array.

Response — 200

number
Number of log records successfully ingested.

OpenTelemetry Collector configuration

Configure the otlphttp exporter in your collector to send all three signals to AgentVista:
otel-collector-config.yaml

Python OpenTelemetry SDK

Python SDK example