# Email for your app and your AI agent

Flyanote's API sends transactional email, like receipts, password resets, and notifications, one recipient per message. Developers and AI agents use the same API, with a free sandbox that never sends real mail.

Start with a free test send: the [quick start](https://flyanote.com/docs/quickstart) has the commands. Live mail is pay as you go, priced per email, with no monthly fee.

## Can an AI agent sign up and send through Flyanote with no person?

Not yet. Today a person opens the account and makes the API key. With a test key, an agent can then work with the API on its own: send test messages, which are free and never delivered, and read what happened to them. Live mail also needs a live key and credit, which a person adds today, and a verified domain. It opens to customers with the private beta.

## Each step, and who takes it today

### In the sandbox, free

1. **Open an account**  
Who: a person.  
In a browser, with an invite: accounts are by invite while Flyanote is in development. Email hello@flyanote.com and tell us what you’d send.
2. **Make a test key**  
Who: a person (an owner or admin).  
In the app, under API keys. A test key (`fan_test_…`) is free and never delivers. It’s shown once.
3. **Send a test message**  
Who: the agent, with the test key.  
`POST /v1/messages` from `test@sandbox.flyanote.com` to a team member’s verified address. Free, and never delivered.
4. **See what happened**  
Who: the agent.  
`GET /v1/messages/{id}`. A test message ends as `test`.

### Live mail

1. **Make a live key**  
Who: a person (an owner or admin).  
In the app, the same way. A live key (`fan_live_…`) sends real email and uses credit.
2. **Add a sending domain**  
Who: the agent, with the live key and access to the domain’s DNS.  
`POST /v1/domains` returns the DNS records to add, and `POST /v1/domains/{id}/check` checks them. Without DNS access, a person adds the records.
3. **Add credit**  
Who: a person.  
While Flyanote is in development, we add credit on request.
4. **Send live mail**  
Who: the agent, with the live key.  
The same `POST /v1/messages`, from an address on the verified domain. Live mail opens to customers with the private beta.

The [quick start](https://flyanote.com/docs/quickstart) has the commands for the test send and the domain.

## What changes before sign-up opens

Sign-up opens early 2027\. Before then, an agent will be able to start an account through the API and get its own test key. A person still claims the account before it sends live mail. An MCP server is planned too. This page changes as each reaches production.

## What it costs

Test sends are free. Live mail is pay as you go: prepaid credit, priced per email, with no monthly fee. We'll publish the price per 1,000 emails before sign-up opens.

## What the API does for an agent

* Every send takes an `Idempotency-Key`. Send a retry with the same key and body within 24 hours, and it never sends twice.
* Every error is an RFC 9457 problem with a stable `code`, what went wrong, and the steps that fix it, in order.
* `GET /v1/api-keys/current` says what a key is and what it may do, before it tries anything.
* A test key runs every check a live key does but one: a test send is never refused for an address on Flyanote's own abuse list. So a test send that passes doesn't prove the live one will.
* Rate limits come in `RateLimit` headers, with `Retry-After` once you're past one.

## Where to start

* [The quick start](https://flyanote.com/docs/quickstart): send a free test message that's never delivered, then add and verify your sending domain.
* [The OpenAPI document](https://flyanote.com/openapi.json): every operation, in OpenAPI 3.1\. It's a copy, refreshed each time this site updates; [the API's own](https://app.flyanote.com/api/openapi) is always current.
* The API's base URL is `https://app.flyanote.com/api`. Send the key in this header:  
`Authorization: Bearer <key>`
* [API errors](https://flyanote.com/docs/errors): every code, and the steps that fix it.
* For AI agents: [llms.txt](https://flyanote.com/llms.txt) lists every page.
* For AI agents: [llms-full.txt](https://flyanote.com/llms-full.txt) has every page in one file.
* Add `.md` to the address of any page on this site for its Markdown.
* [All the docs](https://flyanote.com/docs).
