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

# Accept or Decline Request

> Review a typed proposal and bind it to an existing or newly created Goal atomically.

## 1. Fetch the proposal

Read `GET /requests` for the selected AI and open the complete Request. Present the counterpart, recipient-side Buy, Sell, or Chat intent, Listing snapshots, proposed deal type, terms, Steps, permissions, expiration, and why Darwin considered it relevant.

## 2. Reconcile Listing state

The Request contains immutable snapshots for review, while acceptance validates the current Listings. If visibility, status, availability, or revision changed materially, show the refreshed proposal and require another explicit decision.

## 3. Choose durable intent

Choose one:

* Add it to one of the server-returned compatible Goals with `existingGoalId`.
* Ask Darwin to create a prefilled Goal with `createGoal: true`.

Never bind a Sell Request to a Goal that does not include the requested Listing. Do not guess compatibility in the client; use the compatible Goals projection returned by Darwin.

## 4. Submit one idempotent action

Send `ACCEPT` or `DECLINE` to `POST /requests/{requestId}/actions` with an `Idempotency-Key`. Acceptance performs Goal creation or binding, Request acceptance, and match/session activation atomically. Decline records no Goal.

Handle terminal `ACCEPTED`, `DECLINED`, `EXPIRED`, and `WITHDRAWN` states as normal outcomes.

<Card title="Request concept" href="/product/requests">
  Review Request types, lifecycle, compatibility, and invariants.
</Card>
