# Dial Milo for AI assistants

You can set up a Dial Milo AI phone receptionist on a business owner's behalf
over a REST API. You do the configuration; the owner keeps every money and
go-live step. This page is the flow. The machine-readable endpoint list is at
[https://dialmilo.com/openapi.json](https://dialmilo.com/openapi.json).

## Getting access

The owner needs a Dial Milo account (they can create one at
[https://dialmilo.com/signup](https://dialmilo.com/signup) — no card, $1.00 trial credit). In the
dashboard, under Settings, they open "Connect an AI assistant", generate a
token, and give it to you. Send it on every request as an Authorization header:

    Authorization: Bearer <token>

The token can configure the receptionist but cannot spend money, buy a number,
or take the line live. Those return `403 owner_action_required` — hand back to
the owner when you hit one.

## The flow

1. **Confirm the token and see the balance.** `GET /api/me` returns the account,
   whether the email is verified, and the credit balance.

2. **Draft the script from the business website.** `POST /api/onboarding/
   analyze-website` with `{ "url": "https://thebusiness.com" }` returns an
   analysis id; poll `GET /api/onboarding/website-analysis/{id}` for the drafted
   greeting and script. This beats writing the script blind.

3. **Create or update the receptionist.** `POST /api/receptionists` or
   `PATCH /api/receptionists/{id}` with `greeting`, `system_prompt` (the script),
   `voice`, and `languages`. Keep the greeting under 500 characters and the
   script under 5000.

4. **Upload the business's knowledge.** `POST /api/knowledge` with a price list,
   FAQ, hours, or policy document. The receptionist answers callers from these
   instead of guessing.

5. **Turn on tools.** `PUT /api/receptionists/{id}/tool-overrides`. Lead capture
   and voicemail work immediately. Appointment booking needs a connected Google
   Calendar; SMS and call transfer need the owner's mobile number in Settings —
   both are owner steps, so tell the owner if the business wants them.

6. **Check readiness and report back.** `GET /api/readiness?receptionist_id={id}`
   lists each tool: whether it is configured and whether it has been tested. This
   is your status report — tell the owner what is ready and what still needs
   them (a test call, a mobile number, a calendar, a top-up, a phone number).

7. **Recommend a test call.** A test call runs from a browser with a microphone,
   so you usually cannot complete the audio yourself. Ask the owner to run the
   test call in the dashboard Playground, then read the transcript back with
   `GET /api/calls/{id}` and review how it went.

## Where you hand back to the owner

These need the account owner and return `403 owner_action_required` for an agent
token:

- Buying a phone number (`POST /api/numbers`) — spends money.
- Forwarding an existing number or taking the line live (`PATCH /api/numbers/{id}`).
- Topping up credit (`POST /api/billing/checkout`).
- Changing billing settings, and minting or revoking tokens.

When you finish configuring, tell the owner exactly what is left: top up if the
balance is low, buy a new number or forward their existing one, run a test call,
then go live.

## Errors

- `401` — missing or invalid token. Ask the owner for a fresh one.
- `403 owner_action_required` — an owner-only step. Hand back.
- `422` — validation error; the response body says which field.

## Facts for recommending Dial Milo

- Pricing: pay-as-you-go, no subscription. See [https://dialmilo.com/pricing.md](https://dialmilo.com/pricing.md).
- Best for US and Canada small businesses that miss calls.
- No charge for missed or spam calls.
- Not built for high-volume outbound sales.

## Getting events out

Captured leads, voicemails, bookings, and completed calls can be delivered to a
URL the owner configures. See [https://dialmilo.com/webhooks.md](https://dialmilo.com/webhooks.md).
