<Intro>

<EndpointHeader />

<Description>

Returns the app's keys, oldest first. Non-revoked only by default; pass include_revoked=true to include revoked keys. An app can hold several keys at once (create a new key, roll it out, then revoke the old one for zero-downtime rotation). Secrets are never included in this response.

</Description>

</Intro>

<Parameters in="query">

<Parameter name="include_revoked" type="boolean">

<Description>

When true, include revoked keys in the response.

</Description>

</Parameter>

</Parameters>

<Payload kind="response">

<Field name="data" type="array of object" required>

<Description>

The app's keys, oldest first. Revoked keys are excluded unless include_revoked=true.

</Description>

<FieldChildren kind="response">

<Field name="id" type="string" prefix="data." required />

<Field name="key" type="string" prefix="data." required>

<Description>

The public app key clients use to connect.

</Description>

</Field>

<Field name="secret" type="string" prefix="data.">

<Description>

The key secret, used for server-side request signing. Returned only when the key is created, and never shown again — store it securely. If lost, create a new key and revoke this one.

</Description>

</Field>

<Field name="revoked_at" type="nullable string" prefix="data." required>

<Description>

When the key was revoked, or null if still active.

</Description>

</Field>

<Field name="created_at" type="string" prefix="data." required />

</FieldChildren>

</Field>

</Payload>