APIKey.issued
Emitted each time an API Key is issued.
APIKey.issue emits APIKey.issued when it completes on an API Key.
| Property | Value |
|---|---|
| Emitted by | APIKey.issue |
| Noun | API Key |
| Wakes | None. |
Payload
Each delivery is an Event record. data holds what APIKey.issue returns.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | required | APIKey.issued. |
at | datetime | required | When it happened. |
seq | integer | Its position in the namespace, one more than the Event before; any seq is a cursor into the history. | |
data | json | required | The Thing as the Action left it. |
data.apiKey | API Key | required | The API Key, with its prefix. |
data.apiKey.name | string | required | What the Customer calls it, so a list of keys reads by purpose. |
data.apiKey.environment | string | required | One of test or live: a test key reaches test records and moves no money. |
data.apiKey.verbs | list of Verb | The Verbs it may call. Unset: every Verb the Customer’s Entitlements grant. | |
data.apiKey.prefix | string | The first characters of the secret, shown in place of it everywhere after issue. | |
data.apiKey.lastUsedAt | datetime | When it last signed a call. | |
data.apiKey.expiresAt | datetime | When it stops working on its own. Unset: it works until rolled or revoked. | |
data.apiKey.revokedAt | datetime | When it was revoked. A revoked key fails its next call. | |
data.secret | string | required | The full secret. It is returned here once and never again. |
Example
{
"$id": "https: //api.sb/ petpantry.shop/ events/ event_1",
"$type": "Event",
"name": "APIKey.issued",
"at": "2026-10-22T12: 00: 00Z",
"data": {
"apiKey": {
"$id": "https: //api.sb/ petpantry.shop/ api-keys/ api_key_1",
"$type": "APIKey",
"name": "Nightly sync",
"environment": "test",
"verbs": [
"verb_1"
],
"prefix": "sk_live_4f2a",
"lastUsedAt": "2026-10-22T12: 00: 00Z",
"expiresAt": "2026-10-22T12: 00: 00Z",
"revokedAt": "2026-10-22T12: 00: 00Z"
},
"secret": "sk_live_4f2a…"
},
"seq": 1
}