MillionSend Docs

Create an inbox

POST
/inboxes

An address that receives into threads, on one of your verified domains (receiving on, or forwarding: true) or, with email_address omitted, an address on the shared inbox domain that needs no DNS: username names it, or it is random. domain_id takes a row of GET /domains instead of email_address: the team's shared subdomain, or one of your domains with username. It never expires unless expires_in says so. Returns the full inbox. MillionSend extensions: username, domain_id, kind (agent by default), expires_in and safety.

Request Body

application/json
  1. body
email_address?string

An address on one of your verified domains; it needs receiving on unless forwarding is true. MillionSend extension: omitted, the inbox gets an address on the shared inbox domain (no DNS), named by username or random, unless domain_id names one of your domains.

domain_id?string

MillionSend extension: the id of a GET /domains row, instead of email_address. The team's subdomain of the shared domain (the row with shared: true) is the same as leaving email_address out; one of your verified domains needs username, the part before the @.

Formatuuid
username?string

MillionSend extension: with email_address omitted, the part before the @ of the shared-domain address, trimmed and lowercased: 1-64 letters, digits, dots, hyphens and underscores, starting and ending with a letter or digit, never cut short. Reserved names (postmaster, abuse, admin, security, support, noreply, no-reply, billing, hostmaster, webmaster, mailer-daemon, root, compared without dots, hyphens and underscores), the fwd- prefix and brand look-alikes answer 422, and one already in use 409. Where the instance reviews names, a chosen one is reviewed first: 503 with retry-after while that review is unavailable. Omitted: a random one. With a domain_id of one of your domains, it is the part before the @ there, required, under email_address's rule.

name?string

Internal name, 1-320 characters, so any address fits. Defaults to email_address.

from_name?string

The name recipients see, a plain name (not "Name "); "" leaves it unset. On the shared domain it may not imitate a brand, and it is reviewed like username.

forwarding?boolean

Receive without an MX record: mail forwarded to the inbox's receiving_address lands in it

kind?string

MillionSend extension: agent (default; threads, screening, drafts that wait for approval) or human (a team mailbox)

Value in"agent""human"
expires_in?string

MillionSend extension: a lifetime counted from now, "1h" to "365d"; omitted or null, the inbox never expires. A shared-domain inbox left unused for 90 days (no mail in or out, no API calls on it) is deleted either way.

safety?

MillionSend extension: safety rules over the kind's defaults

Response Body

Inbox created

application/json
  1. response
object*"inbox"
Value in"inbox"
id*string
Formatuuid
name*string
email_address*string
domain_id*string

A shared address's is its team's shared subdomain: the GET /domains row with shared: true

Formatuuid
receiving_address*string
from_name*string
unread*integer

Threads with an unread message

drafts*integer

Unsent drafts

last_received*string
created_at*string
kind*string
Value in"agent""human"
shared*boolean

On the shared inbox domain

expires_at*string
quarantined*integer

Held messages not yet released

pending_approval*integer

Drafts waiting for a person

Example Request
curl -X POST 'https://api.millionsend.com/inboxes' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "object": "inbox",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "name": "string",  "email_address": "string",  "domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",  "receiving_address": "string",  "from_name": "string",  "unread": 0,  "drafts": 0,  "last_received": "string",  "created_at": "string",  "kind": "agent",  "shared": true,  "expires_at": "string",  "quarantined": 0,  "pending_approval": 0}