> ## Documentation Index
> Fetch the complete documentation index at: https://developers.circle.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Before reading these docs, install the relevant Circle Skill to get pre-loaded context — skills are LLM-optimized and cover architecture decisions, correct flows, and common pitfalls. In Claude Code: run /plugin marketplace add circlefin/skills then /plugin install circle-skills@circle. With Vercel Skills CLI: run npx skills add circlefin/skills. Available skills: use-usdc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-usdc/SKILL.md (balances, transfers, approvals on EVM and Solana); EURC has no skill — see https://developers.circle.com/stablecoins/what-is-eurc.md; bridge-stablecoin https://github.com/circlefin/skills/blob/master/plugins/circle/skills/bridge-stablecoin/SKILL.md (crosschain transfers via CCTP, USDC, EURC, and third-party assets); use-arc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-arc/SKILL.md (Arc chain config, contract deployment, USDC bridging — Arc docs: https://docs.arc.io/llms.txt); use-circle-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-circle-wallets/SKILL.md (choose wallet type); use-developer-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-developer-controlled-wallets/SKILL.md (custodial wallets for payouts and treasury); use-user-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-user-controlled-wallets/SKILL.md (embedded wallets with Web2 login); use-modular-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-modular-wallets/SKILL.md (smart contract wallets with passkeys and ERC-4337); use-gateway https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-gateway/SKILL.md (unified USDC balance, nanopayments); use-smart-contract-platform https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-smart-contract-platform/SKILL.md (deploy, interact, monitor contracts). Pair any skill with the Circle MCP server for live SDK signatures, contract addresses, and chain IDs: {"mcpServers":{"circle":{"url":"https://api.circle.com/v1/codegen/mcp"}}}.
> Read the product overview first. Each product has an overview explaining when and why to use it. Read it before quickstarts.
> Pick the right wallet type. Developer-controlled (you hold keys), user-controlled (end user holds keys via PIN/social login), or modular (smart contract wallets with passkeys). See https://developers.circle.com/wallets.md.
> Use CCTP V2 for crosschain transfers. CCTP natively transfers USDC and EURC via burn-and-mint, and supports permissionless wrapping of third-party assets via lock-and-mint. V1 is legacy; always use V2 unless V1 is specified or the chain requires it (Noble, Sui, and Aptos still require V1). Migration guide: https://developers.circle.com/cctp/migration-from-v1-to-v2.md.
> Use Bridge Kit for frontend bridging. Wraps CCTP with a simpler SDK for user-facing apps. Use CCTP directly for backend transfers.
> Gas Station vs Paymaster. Gas Station sponsors gas for Circle Wallet transactions. Paymaster lets users pay gas in USDC. Different use cases — read both overviews.
> Gateway Nanopayments for sub-cent payments. Gasless USDC micropayments down to $0.000001 via x402 and batched settlement. For pay-per-request APIs, AI agent payments, streaming.
> Look up USDC addresses per chain. Never hardcode — use https://developers.circle.com/stablecoins/usdc-contract-addresses.md.
> Prefer SDKs over raw API calls. Node.js and Python SDKs handle auth, retries, and errors.
> API key required. Bearer token in Authorization header. Testnet and mainnet use separate keys and may use different base URLs depending on the product.
> Set up webhooks when available. Most operations are async. Webhooks deliver transaction confirmations and state changes.
> When calling list endpoints, paginate using pageSize and pageAfter until no nextPageAfter cursor is returned—stopping at the first page silently misses records.
> Building an AI agent? Start with the Agent Stack—Circle CLI, agent wallets, and nanopayments built for autonomous use cases: https://developers.circle.com/agent-stack.md.

# List all recipients



## OpenAPI

````yaml openapi/payouts.yaml get /v1/addressBook/recipients
openapi: 3.0.2
info:
  version: ${version}
  title: Crypto Payouts API
  description: >-
    The Circle Payouts API allows you to programmatically make fast, global
    payouts to your customers, vendors, and suppliers. Make payouts on supported
    blockchains.
