---
title: "List approvals waiting on the signed-in person in this org that they can decide: paused publishes whose credential ne..."
method: GET
path: "/v1/approvals"
tags: ["packages"]
---

# List approvals waiting on the signed-in person in this org that they can decide: paused publishes whose credential ne...

`GET /v1/approvals`

## Request

- Base URL: `https://api.kody.codes`
- URL: `https://api.kody.codes/v1/approvals`
- Auth: HTTP bearer

List approvals waiting on the signed-in person in this org that they can decide: paused publishes whose credential needs changed or that make a package public, internet-visible packages whose credentials or storage changed, and credential picks proposed with credentialMappingPropose. Each item says in plain language what approving grants (credential, kind, provider, hosts) and what was approved before. Read-only; pass keys to approvalBundleCreate for one page the person approves in the browser.

Org permission: none (touches no org data).

## Query parameters

- `types` string[]: Only these item types. Default: every type.
- `packages` string[]: Only these packages, by package id or kody id.

## Response `200`

Success.

- object
  - `items` object[], required
    - `key` string, required: Pass to approvalBundleCreate items to bundle exactly this approval.
    - `type` 'publish' | 'capabilities' | 'credential-picks', required: publish: a paused publish (credential needs changed, or going public). capabilities: an internet-visible package whose credentials or storage changed since approval. credential-picks: a recorded credentialMappingPropose proposal.
    - `title` string, required
    - `summary` string, required: What approving does, in plain language.
    - `package` object, nullable, required
      - `id` string, required
      - `kodyId` string, required
      - `name` string, required
    - `grants` object[], required
      - `change` 'added' | 'changed' | 'removed', required
      - `label` string, required
      - `where` string, nullable, required
      - `kind` string, nullable, required
      - `provider` string, nullable, required
      - `hosts` string[], required
      - `before` string, nullable, required
      - `after` string, nullable, required
      - `match` string, nullable, required
    - `canApprove` boolean, required: False when something must be fixed first; see statusMessage.
    - `statusMessage` string, nullable, required
    - `description` string, required: One-line text form of this item.
  - `message` string, required

## Other responses

- `400`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `401`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `403`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `404`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `409`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `413`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `429`: Too many requests (edge IP/token limit) or an entitlement / plan-cap limit. Wait at least `Retry-After` seconds before retrying.
- `500`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `503`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `default`: Error envelope `{ "error": { "code", "message", "details"? } }`.

---

[API](https://skmtc.dev/kody/apis/kody-api.md) · [All operations](https://skmtc.dev/kody/apis/kody-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kody/apis/kody-api/revisions/a020ecedb82b?raw)
