Skip to content
AI Inbx
Esc
navigateopen⌘Jpreview
On this page

AI Inbx

Email infrastructure for software that holds conversations — send, receive, thread, and reply over one API.

AI Inbx provides APIs for sending email, receiving messages, and managing conversations. Use it to build transactional email, customer communication, or email agents with verified domains and connected Gmail or Outlook accounts.

Each email belongs to a thread. Reply with a thread ID and message content; the API derives the sender, recipients, subject, and reply headers. Signed webhooks notify your application about incoming messages and delivery outcomes.

Read Core concepts for the resource model, or choose a framework from Integrations.

What it does

Send

HTML or text, attachments, custom headers, idempotent retries, and sends scheduled up to 30 days out.

Receive

Inbound mail on any domain you can publish DNS for, or through a connected Gmail or Outlook mailbox, delivered as webhooks.

Thread

Replies land on the conversation they belong to, matched on headers and quoted content rather than subject alone.

Find conversations

List threads by subject or participant, filter by mailbox or space, and paginate through their messages.

Suppress

Bounces, complaints, and unsubscribes stop the next send automatically, per list or across the org.

Pace

Sending windows, rate ceilings, and a queue you can inspect and release by hand.

Choose your starting point

You want to Start here
Send from a domain you control Quickstart
Connect an existing Gmail or Outlook account Mailboxes
Provide email for multiple customers Spaces
Build an automated email workflow Email agents
Prepare an integration for production Production guide
Give a coding agent the API contract Documentation for agents

Send an email

Install an SDK, set AI_INBX_API_KEY, and configure a verified sending domain or connected mailbox. Replace the example addresses with your sender and a recipient you control.

import AIInbx from "aiinbx"

const aiinbx = new AIInbx() // reads AI_INBX_API_KEY

const email = await aiinbx.emails.send({
  from: { name: "Ada", address: "ada@example.com" },
  to: "grace@example.com",
  subject: "Quick question",
  text: "Does Thursday still work for the review?",
})

console.log(email.id, email.thread_id)
from aiinbx import AIInbx

with AIInbx() as client:  # reads AI_INBX_API_KEY
    email = client.emails.send(
        {
            "from_": {"name": "Ada", "address": "ada@example.com"},
            "to": ["grace@example.com"],
            "subject": "Quick question",
            "text": "Does Thursday still work for the review?",
        }
    )

print(email["id"], email["thread_id"])
curl https://api.aiinbx.com/api/v2/emails \
  -H "Authorization: Bearer $AI_INBX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Ada <ada@example.com>",
    "to": "grace@example.com",
    "subject": "Quick question",
    "text": "Does Thursday still work for the review?"
  }'

When Grace replies, an email.received webhook arrives carrying the same thread_id, and threads.reply continues the conversation without you rebuilding a single header.

Where to go next

Last updated on September 9, 2026

Was this page helpful?