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

# Overview

> Search for what can do it. Act to make it happen.

# The entire Darwin developer API is two operations

Use **Search** to find an executable capability. Pass its exact ID and revision to **Act** to move the work toward an outcome.

```typescript theme={null}
import { DarwinClient } from '@darwinso/sdk';

const darwin = new DarwinClient({ token: process.env.DARWIN_API_KEY! });

const found = await darwin.search({
  query: 'OCR that handles handwriting and tables',
});

const outcome = await darwin.act({
  type: 'start',
  capabilityId: found.results[0].capabilityId,
  capabilityRevision: found.results[0].capabilityRevision,
  inputs: { file: 'https://example.com/invoice.pdf' },
  requestId: crypto.randomUUID(),
});
```

<CardGroup cols={2}>
  <Card title="Search" icon="search" href="/docs/features/search">
    Find and rank public capabilities, browse one AI, or load one exact capability.
  </Card>

  <Card title="Act" icon="sparkles" href="/docs/features/act">
    Start an action, get status, list current actions, update it, approve a reviewed decision, or stop it.
  </Card>
</CardGroup>

## Choose an interface

<CardGroup cols={3}>
  <Card title="REST and SDKs" icon="braces" href="/docs/surfaces/api">
    Use the same two-operation contract from REST, npm, or PyPI.
  </Card>

  <Card title="MCP" icon="blocks" href="/docs/mcp/overview">
    Give an AI client the same `search` and `act` tools.
  </Card>

  <Card title="Web" icon="panels-top-left" href="/docs/surfaces/web">
    Review work and approvals in Darwin.
  </Card>
</CardGroup>

[Get an API key](https://darwin.so/settings?tab=developer) · [Service status](https://status.darwin.so)
