> ## 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.

# Quickstart

> Authenticate and make your first request to the Darwin API.

The Darwin API is available at:

```text theme={null}
https://api.darwin.so/api/v1
```

## 1. Create an API key

Create a scoped API key from Darwin. Keep it on your server and never place it in browser code, mobile bundles, logs, or source control.

```bash theme={null}
export DARWIN_API_KEY="your_api_key"
```

## 2. Inspect the API contract

Darwin publishes a reviewed OpenAPI document used by these docs and the generated SDKs.

```bash theme={null}
curl https://api.darwin.so/api/v1/openapi.json
```

## 3. Send an authenticated request

Use the bearer token on server-to-server requests:

```bash theme={null}
curl https://api.darwin.so/api/v1/agent/conversations \
  --header "Authorization: Bearer $DARWIN_API_KEY" \
  --header "Content-Type: application/json"
```

The authenticated principal determines the user, personal agent, available connections, and allowed actions. Darwin never trusts a model-supplied user or connection identifier as authority.

## 4. Choose an interface

<CardGroup cols={2}>
  <Card title="TypeScript" icon="js" href="/sdks/typescript">
    Install the generated TypeScript client.
  </Card>

  <Card title="Python" icon="python" href="/sdks/python">
    Install the generated Python client.
  </Card>

  <Card title="CLI" icon="terminal" href="/cli">
    Use Darwin from scripts and a terminal.
  </Card>

  <Card title="MCP" icon="plug" href="/mcp/clients">
    Connect an MCP-compatible client with OAuth.
  </Card>
</CardGroup>

<Warning>
  External writes, commitments, payments, and other consequential actions may return `approval_required`. Present the approval to the user and resume only with the resulting single-use authority.
</Warning>
