Programmatic access (ingestion API)
ObserveKit's ingestion endpoints are the stable, externally-callable API — authenticated with a source API key (or, for install, a short-lived token). They're what the agent and OTel SDKs use, and you can call them directly.
> There is no public REST API for managing resources (sources, alerts, dashboards, etc.). Those endpoints are the web UI's own backend: they require a browser session (JWT), are CORS-locked to the UI origin, and aren't intended for programmatic use. API keys authorize ingestion only — they can't read data or manage resources.
Endpoints
| Method + Path | Auth | Purpose |
|---|---|---|
POST /v1/traces | API key | OTLP traces (HTTP 4318; gRPC 4317) |
POST /v1/metrics | API key | OTLP metrics |
POST /v1/logs | API key | OTLP logs |
POST /api/v1/ingest | API key | Agent log ingest |
POST /api/v1/metrics/ingest | API key | Agent metric ingest |
POST /api/v1/heartbeat | API key | Agent heartbeat / version report |
GET /api/v1/agent/config | API key | Fetch the server-pushed config for this agent |
POST /api/v1/webhooks/deploy | API key | Record a deployment marker |
GET /install/{token} | install token | Render the agent manifest (24h token) |
GET /api/v1/health | none | Liveness — {"status":"ok"} |
Base URL in production: https://observekit-api.expeed.com.
GET /api/v1/agent/config is the one endpoint here that reads rather than writes, and it takes no source id — the source is derived from the API key, so an agent can only ever fetch its own configuration. There is no parameter that would let one key read another source's config.
Auth
Send the source API key as either header:
X-API-Key: <your-key>
Authorization: Bearer <your-key>
See API keys for where to get and how to rotate one. For OTLP specifically (per-language SDK setup, service sources) see Sending data with OpenTelemetry.
Limits
- Body size: 10 MiB per request (compressed and decompressed).
gzipandzstdaccepted. - Rate: ingestion is limited to 600 requests/minute per source IP. Batch, don't spray single events.
- Batch size: the agent log-ingest path caps a batch at 10,000 entries — larger batches are rejected.
Recording a deployment marker
POST /api/v1/webhooks/deploy with your API key writes a marker that shows up on charts (see Deployments) so you can correlate a rollout with a metric/error change.
Health check
GET /api/v1/health needs no auth and returns {"status":"ok","service":"observekit-server"} — use it for uptime probes.