Skip to Content
API & IntegrationData Ingestion API

Data Ingestion API

The Data Ingestion API is the premium method for pushing data into Inspire’s DataPool. It provides authenticated, idempotent, and logged data submission with full control over stream and item management.

Endpoint

POST /api/ingest

Authentication

Include your ingest key in the Authorization header:

Authorization: Bearer ik_live_abc123def456...

Ingest keys are created per connector in the Data Sources section. Each key is scoped to a specific stream.

Request

Headers

HeaderRequiredDescription
AuthorizationYesBearer ik_... ingest key
Content-TypeYesapplication/json
X-Item-KeyNoField name to use as the item identifier
Idempotency-KeyNoUnique key to prevent duplicate processing

Body — Single item

POST /api/ingest Content-Type: application/json Authorization: Bearer ik_live_abc123... { "region": "North", "revenue": 142000, "target": 130000, "updated_at": "2026-04-06T10:30:00Z" }

Body — Multiple items

POST /api/ingest Content-Type: application/json Authorization: Bearer ik_live_abc123... X-Item-Key: region [ { "region": "North", "revenue": 142000, "target": 130000 }, { "region": "South", "revenue": 98000, "target": 110000 }, { "region": "East", "revenue": 156000, "target": 140000 } ]

Response

Success

HTTP/1.1 202 Accepted { "success": true, "data": { "stream": "sales", "items_received": 3, "request_id": "req_abc123" } }

Errors

StatusCodeMeaning
400INVALID_PAYLOADMalformed JSON or missing required fields
401UNAUTHORIZEDMissing or invalid ingest key
404STREAM_NOT_FOUNDStream name does not match the ingest key
413PAYLOAD_TOO_LARGERequest body exceeds 1 MB
429RATE_LIMITEDToo many requests — check Retry-After header

Idempotency

To prevent duplicate processing, include an Idempotency-Key header:

Idempotency-Key: sale-update-20260406-103000
  • Requests with the same idempotency key within 24 hours are accepted (202) but not reprocessed
  • Use deterministic keys based on your data (e.g. timestamp + source)

The 202 Accepted response means data has been received and queued. Processing is asynchronous and typically completes within 100ms. Data appears in the DataPool and pushes to connected renderers immediately after processing.

Connector Logging

All ingest API requests are logged against the connector:

  • Timestamp
  • Request ID
  • Items received
  • Processing status
  • Errors (if any)

View logs in the connector detail page under Data Sources.

SDKs and Libraries

While the API is a simple HTTP POST, official SDKs are planned for:

  • Node.js / TypeScript
  • Python
  • C# / .NET
  • Go
Last updated on