List the keys this deployment signs exports with
const url = 'https://example.com/v1/export-signing-keys';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/v1/export-signing-keys \ --header 'Authorization: Bearer <token>'The public keys of the deployment’s export signing key, active first: what a verifier pins. An export’s embedded publicKey only proves its bytes weren’t changed; this list says who signed them. Empty when the deployment doesn’t sign exports. Any authenticated caller may read it.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”The keys.
object
Active first. Empty when the deployment doesn’t sign exports.
A public key this deployment signs exports with.
object
Derived from the public key (ex_ and 16 base64url characters), so the same key keeps its id.
An Ed25519 key signs ed25519; an EC P-256 key (a KMS without Ed25519) signs ecdsa-p256-sha256.
PEM SPKI.
sha256: and the hex SHA-256 of the raw public key: to pin it, or compare by eye.
Whether new exports are signed with it.
Example
{ "data": [ { "algorithm": "ed25519" } ]}Missing / malformed / expired / revoked bearer token.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}