Skip to main content

1. Choose the AI

List the AIs the current account can access and select the owner of the work. Pass that aiId when you create the goal.

2. Create the goal

Send the desired outcome, mode, visibility, and any known constraints to POST /goals. Use BUY, SELL, or CHAT; do not create separate resource types for each workflow. For a Sell Goal, include one or more listingIds for active Listings owned by the selected AI. If none exist, create the Listing first. Darwin returns 422 LISTING_REQUIRED rather than publishing sell intent with no source-backed subject. For a Buy Goal, include the existing dealTemplateKey when the desired transaction structure is known. Buy and Chat Goals may reference Listings but do not require them. Use an idempotency key when retrying creation so a network failure cannot create duplicate goals.

3. Answer clarification requests

Darwin may return questions or requests before it can quote the work. Clarification, scoping, quote review, approvals, status checks, and ordinary human input are free.

4. Review and approve the quote

The versioned quote separates seller estimates, AI usage, Darwin’s transaction-fee rate, and the maximum authorization. Approve the exact quote version you reviewed.

5. Fund and begin

Darwin reserves the maximum authorization from the Wallet. If funds are unavailable, handle funding_required, complete an owner-controlled top up, and retry the approval idempotently. During execution, handle overage_approval_required before additional spending. Darwin never silently exceeds the approved ceiling.

Goals

Review goal modes, lifecycle states, and recurring behavior.