List
Metadata only. A key's secret is never in a list - not here and not in the console - because a list is the response that ends up in logs, caches and support tickets.
retrievable says whether the secret could still be read back at all.
A key issued before this product stored secrets recoverably was never
kept, so reveal will refuse it permanently; rotating produces one
that can be read.
Authorization
BearerAuthbearer token
Authorization: Bearer <key>, with a key from the console. Keys are
default-deny: each operation names the scope it needs, and an existing
key does not gain an operation until that scope is added to it.
Scopes: apikeys.read
Responses
200application/json
The organization's keys, newest first.
rcrequiredstringkeysrequiredarray<object>
idrequiredstring (uuid)namerequiredstringkey_prefixrequiredstringThe leading, non-secret part, so a key is recognizable without storing it.
createdrequiredstring (date-time)expiresstring (date-time)last_used_atstring (date-time)revoked_atstring (date-time)allowed_cidrsarray<string>Source-IP allowlist. EMPTY MEANS UNRESTRICTED, not deny-all.
allowed_scopesarray<string>retrievablebooleanWhether this key's secret can still be read back. False permanently for a key issued before secrets were stored recoverably.
TypeScript type
{
rc: string;
keys: ({
id: string;
name: string;
key_prefix: string;
created: string;
expires?: string | null;
last_used_at?: string | null;
revoked_at?: string | null;
allowed_cidrs?: string[];
allowed_scopes?: string[];
retrievable?: boolean;
})[];
}401application/json
No credential was presented, or it is not valid.
rcrequiredstringThe outcome. SUCCESS on success; otherwise the reason.
TypeScript type
{
rc: string;
}403application/json
The credential does not hold the scope this endpoint requires. The missing scope is deliberately not named.
rcrequiredstringThe outcome. SUCCESS on success; otherwise the reason.
TypeScript type
{
rc: string;
}