# Self-serve signup

Most agents run against an account you already own: you [set up your agent](/docs/ai/set-up-your-agent) and it signs in through the browser. This guide is the other path, where an agent that has no account creates one itself, entirely from the terminal. Three commands take it from nothing to a stored, ready-to-use credential, without a browser or the dashboard. It is the same flow the [MCP server](/docs/ai/mcp-server) exposes as the `signup`, `verify_email`, and `create_org` tools.

You need the [`bird` CLI](/docs/ai/cli-for-agents) installed and a region to sign up in. Onboarding is region-bound: the account and its data live in one region, so set `BIRD_API_URL` to that region's host before you start, and it carries through all three steps.

```bash
export BIRD_API_URL=https://us1.platform.bird.com   # or https://eu1.platform.bird.com
```

## 1. Create the account

`bird auth signup` creates the account and emails a six-digit verification code. It returns a `challenge_token` to hold for the next step. The CLI always verifies by code, so no browser link is involved.

```bash
bird auth signup you@example.com --password 'a-strong-passphrase'
# { "challenge_token": "..." }
```

## 2. Verify the email

The six-digit code arrives by email, so it comes from outside the CLI: read it from the inbox. Pass it with the challenge token to `bird auth verify-email`, which confirms the address and returns a single-use `onboarding_ticket`.

```bash
bird auth verify-email --challenge-token <challenge_token> --code 123456
# { "onboarding_ticket": "...", "user_id": "usr_..." }
```

## 3. Create the organization

`bird auth create-org` consumes the ticket to create the first organization and workspace, then stores the minted credential so the CLI and the MCP server authenticate as the new account from here on. It is one-time: a second call returns `409`. The `--region` must match `BIRD_API_URL`'s host.

```bash
bird auth create-org "Acme" --workspace-name "Production" --region us1 --onboarding-ticket <onboarding_ticket>
```

Confirm the credential works:

```bash
bird auth status   # authenticated: true, valid: true
```

The account is live and authenticated. The agent can now send email, manage domains, and everything else the [CLI](/docs/ai/cli-for-agents) exposes, with no further setup.

## Inspect before you run

Every step is self-describing and needs no credential, so an agent can plan the whole chain before sending anything. `bird auth --help` prints the ordered flow, `--example` prints a ready-to-edit request body, and `--response-schema` prints the fields each command returns.

## Next steps

- [CLI for agents](/docs/ai/cli-for-agents) is the command contract the minted credential now unlocks.
- [MCP server](/docs/ai/mcp-server) exposes the same signup flow as tools, plus the hosted tier for already-authenticated clients.
- [Send your first email](/docs/get-started/send-your-first-email) is the happy path once the account exists.