CarlyEmail docs

A draft is a message that has not been sent. Useful when a human approves what an agent wrote before it goes out.

curl -X POST https://api.carlyemail.com/v0/drafts \
  -H "Authorization: Bearer $CARLYEMAIL_API_KEY" \
  -H 'content-type: application/json' \
  -d '{
    "inbox_id": "support@carlyemail.com",
    "to": ["customer@example.org"],
    "subject": "Following up",
    "text": "Draft body"
  }'

Update it, attach files, then send:

curl -X POST https://api.carlyemail.com/v0/drafts/$DRAFT_ID/send \
  -H "Authorization: Bearer $CARLYEMAIL_API_KEY"

Sending a draft applies the same quota, suppression and verification checks as a direct send — a draft is not a way around them.

A draft can carry in_reply_to, so an approved reply still threads correctly.