Find a guide, feature, or API endpoint. Try “FTP”, “alerts”, or “instruments”.

Browse documentation

Docs/API reference / Ingestion

Submit instrument readings

Send a batch with an ingestion connection API key. The key determines the organization and project; a Developer API key cannot be used here. A 200 response acknowledges durable ingestion runs, not successful processing of every point. Inspect Runs in the application and query resulting observations with a separate Developer API key. Reuse the same Idempotency-Key only for retries of the same batch: the server replays by connection and key and does not compare the retried body. Use a new key for new or corrected data. Archived instruments and variables must be restored before ingestion.

POST/v1/ingestAll endpoints ↗

The request panel saves credentials and API settings in this browser. Privacy details

POST
/v1/ingest

Authorization

ingestApiKey
AuthorizationBearer <token>

Dedicated ingestion connection API key. Separate from Developer API keys and browser sessions.

In: header

Header Parameters

Idempotency-Key?string

Stable key for retrying this exact batch. Scope is the ingestion connection.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

bash
curl -X POST "https://example.com/v1/ingest" \
  -H "Content-Type: application/json" \
  -d '{
    "data": [
      {
        "instrument_timestamp": "2026-09-04T12:00:00Z",
        "instrument_name": "PZ-01",
        "site_id": "your-site-id",
        "ingested_variables": [
          {
            "name": "pressure",
            "value": 42.5
          }
        ]
      }
    ]
  }'
json
{
  "request_id": "string",
  "data": {
    "replayed": true,
    "runs": [
      {
        "run_id": "string",
        "state": "string"
      }
    ]
  }
}