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

# Onboarding

> Read and manage your organization's onboarding checklist state.

Each organization carries a server-side onboarding checklist (the
"getting started" coach in the dashboard). Steps complete
**automatically** as the org performs the underlying action — creating
and talking to an agent, adding billing, getting a phone number, and
taking a first call. The API exposes the state read-only, plus
dismiss/undismiss controls and one explicit skip.

## Endpoints

| Method | Path                             | Description                                  |
| ------ | -------------------------------- | -------------------------------------------- |
| `GET`  | `/v1/onboarding`                 | Current onboarding state                     |
| `POST` | `/v1/onboarding/dismiss`         | Hide the checklist                           |
| `POST` | `/v1/onboarding/undismiss`       | Show it again                                |
| `POST` | `/v1/onboarding/agent-talk/skip` | Complete the agent step without the mic test |

## Onboarding object

All four endpoints return the same object (the POSTs return the
updated state):

```json theme={null}
{
  "steps": {
    "agent":   { "completed": true,  "completed_at": "2026-04-20T18:24:10.113Z" },
    "billing": { "completed": true,  "completed_at": "2026-04-20T18:30:02.551Z" },
    "phone":   { "completed": false, "completed_at": null },
    "call":    { "completed": false, "completed_at": null }
  },
  "all_complete": false,
  "dismissed": false,
  "dismissed_at": null
}
```

| Step      | Completes when…                                                                                                                            |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `agent`   | The org has an agent **and** someone talked to it via a mic session (or the talk step was explicitly [skipped](#skip-the-agent-talk-step)) |
| `billing` | A payment method is saved or a top-up succeeds                                                                                             |
| `phone`   | The org gets its first phone number                                                                                                        |
| `call`    | The org's first real call completes                                                                                                        |

`dismissed` hides the checklist in the dashboard without changing step
state; `undismiss` re-shows it. Steps never un-complete.

### Skip the agent-talk step

`POST /v1/onboarding/agent-talk/skip` marks the `agent` step complete
even though no mic call happened — used when the builder tour's
optional "Talk to your agent" step is skipped. The org must actually
have an agent for the step to complete.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.thunderphone.com/v1/onboarding \
    -H "Authorization: Bearer sk_live_YOUR_API_KEY"
  ```
</CodeGroup>

***

## Related

<CardGroup cols={2}>
  <Card title="Agents" icon="robot" href="/api-reference/agents">
    Step 1: create an agent.
  </Card>

  <Card title="Billing" icon="credit-card" href="/api-reference/billing">
    Step 2: add funds.
  </Card>

  <Card title="Phone Numbers" icon="phone" href="/api-reference/phone-numbers">
    Step 3: get a number.
  </Card>

  <Card title="Mic Sessions" icon="microphone" href="/api-reference/mic-sessions">
    Talk to your agent from the browser.
  </Card>
</CardGroup>
