---
title: "Send raw MIME email"
method: POST
path: "/emails/raw"
tags: ["Emails"]
---

# Send raw MIME email

`POST /emails/raw`

Send a pre-formatted RFC 2822 MIME message. Use this for advanced
use cases or when migrating from systems that generate raw email content.

**Important:** The `rawMessage` field must be base64-encoded. Your raw MIME
message (with headers like From, To, Subject, Content-Type, followed by a
blank line and the body) must be encoded to base64 before sending.

## Request body

- object
  - `from` string, required — Sender email address. Must be from a verified domain. **Supported formats:** - Email only: `hello@yourdomain.com` - With display name: `Acme <hello@yourdomain.com>` - With quoted name: `"Acme Support" <support@yourdomain.com>` The domain portion must match a verified sending domain in your account.
  - `to` string[], required — Recipient email addresses
  - `rawMessage` string, required — Base64-encoded RFC 2822 MIME message. **You must base64-encode your raw email before sending.** The raw email should include headers (From, To, Subject, Content-Type, etc.) followed by a blank line and the message body.
  - `bounce` boolean, nullable — Whether this is a bounce message (accepts null)

## Response `200`

Email accepted

- SendEmailResponse
  - `success` true, required
  - `data` object, required
    - `id` string, required — Unique message identifier (token)
    - `messageId` string — SMTP Message-ID header value
    - `to` string[], required — List of recipient addresses
    - `status` 'pending' | 'sent', required — Current delivery status
    - `sandbox` boolean — Whether this email was sent in sandbox mode. Only present (and true) for sandbox emails sent from @arkhq.io addresses.
  - `meta` ApiMeta, required
    - `requestId` string, required — Unique request identifier for debugging and support

## Other responses

- `400` — Invalid request parameters
- `401` — Invalid or missing API key
- `402` — Payment required - insufficient credits or billing not configured. This error occurs when: - Your organization doesn't have billing configured - Your credit balance is too low to complete the request **Error codes:** - `billing_not_configured` - Set up billing at arkhq.io/org/billing - `insufficient_balance` - Add credits to continue sending - `billing_error` - Billing system error, try again
- `422` — Request understood but cannot be processed
- `429` — Too many requests. This can be either: - **Rate limit exceeded** (`rate_limit_exceeded`): Too many API requests per second. Includes `X-RateLimit-*` headers. - **Send limit exceeded** (`send_limit_exceeded`): Hourly email sending quota exceeded. The request is rejected and no emails are sent or billed. Includes `X-SendLimit-*` headers. Check the `error.code` field to distinguish between the two.
- `500` — Internal server error

---

[API](https://skmtc.net/arkhq-io/apis/ark-email-api.md) · [All operations](https://skmtc.net/arkhq-io/apis/ark-email-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/arkhq-io/ark-email-api/revisions/98a90852ffca/schema)
