Exports

Exports API

Manage export configs that stream gateway trace data to external observability and evaluation tools.

Export configs stream gateway trace data to an external tool in near-real-time, as OTLP traces or signed webhook deliveries. See Trace Exports for concepts: kind semantics, delivery guarantees, source filtering, and secret handling.

Entitlement and roles

Requires the integrations entitlement (Enterprise plan). Reads need the viewer role; writes (create/update/delete) need admin.

List Export Configs

GET
/api/v1/exports

List the org's export configs.

jsonResponse (200 OK)
{"exports": [ /* ExportConfig, ... */ ]}

Create Export Config

POST
/api/v1/exports

Create an export config. Takes effect immediately, no restart required.

bash
curl -X POST https://api.ingateai.com/api/v1/exports \
  -H "X-Ingate-Key: sk-ingate-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "phoenix-otlp",
    "kind": "otlp",
    "endpoint": "http://phoenix.internal:6006/v1/traces",
    "headers": {},
    "include_sources": ["proxy", "api"],
    "enabled": true
  }'
FieldTypeRequiredDefaultDescription
namestringyesnoneUnique per org
kindstringyesnoneotlp or webhook
endpointstringyesnoneDestination URL
headersobjectno{}Static headers sent with every delivery (e.g. Authorization)
secretstringnononeWebhook kind only: HMAC signing secret
include_sourcesstring[]no["proxy", "api"]Must be a subset of proxy, api, otel
enabledboolnotrueWhether the config is live immediately

Response 201: the created ExportConfig.

Write-only secrets

headers and secret are write-only: encrypted at rest and never echoed back by any endpoint, including GET. has_secret is the only visible signal that a webhook secret is set.

Get Export Config

GET
/api/v1/exports/:id

Get an export config.

Response 200: the ExportConfig.

Update Export Config

PUT
/api/v1/exports/:id

Partial update: only provided fields change; omitted fields are left as-is.

Request: same fields as create, all optional. Response 200: the updated ExportConfig.

Delete Export Config

DELETE
/api/v1/exports/:id

Delete an export config.

jsonResponse (200 OK)
{"deleted": true}

Delete also removes the config from the live registry, so in-flight delivery for that config stops immediately.

Errors

Statuserror_codeCause
400invalid_configkind is not otlp/webhook, or include_sources has an unrecognized value
409duplicate_nameAn export config with this name already exists in the org
400invalid_idThe :id path parameter is not a valid ID (get/update/delete)
404not_foundNo export config with that ID (get/update/delete)
400invalid_bodyMalformed update request body