Mail

Create a draft

Saves a draft without sending it.

POST /v1/drafts

Permission

The key must be granted mail.messages.write

A key without it gets 403 insufficient_scope, with the missing permission named in details.

Request body

A draft can be incomplete: nothing here is required, because a draft is by definition unfinished.

Field Type Description
to string[]
subject string
text string
html string

Request

curl https://api.veruapis.com/v1/drafts \
  -X POST \
  -H "Authorization: Bearer vak_live_..." \
  -H "Idempotency-Key: $(uuidgen)"

Idempotency-Key is required on every write. Retrying with the same key returns the original response rather than repeating the operation, so a timeout is something you retry rather than something you investigate.

Response

Answers 201.

{
  "data": { ... },
  "meta": { "request_id": "req_01j8z9...", "timestamp": "2026-09-02T10:00:00Z" }
}

A worked example for this endpoint has not been written yet.

Errors

Every failure uses the same shape, with a stable string code you can branch on. See the error reference.

Related

POST /v1/drafts

Sends this body to your own workspace, for real. Edit it before running.