Generated from Postwind commit a19b2e4 OpenAPI 0.1.0 synced

GET/api/v1/projects/{project_id}/keys

MCP tool: list_api_keys operationId list_api_keys

List a project's keys

The project’s keys in id order, a page at a time, revoked and expired ones included, without secrets. An admin key may list any project’s; a project key needs scope keys, in its own project.

Parameters

NameInTypeDescription
project_idrequired path string · uuid The project’s id
limit query integer · int64

1–500

Page size, 1 to 500; default 50
cursor query string next_cursor of the previous page

Request body

None.

Responses

200

One page

  • ApiKeyList object · all fields required
  • itemsarray of ApiKey

    In id order; revoked and expired keys included.

    10 fields
    • ApiKey object · all fields required
    • created_atstring · date-time
    • expires_atstring · date-time | null

      null: never.

    • idstring · uuid

      What revoking the key takes.

      example 01900000-0000-7000-8000-000000000001

    • The kind of an API key.

      • admin
      • project
    • last_used_atstring · date-time | null

      When the key was last used; null: not recorded yet.

    • namestring

      example billing backend

    • prefixstring

      The public part of the key string, pw_<adm|prj>_<prefix>_...: how to tell which key a client holds.

      example 1a2b3c4d

    • project_idstring · uuid | null

      The key’s project; null for an admin key.

    • revoked_atstring · date-time | null

      When the key was revoked; null while it is not.

    • scopesarray of Scope

      What the key may do; every scope for an admin key.

  • next_cursorstring | null

    Pass as cursor for the next page; null on the last page.

403

A project key without scope keys (forbidden)

Problem (application/problem+json)

404

No such project, or another project’s (not_found)

Problem (application/problem+json)

429

The key is over its rate limit, api.rate_limit_per_minute requests a minute on this node (rate_limited)

HeaderTypeDescription
Retry-AfterintegerSeconds until the key’s next request passes; rounded up.

Problem (application/problem+json)

504

Postwind’s storage did not answer within its time limit (storage_timeout). A change the request makes may still take effect: check before repeating it. A repeat with the same Idempotency-Key never runs it twice: it is 409 idempotency_key_in_progress until the key’s 24 h end

Problem (application/problem+json)