---
title: "List Donor Accounts"
method: GET
path: "/v1/donor_accounts"
tags: ["Donor Accounts"]
---

# List Donor Accounts

`GET /v1/donor_accounts`

Returns a list of Donor Accounts for the authenticated DAF.
This endpoint supports cursor-based pagination as well as filtering by fund, status, and email.

## Query parameters

- `giving_pool_id` string
- `status` 'pending' | 'approved' | 'rejected' — The status of a [Donor Account](/api/donor-accounts). * `pending`: The Donor Account has been created but the DAF has not yet approved or rejected it. * `approved`: The DAF has verified the donor's identity and Grants from this account can be processed. * `rejected`: The DAF has rejected the Donor Account. Grants from this account will not be processed.
- `email` string
- `external_id` string
- `page_limit` integer
- `page_token` string

## Response `200`

The response for DonorAccounts.list

- object
  - `results` DonorAccount[]
    - `id` string, required — The unique identifier for this object.
    - `status` 'pending' | 'approved' | 'rejected', required — The status of a [Donor Account](/api/donor-accounts). * `pending`: The Donor Account has been created but the DAF has not yet approved or rejected it. * `approved`: The DAF has verified the donor's identity and Grants from this account can be processed. * `rejected`: The DAF has rejected the Donor Account. Grants from this account will not be processed.
    - `donor` object, required — The donor's identity and profile information.
      - `email` string, required — The donor's email. This is the donor's verified identifier — DAFpay verifies ownership via an email verification flow before a Donor Account is created.
      - `first_name` string, nullable — The donor's first name as captured during DAFpay profile setup. May be null for Donor Accounts created via [Create Donor Account](/api/donor-accounts/create) before the donor has authenticated.
      - `last_name` string, nullable — The donor's last name as captured during DAFpay profile setup. May be null for Donor Accounts created via [Create Donor Account](/api/donor-accounts/create) before the donor has authenticated.
      - `phone` string, nullable — The donor's phone number as captured during DAFpay profile setup. <Note> DAFpay does not currently verify ownership of the phone number. Treat this field as donor-asserted information. </Note>
    - `external_id` string, nullable — The DAF's internal identifier for this Donor Account. Can be set on creation or via [Update Donor Account](/api/donor-accounts/update) to link the DAFpay Donor Account to the donor's record in the DAF's own systems.
    - `approval` object, nullable — Details about the approval decision. Present when `status` is `approved`; otherwise `null`.
      - `approved_at` string, date-time — Time when the Donor Account was approved. Expressed in RFC 3339 format.
      - `approved_by` string — Identifier of the actor that approved this Donor Account. For DAF-initiated approvals, this is the DAF's API key principal. For automatic approvals via token verification, this is `system:authorization_token`.
    - `rejection` object, nullable — Details about the rejection decision. Present when `status` is `rejected`; otherwise `null`.
      - `rejected_at` string, date-time — Time when the Donor Account was rejected. Expressed in RFC 3339 format.
      - `rejected_by` string — Identifier of the actor that rejected this Donor Account. For DAF-initiated rejections, this is the DAF's API key principal.
      - `rejection_reason` string — A human-readable reason provided by the DAF when rejecting the Donor Account.
    - `disabled` boolean — Whether this Donor Account is currently disabled. A disabled Donor Account remains `approved` but cannot submit new Grant Requests — call [Enable Donor Account](/api/donor-accounts/enable) to re-enable it. Disabling is only available for accounts in `approved` status.
    - `created_at` string, date-time, required — Time when this object was created. Expressed in RFC 3339 format.
    - `updated_at` string, date-time, required — Time when this object was last updated. Expressed in RFC 3339 format.
    - `metadata` object — A map of arbitrary string keys and values to store information about the object.
  - `next_page_token` string, nullable — A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the page_token). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server.

## Other responses

- `400` — The request is invalid or contains invalid parameters
- `401` — Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.
- `403` — Access denied
- `500` — Internal Server Error

---

[API](https://skmtc.net/chariot-giving/apis/specs.md) · [All operations](https://skmtc.net/chariot-giving/apis/specs/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/chariot-giving/specs/revisions/8446023e02fb/schema)
