Changelog
Additions happen inside a version. A remove or a rename is a new version, and both run for 90 days before the old one stops.
v1
A source delivers events or statements, chosen when it is declared. Events add up, and a correction is a row that cancels the wrong one. A statement is the whole of every period it has a row in, so the delivery received last for a period replaces the earlier ones and the period is marked restated. The receipt says which in `delivers`.
v1
A timestamp field takes a date alone, such as `2026-09-01`, and reads it as midnight on that day in the company's timezone. A time with no offset is still refused. The developer page says how many rows of the last delivery were read that way.
v1
Client credentials. A service connection can hold a client id and secret instead of a static credential, and the developer page makes that kind first. Exchange them at `/oauth/token` for an access token and push with the token. The static credential stays for devices. Webhook sources still sign with HMAC.
v1
Access keys are service connections. A company makes one on its developer page, bound to a source, with a static credential that starts `nsk_`. A connection holds `sources.ingest` to push and `metrics.read` to read; a missing one is 403 `permission_denied`. `nk_` keys no longer open anything. There was no production traffic, so there is no deprecation window.
v1
A delivery keeps only the fields its source declares. Any other key is dropped before the delivery is stored, and the receipt lists it in `dropped_keys`.
v1
A company can pause a source. A push or a webhook to a paused source is refused with 409 and the code `source_paused`, and nothing it carried is kept.
v1
Webhooks: a signed address per webhook source, with a signing secret, rotation and a retry contract. A write key no longer pushes to a webhook source.
v1
Access keys carry a scope: read, write or read_write. A read endpoint for a source's samples. Keys made before this are write.
v1
The first version. The push endpoint, the receipt and the error shape.