Skip to content

Provisioning API · Internal testing only

listEncryptionKeys

GET
/encryption-keys
curl --request GET \
--url https://api.builders.ac/api/provisioning/v1alpha1/encryption-keys

Returns the current and next platform age recipients for sealing secret request values.

Published platform encryption keys.

Media typeapplication/json
object
current
required
object
kid
required

Opaque identifier used to distinguish keys during rotation.

string
>= 1 characters <= 128 characters /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/
recipient
required
string
>= 62 characters <= 62 characters /^age1[023456789acdefghjklmnpqrstuvwxyz]{58}$/
not_after
required

UTC instant after which this recipient is no longer accepted.

string format: date-time
next
required
object
kid
required

Opaque identifier used to distinguish keys during rotation.

string
>= 1 characters <= 128 characters /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/
recipient
required
string
>= 62 characters <= 62 characters /^age1[023456789acdefghjklmnpqrstuvwxyz]{58}$/
not_after
required

UTC instant after which this recipient is no longer accepted.

string format: date-time
Example
{
"current": {
"kid": "prov-2026-04",
"recipient": "age1nat457r4f36vu5h6v48g4t4g39lua8md7er754fzvnxxrmhdh6mzpwl58u",
"not_after": "2026-05-15T00:00:00Z"
},
"next": {
"kid": "prov-2026-05",
"recipient": "age1cuulyfydh00rv5agg3vuw3pz8r2a682xcptzad3yh5ef58ysepaulrwsnz",
"not_after": "2026-06-15T00:00:00Z"
}
}
Cache-Control
string
/^(?:public, max-age=300|max-age=300, public)$/

Public discovery metadata may be cached for five minutes.

x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.

Rate limit exceeded. The example shows rate_limit_exceeded.

Media typeapplication/problem+json
object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
required
string
code
required

Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.

string
retryable
required
boolean
retry_after
string format: date-time
correlation_id
required
string
errors
object
key
additional properties
Array<string>
Example
{
"type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/rate_limit_exceeded",
"title": "Rate limit exceeded",
"status": 429,
"detail": "Too many requests were made for this policy.",
"code": "rate_limit_exceeded",
"retryable": true,
"correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3",
"retry_after": "2026-04-15T09:16:04Z"
}
x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.

The platform encryption keyring is temporarily unavailable.

Media typeapplication/problem+json
object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
required
string
code
required

Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.

string
retryable
required
boolean
retry_after
string format: date-time
correlation_id
required
string
errors
object
key
additional properties
Array<string>
type
required
title
required
Allowed value: Encryption keys unavailable
status
required
Allowed value: 503
code
required
Allowed value: encryption_keys_unavailable
retryable
required
detail
required
Allowed value: Encryption key discovery is temporarily unavailable. Retry later.
Examples
Exampleencryption_keys_unavailable

Encryption keys unavailable

{
"type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/encryption_keys_unavailable",
"title": "Encryption keys unavailable",
"status": 503,
"detail": "Encryption key discovery is temporarily unavailable. Retry later.",
"code": "encryption_keys_unavailable",
"retryable": true,
"correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3"
}
x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.