---
title: "List a customer's limit requests"
method: GET
path: "/customers/{customer_id}/limit-requests"
tags: ["Customers"]
---

# List a customer's limit requests

`GET /customers/{customer_id}/limit-requests`

## Request

- Base URL: `https://developers.ozav.io/v2`
- URL: `https://developers.ozav.io/v2/customers/{customer_id}/limit-requests`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Lists the limit requests of a customer, newest first, using the
standard cursor pagination. Returns a `Page` of `LimitRequest`.

## Query parameters

- `limit` integer
- `starting_after` string

## Response `200`

Limit requests.

- object: The uniform envelope every list endpoint returns.
  - `data` LimitRequest[], required: The page of results. Each list endpoint documents its own item type.
    - `id` string, required
    - `object` 'limit_request', required
    - `customer_id` string, required
    - `status` 'awaiting_documents' | 'in_review' | 'approved' | 'declined' | 'canceled', required: `awaiting_documents` while a proof in `documents_due` is missing; `in_review` once everything arrived and OZAV is deciding; `approved` when the new limit is in force (see `approved_limit`); `declined` when OZAV did not raise the limit (no reason is given); `canceled` when the customer stopped being eligible (rejected, closed or suspended) while the request was open.
    - `requested` object, required
      - `monthly_usd` string, nullable, required
      - `per_transaction_usd` string, nullable, required
    - `reason` string, nullable, required
    - `documents_due` object[], required: The proofs of economic capacity this request still needs. Send each one with `POST /customers/{customer_id}/documents` using its `doc_type`. Empty once the request is decided.
      - `key` string, required
      - `doc_type` string, nullable, required
      - `label` string, required
      - `status` 'due' | 'submitted' | 'accepted', required: `due` - send it; `submitted` - received, under review; `accepted` - an OZAV review accepted a document sent after the request.
    - `approved_limit` object, nullable, required: The limit now in force. Only when `status` is `approved`; it can be lower than requested.
      - `monthly_usd` string, nullable, required
      - `per_transaction_usd` string, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `decided_at` string, date-time, nullable, required
  - `has_more` boolean, required: True when more results exist beyond this page - keep paging with `starting_after`.
  - `next_cursor` string, nullable: Opaque cursor for the next page; pass it as `starting_after`. Null on the last page.

## Other responses

- `400`: The request is invalid.
- `401`: Missing or invalid API key.
- `403`: The organization lacks the entitlement (code ENTITLEMENT_REQUIRED) or the key lacks the scope (code INSUFFICIENT_SCOPE). On money-moving requests (POST /transfers, POST /wallets/{wallet_id}/transfers) a compliance hold on the customer answers with code COMPLIANCE_HOLD: the hold is reviewed and lifted on OZAV's side; retrying does not clear it. When the only hold is a pause until pending onboarding documents are received, a withdrawal answers CUSTOMER_DOCUMENTS_PENDING instead: send what `requirements` on GET /customers/{id} lists; OZAV lifts the pause after reviewing it. On OZAV Services (live without the platform's KYB), any API outside decisions, screenings, lists and self-custody wallets answers with code PRODUCTION_NOT_ACTIVATED.
- `404`: The resource does not exist, is not visible to the caller, or the id was malformed for this position (see "Resource ids" under Errors). These share one status; `code` and `message` tell them apart.

---

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