# OTLP/HTTP API

The canonical OTLP ingest contract is [OTLP/HTTP API](./otlp-api.md).

Provon accepts OpenTelemetry traces, logs, and metrics over OTLP/HTTP:

| Signal  | Endpoint                                  |
| ------- | ----------------------------------------- |
| Traces  | `POST https://otel.provon.dev/v1/traces`  |
| Logs    | `POST https://otel.provon.dev/v1/logs`    |
| Metrics | `POST https://otel.provon.dev/v1/metrics` |

Use a project API key with `telemetry:ingest`:

```bash
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer $PROVON_API_KEY"
```

Both OTLP protobuf and OTLP JSON are accepted. `gzip`, `deflate`, and identity transport encodings
are supported. A `200` response is asynchronous acceptance; it means the payload was staged and
queued, not that records are queryable yet.

Continue with [OTLP/HTTP API](./otlp-api.md) for limits, response bodies, status codes, and retry
rules.
