---
title: "List approvals"
method: GET
path: "/approvals"
tags: ["Approvals"]
---

# List approvals

`GET /approvals`

List approvals

## Query parameters

- `limit` integer — Maximum results per page.
- `status` 'pending' | 'approved' | 'denied' | 'canceled' — Approval status to filter by. Defaults to pending.

## Headers

- `X-Agent-ID` string, nullable
- `X-Instance-ID` string, nullable

## Response `200`

Successful Response

- object
  - `data` object[], required
    - `type` 'approval', required
    - `id` string, required — Approval ID (apr_*).
    - `attributes` object, required
      - `status` 'pending' | 'approved' | 'denied' | 'canceled', required — Approval status.
      - `target` object, required — Operation that needs approval.
        - `type` 'payment' | 'deposit' | 'withdrawal', required — Type of operation under approval.
        - `id` string, required — ID of the operation under approval.
      - `payment` object, nullable, required — Amount of the operation under review. Null when the underlying amount is unavailable.
        - `amount` integer, required — Amount in cents.
        - `currency` string, required — Currency code.
      - `reasons` object[], required — Reasons this approval is under review.
        - `type` 'limitExceeded', required
        - `limitType` 'perTransactionAmount' | 'dailyAmount' | 'monthlyAmount', required — Type of limit that was exceeded.
        - `limitAmount` integer, required — Configured limit amount in cents.
        - `actualAmount` integer, required — Amount that exceeded the limit, in cents.
        - `currency` string, required — Currency code.
      - `customer` object, nullable, required — Customer the agent is spending on behalf of, or null when the approval isn't a delegated payment.
        - `id` string, required — Customer party (pty_*) whose wallet a delegated payment spends from.
        - `name` string, nullable, required — Display name of the customer party, or null when unresolved.
      - `createdAt` string, required — When the approval was created.
      - `updatedAt` string, required — When the approval was last updated.
      - `resolvedAt` string, nullable, required — When the approval was resolved.
  - `meta` object, required
    - `pagination` object, required
      - `hasMore` boolean, required — Whether more results are available.
      - `nextCursor` string, nullable, required — Cursor for the next page, or null when there are no more results.

## Other responses

- `400` — Validation Error
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found. Returned when the resource does not exist, or when it exists but is not accessible to your account. The two cases are intentionally indistinguishable, so that resource IDs cannot be enumerated by probing.
- `409` — Conflict
- `422` — Validation Error
- `428` — Precondition Required
- `429` — Too Many Requests
- `500` — Internal Server Error
- `501` — Not Implemented
- `502` — Bad Gateway
- `503` — Service Unavailable

---

[API](https://skmtc.net/natural/apis/natural-api.md) · [All operations](https://skmtc.net/natural/apis/natural-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/natural/natural-api/versions/0bb9c54b1f61/schema)
