Skip to main content

Send Email

curl -X POST https://inbound.new/api/e2/emails \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "Welcome to our service",
    "html": "<h1>Welcome!</h1><p>Thanks for joining us.</p>",
    "text": "Welcome! Thanks for joining us."
  }'
{
  "from": "[email protected]",
  "to": ["[email protected]"],
  "subject": "Welcome to our service",
  "html": "<h1>Welcome!</h1><p>Thanks for joining us.</p>",
  "text": "Welcome! Thanks for joining us.",
  "cc": ["[email protected]"],
  "bcc": ["[email protected]"],
  "reply_to": ["[email protected]"],
  "headers": {
    "X-Custom-Header": "value"
  },
  "attachments": [
    {
      "filename": "report.pdf",
      "content": "base64-encoded-content",
      "content_type": "application/pdf"
    }
  ],
  "tags": [
    {
      "name": "campaign",
      "value": "welcome-series"
    }
  ],
  "scheduled_at": "2024-12-25T10:00:00Z",
  "timezone": "America/New_York"
}

POST /api/e2/emails

Send an email immediately or schedule it for later delivery.

Request Parameters

from
string
required
Sender email address. Must be from a verified domain.Example: "[email protected]" or "John Doe <[email protected]>"
to
string | string[]
required
Recipient email address(es). Can be a single string or array.Example: "[email protected]" or ["[email protected]", "[email protected]"]
subject
string
required
Email subject line.
html
string
HTML content of the email. Either html or text must be provided.
text
string
Plain text content of the email. Either html or text must be provided.
cc
string | string[]
CC recipients. Can be a single string or array.
bcc
string | string[]
BCC recipients. Can be a single string or array.
reply_to
string | string[]
Reply-To addresses. Can be a single string or array.
headers
object
Custom email headers as key-value pairs.Example: { "X-Custom-Header": "value" }
attachments
array
Array of attachment objects.
tags
array
Array of tag objects for categorizing and tracking emails.
scheduled_at
string
ISO 8601 date string or natural language for scheduling (e.g., "tomorrow at 9am", "2024-12-25T10:00:00Z").When provided, the email will be scheduled instead of sent immediately.
timezone
string
Timezone for natural language parsing (e.g., "America/New_York", "UTC").Default: "UTC"

Response

id
string
Unique identifier for the email.
message_id
string
RFC 2822 Message-ID assigned by the mail server (only for sent emails).
scheduled_at
string
ISO 8601 timestamp when the email is scheduled to be sent (only for scheduled emails).
status
string
Email status: "sent" or "scheduled".
timezone
string
Timezone used for scheduling (only for scheduled emails).
{
  "id": "eml_abc123",
  "message_id": "<[email protected]>"
}

List Emails

curl -X GET "https://inbound.new/api/e2/emails?type=all&limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /api/e2/emails

List all email activity (sent, received, and scheduled) with comprehensive filtering options.

Query Parameters

type
string
default:"all"
Filter by email type: all, sent, received, or scheduled.
status
string
Filter by status: all, delivered, pending, failed, bounced, scheduled, cancelled, unread, read, or archived.Note: unread, read, and archived only apply to received emails.
time_range
string
default:"30d"
Filter by time range: 1h, 24h, 7d, 30d, 90d, or all.
Search query to filter emails by subject, sender, or recipient. Case-insensitive partial match.
domain
string
Filter by domain. Accepts domain ID (e.g., dom_xxx) or domain name (e.g., example.com).
address
string
Filter by email address. Accepts address ID (e.g., addr_xxx) or raw email address.
limit
integer
default:"50"
Maximum number of emails to return (1-100).
offset
integer
default:"0"
Number of emails to skip for pagination.

Response

data
array
Array of email objects matching the query.
pagination
object
Pagination metadata.
filters
object
Applied filters for this query.
{
  "data": [
    {
      "id": "eml_abc123",
      "type": "sent",
      "message_id": "<[email protected]>",
      "from": "[email protected]",
      "from_name": null,
      "to": ["[email protected]"],
      "cc": [],
      "subject": "Welcome to our service",
      "preview": "Welcome! Thanks for joining us.",
      "status": "delivered",
      "created_at": "2024-01-15T10:30:00Z",
      "sent_at": "2024-01-15T10:30:01Z",
      "scheduled_at": null,
      "has_attachments": false,
      "attachment_count": 0,
      "thread_id": "thread_xyz789"
    }
  ],
  "pagination": {
    "limit": 50,
    "offset": 0,
    "total": 1,
    "has_more": false
  },
  "filters": {
    "type": "all",
    "time_range": "30d"
  }
}

Get Email

curl -X GET https://inbound.new/api/e2/emails/eml_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /api/e2/emails/:id

Retrieve a single email by ID. Works for sent, received, and scheduled emails.

Response

