WhatIsUp.dev
Get started

API keys

Manage the bearer tokens used to authenticate to this API. Conceptually covered in Concepts → API keys; this page is the wire shape.

List keys

GET/v1/api-keysBearer · API key

Returns every active key for the authenticated customer. The key material itself is not in the response — only the prefix and metadata.

Schema · ApiKey
FieldTypeRequiredNotes
idstring · uuidrequired
customer_idstring · uuidrequired
instance_idstring · uuidrequired · nullable
namestringrequired
prefixstringrequired
scopesarray<string>optional
last_used_atstring · ISO 8601required · nullable
expires_atstring · ISO 8601required · nullable
created_atstring · ISO 8601required
revoked_atstring · ISO 8601required · nullable
curl -s "$WHATISUP_API/v1/api-keys" \
  -H "Authorization: Bearer $WHATISUP_API_KEY"

Issue a new key

POST/v1/api-keysBearer · API key
Schema · Request body
FieldTypeRequiredNotes
namestringrequired
instance_idstring · uuidoptional
scopesarray<string>optional
expires_atstring · ISO 8601optional
curl -sX POST "$WHATISUP_API/v1/api-keys" \
  -H "Authorization: Bearer $WHATISUP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"app-2026-q2"}'

Pass instance_id to bind the key to a single instance. That key will only be able to send messages from / read deliveries for that one instance — useful for least-privilege apps.

Schema · Response · IssuedApiKey
FieldTypeRequiredNotes
idstring · uuidrequired
customer_idstring · uuidrequired
instance_idstring · uuidrequired · nullable
namestringrequired
prefixstringrequired
scopesarray<string>optional
last_used_atstring · ISO 8601required · nullable
expires_atstring · ISO 8601required · nullable
created_atstring · ISO 8601required
revoked_atstring · ISO 8601required · nullable
secretstringrequired

The secret field is the only time we'll show the full key. Save it before you move on. We can revoke it; we cannot recover it.

The prefix (e.g. zpk_live_abcd1234) is what shows up in the key list and in the dashboard. Keep it; you'll use it to identify the key when revoking.

Revoke a key

DELETE/v1/api-keys/:idBearer · API key

Soft-delete: the row is marked deleted, the key stops working immediately, audit log records the event. Returns 204 No Content.

curl -sX DELETE "$WHATISUP_API/v1/api-keys/key_01J..." \
  -H "Authorization: Bearer $WHATISUP_API_KEY"

What you can't do

  • Reveal an existing key's secret. Lost it = revoke + issue. By design.
  • Re-bind a key to a different instance. Make a new one; revoke the old. The bind is at issue-time only.