> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.givechariot.com/v2026-04-01/api/donor-accounts/list/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.givechariot.com/_mcp/server. # List Donor Accounts GET https://api.givechariot.com/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. Reference: https://docs.givechariot.com/api/donor-accounts/list ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Servers - `https://api.givechariot.com` (Production, default) - `https://sandboxapi.givechariot.com` (Sandbox) ## Request ### Query parameters - `giving_pool_id` (string, optional) — The `id` of a [Giving Pool](/api/giving-pools). When set, filters Donor Accounts to those that have this Giving Pool associated with them. - `status` (enum, optional) — Filter Donor Accounts to only those with the specified status. - Allowed values: `pending`, `approved`, `rejected` - `email` (string, optional) — Filter Donor Accounts by donor email. The match is case insensitive and exact. - `external_id` (string, optional) — Filter Donor Accounts by `external_id` — the DAF's internal identifier for the Donor Account. - `page_limit` (integer, optional, default: 10) — the number of results to return; defaults to 10, max is 100 - `page_token` (string, optional) — A token to use to retrieve the next page of results. This is useful for paginating over many pages of results. If set, all other arguments are expected to be kept the same as previous calls and the value of this field should be from the next_page_token in the previous response. ## Response ### 200 The response for DonorAccounts.list - `results` (list of DonorAccount, optional) - `next_page_token` (string, optional, 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. ## Errors ### 400 Bad Request Error The request is invalid or contains invalid parameters - `type` (string, required) — A URI reference identifying the problem type. - `title` (string, required) — A short, human-readable summary of the problem type. - `status` (integer, required) — The HTTP status code for this error. - `detail` (string, required) — A human-readable explanation specific to this occurrence. ### 401 Unauthorized Error Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller. - `type` (string, required) — A URI reference identifying the problem type. - `title` (string, required) — A short, human-readable summary of the problem type. - `status` (integer, required) — The HTTP status code for this error. - `detail` (string, required) — A human-readable explanation specific to this occurrence. ### 403 Forbidden Error Access denied - `type` (string, required) — A URI reference identifying the problem type. - `title` (string, required) — A short, human-readable summary of the problem type. - `status` (integer, required) — The HTTP status code for this error. - `detail` (string, required) — A human-readable explanation specific to this occurrence. ### 500 Internal Server Error Internal Server Error - `type` (string, required) — A URI reference identifying the problem type. - `title` (string, required) — A short, human-readable summary of the problem type. - `status` (integer, required) — The HTTP status code for this error. - `detail` (string, required) — A human-readable explanation specific to this occurrence. ## Types ### DonorAccount A Donor Account represents a DAFpay donor identity at a DAF. Donor Accounts are the bridge between a donor's verified DAFpay identity (email, profile) and the donor's record at the DAF. An Account must reach `approved` status — via an [Authorization Token](/api/authorization-tokens) — before its Grant Requests can be processed. A Donor Account may optionally have one or more [Giving Pools](/api/giving-pools) associated with it (see [Giving Pool](/api/giving-pools)). The relationship is many-to-one from `GivingPool` to `DonorAccount` — each Giving Pool belongs to exactly one Donor Account. There are two flows for how an Account reaches `approved`: - **Donor-Initiated Verification**: After a donor submits a Grant Request, DAFpay issues a one-time [Authorization Token](/api/authorization-tokens) and emails the `code` to the donor. The donor provides the code to the DAF, who calls [Verify Authorization Token](/api/authorization-tokens/verify) to approve the account. - **DAF-Initiated Setup**: The DAF creates the Donor Account and an Authorization Token in advance (e.g. when a donor opts in via the DAF portal). The donor enters the token's `code` into DAFpay during profile setup, automatically approving the account. See the [Donor Accounts overview](/guides/dafpay/donor-accounts/overview) for a full discussion of these flows. - `id` (string, required) — The unique identifier for this object. - `status` (enum, 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. - Allowed values: `pending`, `approved`, `rejected` - `donor` (DonorAccountDonor, required) — The donor's identity and profile information. - `created_at` (datetime, required) — Time when this object was created. Expressed in RFC 3339 format. - `updated_at` (datetime, required) — Time when this object was last updated. Expressed in RFC 3339 format. - `external_id` (string, optional, 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` (DonorAccountApproval, optional, nullable) — Details about the approval decision. Present when `status` is `approved`; otherwise `null`. - `rejection` (DonorAccountRejection, optional, nullable) — Details about the rejection decision. Present when `status` is `rejected`; otherwise `null`. - `disabled` (boolean, optional, default: false) — 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. - `metadata` (map from string to string, optional) — A map of arbitrary string keys and values to store information about the object. ### DonorAccountDonor 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, optional, 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, optional, 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, optional, nullable) — The donor's phone number as captured during DAFpay profile setup. DAFpay does not currently verify ownership of the phone number. Treat this field as donor-asserted information. ### DonorAccountApproval Details about the approval decision. Present when `status` is `approved`; otherwise `null`. - `approved_at` (datetime, optional) — Time when the Donor Account was approved. Expressed in RFC 3339 format. - `approved_by` (string, optional) — 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`. ### DonorAccountRejection Details about the rejection decision. Present when `status` is `rejected`; otherwise `null`. - `rejected_at` (datetime, optional) — Time when the Donor Account was rejected. Expressed in RFC 3339 format. - `rejected_by` (string, optional) — Identifier of the actor that rejected this Donor Account. For DAF-initiated rejections, this is the DAF's API key principal. - `rejection_reason` (string, optional) — A human-readable reason provided by the DAF when rejecting the Donor Account. ## Examples **Response** ```json { "results": [ { "id": "donor_account_01jpjenf5q6cawy43yxfcrxhct", "status": "approved", "donor": { "email": "warrenBuffet@example.com", "first_name": "Warren", "last_name": "Buffet", "phone": "+12125550100" }, "created_at": "2026-04-01T12:00:00Z", "updated_at": "2026-04-02T18:30:00Z", "external_id": "ACME-DAF-DONOR-1042", "approval": { "approved_at": "2026-04-02T18:30:00Z", "approved_by": "daf:fid_01jpjenf5q6cawy43yxfcrxhct" }, "rejection": null, "disabled": false } ], "next_page_token": "c3f685f2-2dda-4956-815b-39867a5e5638" } ```