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

# Recommend a Grant

> Submit an async grant from a fund to a nonprofit.

## Outcome

A grant recommendation is submitted from the user's fund to a selected nonprofit. Your app stores the async grant ID for status tracking.

## When

After the user has:

* A fund (`id` from [Open a Fund](./create-daf) or `GET /v1/funds/mine`)
* A nonprofit (`id` from [Find a Nonprofit](./search-for-org))

Trigger when the user recommends a grant from their fund.

## Auth

| Header | Value |
| - | - |
| `Authorization` | `Bearer <access_token>` |

Proxy from your backend. See [Integration Patterns](./integration-patterns).

## Endpoint

`POST /v1/transfers/async-grants`

API reference: [Create async grant](/developers/api/grant-transfers/create-async-grant)

See also: [Grant Transfers](/developers/api/grant-transfers/create-async-grant) in API reference.

## Required inputs

| Field | Description |
| - | - |
| `originFundId` | Source fund ID |
| `destinationOrgId` | Destination organization ID |
| `requestedAmount` | Grant amount in **microdollars** |
| `idempotencyKey` | New UUID per submission |
| `purpose` | Grant purpose / memo |

See the API reference for optional fields.

## Example request

```bash theme={null}
curl -X POST "https://api.dev.endaoment.org/v1/transfers/async-grants" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "originFundId": "FUND_UUID",
    "destinationOrgId": "ORG_UUID",
    "requestedAmount": "1000000",
    "idempotencyKey": "550e8400-e29b-41d4-a716-446655440001",
    "purpose": "General operating support"
  }'
```

## Response you need

| Field | Use |
| - | - |
| Grant `id` | Track async grant status |
| `asyncStatus` | Initial processing state (`status` is deprecated — use `asyncStatus`) |

List grants for a fund: [List fund grants](/developers/api/grant-transfers/list-fund-grants).

## Common mistakes

* Using `fundId` / `orgId` / `amount` field names (API expects `originFundId` / `destinationOrgId` / `requestedAmount`)
* Reading `status` instead of `asyncStatus` on async grant responses
* Using dollar amounts instead of microdollars
* Reusing `idempotencyKey` for different grant attempts
* Re-implementing org search here instead of linking to [Find a Nonprofit](./search-for-org)

## Full sample

Reference implementation: [GitHub quickstart — grant](https://github.com/endaoment/endaoment-integration-docs/tree/main/quickstart/backend).

**Next:** [Going to Production](./going-to-prod)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.