Ingest API reference
Exact HTTP ingest and discovery request shapes, content types, status behavior, and response fields.
Submit records
https://ingest.reportplane.com/ingestJSON body:
| Field | Type | Required | Description |
|---|---|---|---|
schema | string | Yes | Data-model key |
data | array of objects | Yes | One or more records for that model |
{
"schema": "api_request",
"data": [
{
"occurred_at": "2026-08-02T12:00:00Z",
"route": "/v1/orders",
"status_code": 200,
"duration_ms": 41
}
]
}
Accepted response data:
| Field | Type | Description |
|---|---|---|
ingest_id | string | Correlation ID when produced |
status | string | Acceptance state |
accepted | integer | Number of accepted records |
The HTTP status is 202 for acceptance.
Browser requests
POST /ingest supports direct browser submission from any origin. The runtime
answers CORS preflight with Access-Control-Allow-Origin: * and permits the
Authorization and Content-Type request headers. Send Runtime API Keys as
Authorization: ApiKey rp_ak_...; runtime JWTs use Authorization: Bearer ....
Browser cookies are not part of runtime authentication.
An API key deliberately embedded in browser code is visible to every visitor. Create a dedicated ingest-only Runtime API Key, restrict it to the required models, and rely on the normal schema, quota and usage controls. Do not reuse a server credential or a key with query access.
NDJSON
Set Content-Type to application/x-ndjson or application/ndjson. Lines may wrap records in data or provide a direct object. All lines must resolve to one schema. The scanner supports lines up to the configured 10 MB buffer ceiling.
Discovery
https://ingest.reportplane.com/discoverThe discovery body is either one object or an array of objects. The request is limited to 10 MB and requires an active waiting discovery session for the authenticated ingest client.
WebSocket
The configured WebSocket path accepts text messages using the JSON ingest envelope. Successful messages return type: ack; failed messages return type: error. The discovery socket uses /ws/discover when enabled.
Authentication context
The runtime can use the authorization header, source IP, mTLS URI/certificate, user agent, and transport. Exact requirements come from the resolved client/key policy.
Generated contract
Generate OpenAPI for one ingest client and its allowed models from the client detail page in the console. OpenAPI generation is not part of Management API v1.