Skip to main content

Push rows of your own data into one data source.

POST 

/api/v1/data-sources/:id/ingest

Send up to 1000 tidy rows in one request. Each row is one metric, one time bucket, one number. Rows land on the tenant that owns the API key: a tenant_id in the body is ignored, because the request schema has no such field.

TWO CREDENTIALS, BOTH REQUIRED. Authorization: Bearer <api key> with the write_data scope names the account. X-Ingest-Secret names the data source; it is shown once when the source is created and once when the secret is rotated. Neither credential works alone.

Re-sending a row that already landed updates it in place, so a replay is always safe. A row is unique on (data source, metric_key, bucket_ts, dimension).

Rows are validated one at a time. One bad row does not throw away the rest: the response names every rejected row by its index in your rows array, with a reason.

ONE DATA SOURCE TRACKS 200 METRIC NAMES. Past that, rows carrying a new metric_key are still stored, but that metric gets no entry in the chart gallery, so no chart appears for it. When a request crosses the limit the response carries a metric_key_limit warning naming what was dropped, and the data source shows the same sentence in Settings > Integrations. Send additional metrics to a second data source. Scope: write_data.

Request

Responses

At least one row landed. accepted counts the rows written, rejected names the ones that did not, by index. A warnings array appears only when something non-fatal happened, such as the data source reaching its 200 metric-name limit; the rows still landed.