servers:
  - url: https://api-sandbox.circle.com
  - url: https://api.circle.com
security: []
tags:
  - name: Payouts
    description: Create and get information on address book payouts.
  - name: Crypto Address Book
    description: Manage blockchain addresses with metadata.
paths:
  /v1/addressBook/recipients:
    get:
      tags:
        - Crypto Address Book
      summary: List all recipients
      operationId: listAddressBookRecipients
      parameters:
        - name: address
          description: >-
            Filters results to fetch only address book recipients with the
            provided address.
          in: query
          required: false
          schema:
            type: string
        - name: chain
          description: >-
            Filters results to fetch only address book recipients with the
            provided chain.
          in: query
          required: false
          schema:
            type: string
        - name: email
          description: >-
            Filters results to fetch only address book recipients that have the
            provided email in their metadata.
          in: query
          required: false
          schema:
            type: string
        - name: status
          description: >-
            Filters results to fetch only address book recipients that have the
            provided status.
          in: query
          required: false
          schema:
            type: string
            enum:
              - pending
              - pending_verification
              - inactive
              - active
              - denied
        - name: custody
          description: >-
            Filters results to recipients whose `ownership.custody.type` matches
            the provided value.
          in: query
          required: false
          schema:
            type: string
            enum:
              - hosted
              - self_hosted
        - name: vaspId
          description: >
            Filters results to recipients whose `ownership.custody.vaspId`
            matches the provided UUID. Use with `custody=hosted`.
          in: query
          required: false
          schema:
            type: string
            format: uuid
        - $ref: '#/components/parameters/From'
        - $ref: '#/components/parameters/To'
        - $ref: '#/components/parameters/PageBefore'
        - $ref: '#/components/parameters/PageAfter'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Successfully retrieved a list of address book recipients.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/XRequestId'
          content:
            application/json:
              schema:
                title: ListAddressBookRecipientsResponse
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AddressBookRecipientResponseData'
              examples:
                response:
                  value:
                    data:
                      - id: b8627ae8-732b-4d25-b947-1df8f4007a29
                        chain: ALGO
                        address: '0x8381470ED67C3802402dbbFa0058E8871F017A6F'
                        addressTag: '123456789'
                        metadata:
                          nickname: sample nickname
                          email: satoshi@circle.com
                          bns: sample.circle
                        status: pending
                        identity:
                          type: individual
                          firstName: Ada
                          lastName: Lovelace
                        ownership:
                          type: first_party
                          custody:
                            type: hosted
                            vaspId: 550e8400-e29b-41d4-a716-446655440000
                        createDate: '2020-04-10T02:13:30.000Z'
                        updateDate: '2020-04-10T02:13:30.000Z'
        '401':
          $ref: '#/components/responses/NotAuthorized'
      security:
        - bearerAuth: []
