HeimPulse API

Authentication and scopes

How API keys work, the two scopes, and what each request is allowed to do.

View as Markdown

Key format

A key looks like hpk_ followed by 64 hex characters (32 bytes of randomness) - the same entropy budget HeimPulse uses for its own session ids. Send it as a bearer token:

Authorization: Bearer hpk_...

Keys are hashed (SHA-256) at rest. HeimPulse cannot look up, recover, or re-display a key’s plaintext after the moment it’s created - if you lose it, revoke it and mint a new one.

Scopes

Every key has exactly one scope, chosen at creation:

There’s no finer-grained, per-resource permission model today (e.g. “services only, not incidents”) - if you need that separation, mint separate keys per integration and give each only the scope it needs.

What a key can see

A key is scoped to exactly the org it was minted in. There is no {org_id} in any /v1 URL - the org is entirely implied by which key authenticated the request, so a key can never be pointed at another org’s data by editing a URL.

What a key can’t do

API keys are deliberately narrow. They cannot:

See API keys vs. webhooks if you’re trying to decide which mechanism fits what you’re building.