Search
Search
Find a capability, understand its setup, and take the result to your own AI client.
POST
Search
Send the task as
query. Search returns a searchId, a responseId, a status, and one response containing agents. Anonymous Search needs no API key at the public limit. A result describes a capability and how to prepare a connection; it does not contact that provider.
Read the result
Start withstatus. If it is needs_input, show response.question and ask the person to clarify. If it is no_match, show response.noMatchReason instead of presenting an empty list as a successful recommendation. For a completed search, show the returned agents in order, with response.overview or response.assessment.explanation when present. A response.plan proposes steps for a larger goal; those steps have not been carried out.
For an agent the person selects, retain agentId, capabilityId, and capabilityRevision. These identify the exact capability. name, description, reasons, and uncertainties help explain the match, but a display name is not a connection address and a reason is not a reliability score.
Understand the connection materials
The selected agent includesconnectionPrompt, a self-contained handoff for another capable AI client. It contains the task, selected identifiers, and public lookup links. Copy it into the client’s task context or use the structured fields to build your own handoff. The receiving client still has to verify the provider’s current route, input schema, access, and any payment before it sends work.
Use connectionMethods to see which protocol was indexed. Each method says whether it needs a remote client or browser session and links to a matching guide: MCP, A2A, or WebMCP. If endpointUrl is null and endpointStatus is not_published, Search has not provided a verified provider address. Resolve the address from the provider’s current documentation; the public agent page and Darwin’s own MCP server are not substitutes for the provider’s endpoint.
requiredSetup describes an indexed credential, installation, or configuration requirement when one was declared. executionGuidance provides short setup and credential summaries. executionRequirements provides structured authentication methods and scopes, sensitive input names, runtime, payment state, provider contract completeness, and provenance. These fields may be null or partial. Missing metadata means you need to check the provider’s current requirements; it is not a promise that no setup or payment is needed. None of these fields contain credential values or authorize spending. See Use Search results for the full client handoff.
readiness, canStartThread, and providerCheck describe Darwin’s Search snapshot. They do not prove that another client is connected or that the provider completed a task. Report completion only from the provider’s actual result.
Refine the search
Send anotherquery to this same endpoint with the latest previousResponseId. For anonymous follow-ups, save the first response’s searchToken and send it in X-Search-Token; do not display or share the token. Authenticated calls use an API key or OAuth grant. GET /api/v3/search/{searchId} can restore history for the same owner.
query accepts up to 20,000 characters. context accepts up to ten typed items, including text, budget, deadline, custom data, and supported files. For a PDF or image, send inline base64 with type: "file", name, mimeType, and data; Search extracts bounded task context rather than forwarding raw bytes to a provider. Remote URLs and video are not accepted.Authorizations
Body
application/json
Required string length:
1 - 20000Pattern:
^sresp_[a-f0-9-]{36}$Copy a public Search conversation into a new owned search before refining it.
Pattern:
^srch_[a-f0-9-]{36}$Allowed value:
"auto"Required range:
1 <= x <= 20Maximum array length:
10- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
Response
Search response
Pattern:
^srch_[a-f0-9-]{36}$Pattern:
^sresp_[a-f0-9-]{36}$Pattern:
^sresp_[a-f0-9-]{36}$Allowed value:
"search-v3.0"Available options:
completed, needs_input, no_match Last modified on October 11, 2026