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/ingestAuthentication
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
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer ik_... ingest key |
Content-Type | Yes | application/json |
X-Item-Key | No | Field name to use as the item identifier |
Idempotency-Key | No | Unique 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
| Status | Code | Meaning |
|---|---|---|
| 400 | INVALID_PAYLOAD | Malformed JSON or missing required fields |
| 401 | UNAUTHORIZED | Missing or invalid ingest key |
| 404 | STREAM_NOT_FOUND | Stream name does not match the ingest key |
| 413 | PAYLOAD_TOO_LARGE | Request body exceeds 1 MB |
| 429 | RATE_LIMITED | Too 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