Skip to content

List trusted signing keys

GET
/v1/signing-keys
curl --request GET \
--url 'https://example.com/v1/signing-keys?limit=25&includeRevoked=true' \
--header 'Authorization: Bearer <token>'

Cursor-paginated. Active keys only unless ?includeRevoked=true; ?label= is a prefix match on the label.

limit
integer
default: 25 >= 1 <= 100

1..100. Default 25.

cursor
string

Opaque cursor from a prior response. Absent → first page.

includeRevoked
string
Allowed values: true false

true lists revoked keys too.

label
string

Prefix match on the key label.

Page of trusted keys.

Media typeapplication/json
object
data
required
Array<object>

A public key the tenant trusts to sign deployments (POST /v1/deployments). A revoked key stays readable, with revokedAt, so the deployments it signed can be audited; it verifies no new ones.

object
keyId
required

The signer key id a deployment envelope names.

string
tenantId
required
string format: uuid
algorithm
required
string
Allowed values: ed25519
publicKey
required

Base64 of the raw public-key bytes (32 for Ed25519).

string
label
string
createdAt
required
string format: date-time
revokedAt
string format: date-time
revokedReason
string
nextCursor
string
hasMore
required
boolean
Example
{
"data": [
{
"algorithm": "ed25519"
}
]
}

Missing / malformed / expired / revoked bearer token.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}