Skip to content

reference

API keys

API keys authenticate scripts, CI pipelines and anything else that talks to the public API on your behalf. They’re separate from ping tokens, and the distinction is worth getting right:

  • A ping token checks one monitor in. It’s per monitor, it lives on the box that runs the job, and it can’t read or change anything.
  • An API key manages your workspace. It’s per workspace and it can create, read and modify monitors.

A key is presented as a bearer token:

curl -H "Authorization: Bearer deadpost_live_" https://api.deadpost.dev/v1/monitors

The full key is shown exactly once, at creation. After that only a prefix and the last four characters are stored for display — deadpost_live_…a4f9 — which is enough to tell two keys apart in a list and not enough to use.

If you lose it, create a new one and delete the old. There is no way to reveal it again, deliberately: a key you can re-read from a dashboard is a key that leaks the moment anyone gets into the dashboard.

Keys are scoped per resource, read and write separately.

Scope Grants
read:monitors View monitor configuration and status.
write:monitors Create, update and delete monitors.

Give a key the narrowest set that does its job. A dashboard that displays monitor status wants read:monitors and nothing else — and then it cannot delete a monitor no matter what goes wrong with it.

If a field you expect is missing from a response, this is usually why: absent means “this key isn’t permitted to see it”, not “the value is unset”.

A key can be given an expiry, and expired keys stop working at that moment.

Set one on anything handed to a third party or created for a time-boxed piece of work. It converts “we should clean that up” into something that happens whether or not anyone remembers.

To rotate: create the new key, deploy it, confirm traffic has moved, then delete the old one. Deleting first means a gap where nothing works.

Each key records when it was last used, so a key with no recent activity is either a rotation you finished or something you can delete. Both are worth acting on — an unused key is pure risk with no upside.

  • Environment variables or a secrets manager, never a repository.
  • One key per consumer, so revoking one doesn’t take down the others — and so “which of these is the CI key?” has an answer.
  • Delete keys for people and systems that have gone away.