components:
  parameters:
    From:
      name: from
      description: Queries items created since the specified date-time (inclusive).
      in: query
      required: false
      schema:
        type: string
        format: date-time
        example: '2020-04-10T02:13:30.000Z'
    To:
      name: to
      description: Queries items created before the specified date-time (inclusive).
      in: query
      required: false
      schema:
        type: string
        format: date-time
        example: '2020-04-10T02:13:30.000Z'
    PageBefore:
      name: pageBefore
      description: >
        A collection ID value used for pagination.


        It marks the exclusive end of a page. When provided, the collection
        resource will return the next `n` items before

        the id, with `n` being specified by `pageSize`.


        The items will be returned in the natural order of the collection.


        The resource will return the first page if neither `pageAfter` nor
        `pageBefore` are specified.


        SHOULD NOT be used in conjuction with pageAfter.
      in: query
      required: false
      schema:
        type: string
    PageAfter:
      name: pageAfter
      description: >
        A collection ID value used for pagination.


        It marks the exclusive begin of a page. When provided, the collection
        resource will return the next `n` items after

        the id, with `n` being specified by `pageSize`.


        The items will be returned in the natural order of the collection.


        The resource will return the first page if neither `pageAfter` nor
        `pageBefore` are specified.


        SHOULD NOT be used in conjuction with pageBefore.
      in: query
      required: false
      schema:
        type: string
    PageSize:
      name: pageSize
      description: >
        Limits the number of items to be returned.


        Some collections have a strict upper bound that will disregard this
        value. In case the specified value is higher

        than the allowed limit, the collection limit will be used.


        If avoided, the collection will determine the page size itself.
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        example: 5
  headers:
    XRequestId:
      description: >-
        Universally unique identifier (UUID v4) for the request. Helpful for
        identifying a request when communicating with Circle support.
      schema:
        type: string
        format: uuid
        example: 2adba88e-9d63-44bc-b975-9b6ae3440dde
  schemas:
    AddressBookRecipientResponseData:
      oneOf:
        - title: General customers
          description: For Circle entities other than CIRCLE_SG.
          allOf:
            - $ref: '#/components/schemas/AddressBookRecipientResponseGeneral'
            - type: object
              properties:
                identity:
                  $ref: '#/components/schemas/AddressBookRecipientIdentityResponse'
                createDate:
                  $ref: '#/components/schemas/UtcTimestamp'
                updateDate:
                  $ref: '#/components/schemas/UtcTimestamp'
        - title: FR customers
          description: >-
            For France (CIRCLE_FR) entities. Includes the optional
            `identity.lei` field.
          allOf:
            - $ref: '#/components/schemas/AddressBookRecipientResponseGeneral'
            - type: object
              properties:
                identity:
                  $ref: '#/components/schemas/AddressBookRecipientIdentityResponseFr'
                createDate:
                  $ref: '#/components/schemas/UtcTimestamp'
                updateDate:
                  $ref: '#/components/schemas/UtcTimestamp'
        - title: SG customers
          description: For Singapore (CIRCLE_SG) entities.
          allOf:
            - $ref: '#/components/schemas/AddressBookRecipientResponseGeneral'
            - type: object
              properties:
                identity:
                  $ref: '#/components/schemas/AddressBookRecipientIdentityResponse'
                ownership:
                  $ref: '#/components/schemas/AddressBookRecipientOwnershipResponse'
                createDate:
                  $ref: '#/components/schemas/UtcTimestamp'
                updateDate:
                  $ref: '#/components/schemas/UtcTimestamp'
    AddressBookRecipientResponseGeneral:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        chain:
          $ref: '#/components/schemas/Chain'
        address:
          $ref: '#/components/schemas/Address'
        addressTag:
          $ref: '#/components/schemas/AddressTag'
        metadata:
          $ref: '#/components/schemas/AddressBookRecipientMetadata'
        status:
          type: string
          description: Status of the address book recipient.
          enum:
            - pending
            - pending_verification
            - inactive
            - active
            - denied
    AddressBookRecipientIdentityResponse:
      type: object
      description: >
        Beneficiary identity for the address book entry.


        When `type` is `individual`, include `firstName` and `lastName`. When
        `type` is `business`, include `businessName`.


        When Beneficiary Personally Identifiable Information (PII) was
        submitted, the matching nested `individual` or `business` object is
        returned. A subset of submitted fields is never returned: for
        `individual`, `governmentIssuedId`; for `business`,
        `businessRegistrationNumber`, `dateOfIncorporation`, and
        `businessIdentificationNumber`.


        Related validation error codes include `2024` (identity missing),
        `2031`–`2034`, and `2036` (identity cannot be updated via PATCH).
      properties:
        type:
          type: string
          description: Whether the beneficiary is an individual or a business.
          enum:
            - individual
            - business
        firstName:
          type: string
          description: Required when `type` is `individual`.
          example: Ada
        lastName:
          type: string
          description: Required when `type` is `individual`.
          example: Lovelace
        businessName:
          type: string
          description: Legal business name. Required when `type` is `business`.
          example: Example Corp
        individual:
          $ref: '#/components/schemas/AddressBookRecipientIndividualIdentityResponse'
        business:
          $ref: '#/components/schemas/AddressBookRecipientBusinessIdentityResponse'
    UtcTimestamp:
      type: string
      description: ISO-8601 UTC date/time format.
      example: '2020-04-10T02:13:30.000Z'
    AddressBookRecipientIdentityResponseFr:
      allOf:
        - $ref: '#/components/schemas/AddressBookRecipientIdentityResponse'
        - type: object
          properties:
            lei:
              $ref: '#/components/schemas/LegalEntityIdentifier'
    AddressBookRecipientOwnershipResponse:
      type: object
      description: >
        Ownership and custody of the wallet for Travel Rule and compliance.


        Validation errors can include codes such as `2025` (ownership missing),
        `2026` (VASP ID missing when required), `2027`–`2030`, `2035` (VASP ID
        not allowed when custody is `self_hosted`), and `2037` (ownership cannot
        be updated via PATCH).
      properties:
        type:
          type: string
          description: Whether the wallet is first-party or third-party.
          enum:
            - first_party
            - third_party
        custody:
          $ref: '#/components/schemas/AddressBookRecipientCustodyResponse'
    Id:
      type: string
      description: Unique system generated identifier for the entity.
      format: uuid
      example: b8627ae8-732b-4d25-b947-1df8f4007a29
    Chain:
      type: string
      description: A blockchain that a given currency is available on.
      enum:
        - ALGO
        - APTOS
        - ARB
        - ARC
        - AVAX
        - BASE
        - BTC
        - CELO
        - CODEX
        - ETH
        - HBAR
        - HYPEREVM
        - INK
        - LINEA
        - NEAR
        - NOBLE
        - OP
        - PLUME
        - PAH
        - PLASMA
        - POLY
        - SEI
        - SOL
        - SONIC
        - SUI
        - UNI
        - WORLDCHAIN
        - XLAYER
        - XDC
        - XLM
        - XRP
        - ZKS
    Address:
      type: string
      description: >
        An alphanumeric string representing a blockchain address. Formatting
        varies by blockchain.

        Be sure to preserve the exact formatting and capitalization of the
        address.  

        **Important:** For Ripple (XRP) addresses, only the classic address
        format is supported (for example,
        `rPEPPER7kfTD9w2To4CQk6UCfuHM9c6GDY`).  

        The `x-address` format is NOT supported currently (for example,
        `XV5sbjUmgPpvXv4ixFWZ5ptAYZ6PD2q1qM6owqNbug8W6KV`).
      example: '0x8381470ED67C3802402dbbFa0058E8871F017A6F'
    AddressTag:
      type: string
      description: >-
        The secondary identifier for a blockchain address. An example of this is
        the memo field on the Stellar network, which can be text, id, or hash
        format.
      nullable: true
      example: '123456789'
    AddressBookRecipientMetadata:
      type: object
      description: >
        Recipient metadata. For Singapore (CIRCLE_SG) customers creating a
        self-hosted (`ownership.custody.type` = `self_hosted`) entry, `email` is
        required (validation error `2038`).
      properties:
        nickname:
          type: string
          description: Nickname related to the address.
          example: sample nickname
        email:
          allOf:
            - $ref: '#/components/schemas/Email'
            - description: >-
                Email address of the recipient. Required for Singapore
                (CIRCLE_SG) self-hosted entries.
        bns:
          type: string
          description: Blockchain Name Service (e.g. ENS) domain for the address.
          example: sample.circle
    AddressBookRecipientIndividualIdentityResponse:
      type: object
      description: >
        Beneficiary Personally Identifiable Information (PII) for an individual,
        as returned in responses. `governmentIssuedId` is never returned.
      properties:
        dateOfBirth:
          type: string
          description: Beneficiary's date of birth.
          pattern: ^\d{4}-\d{2}-\d{2}$
          example: '1990-01-15'
        nationality:
          type: string
          description: >-
            Beneficiary's nationality. Formatted as a two-letter country code
            specified in ISO 3166-1 alpha-2.
          example: SG
        addressLine1:
          type: string
          description: Residential address, line 1.
          maxLength: 1024
          example: 1 Marina Boulevard
        addressLine2:
          type: string
          description: Residential address, line 2 (optional).
          maxLength: 1024
          example: '#10-01'
        city:
          type: string
          description: City.
          maxLength: 1024
          example: Singapore
        district:
          type: string
          description: State / province / district.
          maxLength: 1024
          example: Central
        postalCode:
          type: string
          description: Postal / ZIP code.
          maxLength: 16
          example: 18989
        country:
          type: string
          description: >-
            Country of residence. Formatted as a two-letter country code
            specified in ISO 3166-1 alpha-2.
          maxLength: 2
          example: SG
    AddressBookRecipientBusinessIdentityResponse:
      type: object
      description: >
        Beneficiary Personally Identifiable Information (PII) for a business, as
        returned in responses. `businessRegistrationNumber`,
        `dateOfIncorporation`, and `businessIdentificationNumber` are never
        returned.
      properties:
        addressLine1:
          type: string
          description: Registered business address, line 1.
          maxLength: 1024
          example: 8 Shenton Way
        addressLine2:
          type: string
          description: Registered business address, line 2 (optional).
          maxLength: 1024
          example: Level 45
        city:
          type: string
          description: City.
          maxLength: 1024
          example: Singapore
        district:
          type: string
          description: State / province / district.
          maxLength: 1024
          example: Downtown Core
        postalCode:
          type: string
          description: Postal / ZIP code.
          maxLength: 16
          example: 68811
        country:
          type: string
          description: >-
            Country. Formatted as a two-letter country code specified in ISO
            3166-1 alpha-2.
          maxLength: 2
          example: SG
        countryOfIncorporation:
          type: string
          description: >-
            Country of incorporation. Formatted as a two-letter country code
            specified in ISO 3166-1 alpha-2.
          maxLength: 2
          example: SG
    LegalEntityIdentifier:
      type: string
      description: >
        Optional. Legal entity identifier (LEI). Unique global identifier for
        legal entities. Primarily relevant for French (CIRCLE_FR) entities.
      example: 529900T8BM49AURSDO55
    AddressBookRecipientCustodyResponse:
      type: object
      description: >
        Wallet custody details. When `type` is `hosted`, `vaspId` is required
        and must match an identifier returned by `GET /v1/addressBook/vasps`.
        When `type` is `self_hosted`, do not send `vaspId`.
      properties:
        type:
          type: string
          description: >-
            Whether the wallet is hosted by a Virtual Asset Service Provider
            (VASP) or self-hosted.
          enum:
            - hosted
            - self_hosted
        vaspId:
          type: string
          format: uuid
          description: >-
            Identifier of the VASP that hosts the wallet. Required when `type`
            is `hosted`. Must not be set when `type` is `self_hosted`.
          example: 550e8400-e29b-41d4-a716-446655440000
    Email:
      type: string
      description: Email of the user.
      maxLength: 1024
      example: satoshi@circle.com
  responses:
    NotAuthorized:
      description: >-
        The request has not been applied because it lacks valid authentication
        credentials.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            type: object
            title: NotAuthorized
            required:
              - code
              - message
            properties:
              code:
                type: integer
                example: 400
              message:
                type: string
                example: Something went wrong.
            example:
              code: 401
              message: Malformed authorization.
          examples:
            response:
              value:
                code: 401
                message: Malformed authorization.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````