object
string
Object type: "email".
id
string
Unique identifier for the email.
type
string
Email type: sent, received, or scheduled.
from
string
Sender email address.
to
string[]
Array of recipient email addresses.
cc
string[]
Array of CC recipient email addresses.
bcc
string[]
Array of BCC recipient email addresses.
reply_to
string[]
Array of Reply-To addresses.
subject
string
Email subject line.
html
string
HTML content of the email.
text
string
Plain text content of the email.
status
string
Current status: delivered, pending, failed, bounced, scheduled, or cancelled.
created_at
string
ISO 8601 timestamp when the email was created/received.
sent_at
string
ISO 8601 timestamp when the email was sent.
scheduled_at
string
ISO 8601 timestamp when the email is scheduled to be sent.
has_attachments
boolean
Whether the email has any attachments.
attachments
array
Array of attachment metadata objects.
is_read
boolean
Whether the email has been read (only for received emails).
thread_id
string
ID of the thread this email belongs to.
thread_position
number
Position in the thread (0 = first message).
headers
object
Email headers as key-value pairs.
tags
array
Array of tag objects (only for sent emails).
{
  "object": "email",
  "id": "eml_abc123",
  "type": "sent",
  "from": "[email protected]",
  "to": ["[email protected]"],
  "cc": [],
  "bcc": [],
  "reply_to": null,
  "subject": "Welcome to our service",
  "html": "<h1>Welcome!</h1>",
  "text": "Welcome!",
  "status": "delivered",
  "created_at": "2024-01-15T10:30:00Z",
  "sent_at": "2024-01-15T10:30:01Z",
  "scheduled_at": null,
  "has_attachments": false,
  "attachments": [],
  "thread_id": "thread_xyz789",
  "thread_position": 0,
  "headers": {},
  "tags": []
}

Reply to Email

curl -X POST https://inbound.new/api/e2/emails/eml_abc123/reply \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "[email protected]",
    "text": "Thanks for reaching out!",
    "html": "<p>Thanks for reaching out!</p>"
  }'

POST /api/e2/emails/:id/reply

Reply to an email or thread. Accepts either an email ID or thread ID (replies to latest message in thread).

Request Parameters

from
string
required
Sender email address. Must be from a verified domain.
to
string | string[]
Recipient email address(es). Defaults to original sender if not provided.
subject
string
Email subject. Defaults to Re: [original subject] if not provided.
html
string
HTML content of the reply. Either html or text must be provided.
text
string
Plain text content of the reply. Either html or text must be provided.
headers
object
Custom email headers as key-value pairs.
attachments
array
Array of attachment objects.
reply_all
boolean
Include original CC recipients. Default: false.
tags
array
Array of tag objects for categorizing the reply.

Response

id
string
Unique identifier for the reply email.
message_id
string
RFC 2822 Message-ID of the reply.
aws_message_id
string
AWS SES message ID.
replied_to_email_id
string
ID of the email being replied to.
replied_to_thread_id
string
ID of the thread this reply belongs to.
is_thread_reply
boolean
Whether the ID provided was a thread ID.
{
  "id": "eml_reply123",
  "message_id": "<[email protected]>",
  "aws_message_id": "01000abc123def456",
  "replied_to_email_id": "eml_abc123",
  "replied_to_thread_id": "thread_xyz789",
  "is_thread_reply": false
}

Retry Email Delivery

curl -X POST https://inbound.new/api/e2/emails/eml_abc123/retry \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint_id": "ep_xyz789"
  }'

POST /api/e2/emails/:id/retry

Retry delivery of a received email. Can retry to a specific endpoint, retry a specific failed delivery, or retry to all configured endpoints.

Request Parameters

endpoint_id
string
Endpoint ID to retry delivery to. If not provided, retries to all configured endpoints.
delivery_id
string
Specific delivery ID to retry. If provided, retries that specific delivery.

Response

success
boolean
Whether the retry was successful.
message
string
Human-readable message about the retry result.
delivery_id
string
ID of the delivery that was retried.
{
  "success": true,
  "message": "Email re-delivery initiated successfully",
  "delivery_id": "dlv_abc123"
}

Update Email

curl -X PATCH https://inbound.new/api/e2/emails/eml_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "is_read": true,
    "is_archived": false
  }'

PATCH /api/e2/emails/:id

Update metadata for a received email. Supports marking emails as read/unread and archived/unarchived.

Request Parameters

is_read
boolean
Mark email as read or unread.
is_archived
boolean
Mark email as archived or unarchived.

Response

object
string
Object type: "email".
id
string
Unique identifier for the email.
is_read
boolean
Whether the email is marked as read.
is_archived
boolean
Whether the email is archived.
updated_at
string
ISO 8601 timestamp of when the email was last updated.
{
  "object": "email",
  "id": "eml_abc123",
  "is_read": true,
  "is_archived": false,
  "updated_at": "2024-01-15T10:35:00Z"
}

Cancel Scheduled Email

curl -X DELETE https://inbound.new/api/e2/emails/eml_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

DELETE /api/e2/emails/:id

Cancel a scheduled email by ID. Only works for emails that haven’t been sent yet.

Response

success
boolean
Whether the cancellation was successful.
message
string
Human-readable message about the cancellation result.
id
string
ID of the cancelled email.
{
  "success": true,
  "message": "Scheduled email cancelled successfully",
  "id": "eml_abc123"
}

Build docs developers (and LLMs) love