HTTP ingest

Send JSON or NDJSON batches to the ReportPlane ingest runtime and interpret acceptance responses.

Last verified 2026-08-02

HTTP ingest is the simplest way to send application data. It accepts JSON envelopes and NDJSON at the public ingest origin.

POSThttps://ingest.reportplane.com/ingest
Submit one or more records for one data model.

JSON request

Use Content-Type: application/json. The schema is the model key and data is a non-empty array of objects.

curl https://ingest.reportplane.com/ingest \
  -H "Authorization: Bearer YOUR_INGEST_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "schema": "page_view",
    "data": [
      {
        "occurred_at": "2026-08-02T12:00:00Z",
        "account_id": "acct_123",
        "path": "/docs"
      }
    ]
  }'

NDJSON request

Use application/x-ndjson or application/ndjson for line-delimited JSON. Empty lines are ignored. A request may declare one schema and cannot combine different schemas.

Each line may contain schema plus a data object/array, or a direct record after the schema has been established by another line.

{"schema":"page_view","data":{"account_id":"acct_123","path":"/home"}}
{"account_id":"acct_456","path":"/pricing"}

Malformed line JSON reports the line number. A data array must contain objects only.

Accepted response

Successful acceptance returns HTTP 202 using the standard envelope:

{
  "error": false,
  "data": {
    "ingest_id": "ing_...",
    "status": "accepted",
    "accepted": 1
  }
}

accepted is the number of records accepted from the request. ingest_id helps correlate the accepted batch where available.

Error behavior

The runtime returns an error before acceptance when the request body cannot be read or parsed, the identity is invalid, access is forbidden, a model is not allowed, a required field is missing, or a value cannot normalize to its type.

Do not retry every 400 response. Fix deterministic payload or policy errors first. Use bounded retry with backoff for temporary network or server failures.

Generated OpenAPI

Each ingest client has a generated OpenAPI document based on its currently allowed data models. If exactly one model is allowed, the data item schema references that model directly.

Was this page helpful?Send feedback