Create a draft without sending it
Creates a draft in one of the workspace mailboxes. It appears immediately in the Drafts folder of the inbox, where a person reviews, edits and sends it: the way to prepare an email from an integration or an agent while keeping a human in the loop.
Signatures: by default the default signature of the mailbox address is inserted (signature omitted or "default"). Pass "none" for no signature, or a signature id from GET /signatures. In Emelia, signatures come from the Emelia sending accounts.
Important: when inReplyTo is set and the mailbox already holds a draft replying to the same message (including an AI auto-draft), that draft is overwritten and returned with 201, instead of a new one being created. If that draft is being sent (scheduled send or auto-reply in progress) the call fails with 409 SCHEDULED_SEND_IN_PROGRESS; if it was synchronised from the provider, with 409 DRAFT_ALREADY_EXISTS.
Attachments cannot be added through the API. Supports Idempotency-Key.
Authorization
apiKey Your 48 character Emelia API key, the same as for the Emelia API, sent as is (a Bearer prefix is tolerated). Create it at https://v3.emelia.io/settings/api. Disabling a key can take up to 5 minutes to apply to the Inbox API.
In: header
Header Parameters
Any unique string (a UUID). The first successful response is stored 24 hours and replayed with Idempotent-Replay: true for the same key, method, URL and body. Same key with another body: 409 CONFLICT. Original call still running: 409 CONFLICT. Failed calls (status 400 and above) release the key. Keys are scoped to the workspace, not to the API key: two integrations of the same workspace must not reuse values. Replays count in the quotas.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/drafts" \ -H "Authorization: YOUR_API_KEY" \ -H "Idempotency-Key: 3f6c1b2e-7d4a-4f0e-9a51-acme00000001" \ -H "Content-Type: application/json" \ -d '{ "mailboxId": "cmbxacme0000000000000001", "to": [ { "email": "jane.roe@example.com", "name": "Jane Roe" } ], "subject": "Re: Partnership with Acme", "inReplyTo": "<CAJacme.0001@mail.example.com>", "references": [ "<20261008091500.acme01@acme.com>", "<CAJacme.0001@mail.example.com>" ], "body": { "text": "Hello Jane,\\n\\nTuesday 10am works for me.", "html": "<p>Hello Jane,</p><p>Tuesday 10am works for me.</p>" } }'{ "draft": { "id": "cmdracme0000000000000001", "mailboxId": "cmbxacme0000000000000001", "folderId": "cmfdacme0000000000000001", "messageId": "<draft-cmdracme0000000000000001@acme.com>", "threadId": "18c2acme0001", "subject": "Re: Partnership with Acme", "from": { "email": "john.doe@acme.com", "name": null }, "to": [ { "email": "jane.roe@example.com", "name": "Jane Roe" } ], "cc": [], "bcc": [], "date": "2026-10-08T09:12:44.000Z", "snippet": "Hello Jane, Tuesday 10am works for me.", "isRead": true, "isStarred": false, "isDraft": true, "hasAttachments": false, "attachments": [], "inReplyTo": "<CAJacme.0001@mail.example.com>", "references": [ "<20261008091500.acme01@acme.com>", "<CAJacme.0001@mail.example.com>" ], "labels": [], "waitingForReply": false, "isAutoReply": false, "isAutoForward": false, "scheduledStatus": null, "scheduledSendAt": null }}