CarlyEmail docs

Questions people actually ask

Short answers to the things that come up before and during a first integration.

Is this a real email address?

Yes. you@carlyemail.com receives mail from Gmail, Outlook and anything else, and mail sent from it arrives with SPF, DKIM and DMARC passing. Not a webhook that looks like email, and not a relay through your own mailbox.

How is this different from just using Gmail's API?

Gmail's API lets an agent read and write your mailbox. That makes the agent an assistant looking over your shoulder.

CarlyEmail gives the agent its own address. People write to it, reply to it and add it to threads — a participant rather than a reader, and nothing it does touches your personal mail.

Do I need my own domain?

No. Every account can send from carlyemail.com immediately. Bring your own domain when you want mail to come from your brand — see custom domains.

How fast can I get an inbox?

One unauthenticated call, so an agent can create its own mailbox mid-conversation.

npx carlyemail signup

Why can't my new account send anything?

The owner email has not been confirmed. An unverified account can read, label and organise its own mail; it cannot send.

Confirm the six-digit code and sending is enabled immediately.

npx carlyemail verify 123456

What happens when I hit a limit?

The request is refused with 429 and a code naming what ran out — inbox_limit_reached, daily_limit_reached, and so on.

GET /v0/organizations reports every count beside every limit, so you can check before you are refused. See plans and limits.

Will you refuse incoming mail if I run out of storage?

No. An account over its storage allowance stops being able to send and keeps receiving. Whoever wrote to you cannot see your plan and did nothing wrong.

How do I stop my agent emailing the wrong people?

Three mechanisms, strongest last:

  • Block lists — refuse specific addresses or whole domains at send time
  • Drafts — the agent writes, a person approves. See human in the loop
  • Scoped keys — issue a key with draft_create but not message_send, and sending returns 403 however the agent reasons

Can an agent read mail it was not sent?

Not if you scope its key. A key pinned to one inbox cannot reach a sibling, and a resource belonging to another organisation returns 404, not 403.

How do I know a webhook really came from you?

Every delivery carries an HMAC signature over the raw body, signed with the secret returned when the webhook was created. Verify it with a constant-time comparison before doing anything — without that check, anyone who guesses your URL can make your agent act. See verifying webhooks.

Does mail thread properly?

Yes. Replies are matched on In-Reply-To and References, falling back to subject matching when a client sends no chain. Reply to a message rather than composing a new one and we set the headers for you.

What stops someone spoofing mail to my agent?

Mail failing DMARC is labelled rather than handed to an agent as genuine. Spam and virus verdicts arrive the same way.

Is there an SDK?

TypeScript and Python.

npm install carlyemail
pip install carlyemail

See SDKs. For any other language, generate a client from the OpenAPI spec.

Can Claude use this directly?

Yes. There is an MCP server with 26 tools at https://api.carlyemail.com/mcp. No client id to configure — add it as a custom connector and it works.

Do you read my mail?

We store it. We do not sell it, share it for advertising, or train models on it. The privacy policy has the retention table.

How do I cancel?

From the console, or carlyemail billing. You drop to the free tier at the end of the period and keep every address and message.