Skip to content
Hissline

APIEmail addresses for agents

Email API for AI agents,
built to go multichannel.

Inboxes in, structured events out.

Free tier, about 50 requests/day. No credit card. Poll inbound JSON on the free tier.

Free tier~50 requests/day, no card
HMAC-signedWebhook deliveries you can verify
OpenAPI specTyped. Generate any client.
Domainstail.me now, your domain later
POST /email_addresses

One call opens an address. The mail comes back as JSON.

No inbox to scrape. Create the address, then poll it or point a webhook at it.

  • Create a random address, a chosen local part, or a batch.
  • Inbound mail arrives as JSON: sender, subject, body, attachments.
  • Poll the inbound list on any plan. Add a signed webhook on Pro.
  • Send outbound from that address on Business. Bring your own domain on higher plans.
curl -X POST https://app.mailhook.co/api/v1/email_addresses/random \
  -H "X-Agent-ID: $AGENT_ID" \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain_id":"dom_…"}'
# X-Webhook-Signature: HMAC-SHA256 of the raw body
{
  "event": "inbound_email",
  "data": {
    "email_address": "[email protected]",
    "from": "[email protected]",
    "subject": "Your verification code",
    "text_body": "Your code is 482913."
  }
}
curl -X POST https://app.mailhook.co/api/v1/outbound_emails \
  -H "X-Agent-ID: $AGENT_ID" \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email_address_id":"ea_…","to":"[email protected]","subject":"Received","text_body":"Got it."}'
How it works

Three stations on one line.

01 · Provision

Open an address

One API call gives an agent its own email address, on a tail.me domain or yours.

POST /email_addresses
02 · Parse

Turn the mail into JSON

Inbound messages are parsed into sender, subject, body, and attachments.

inbound_email
03 · Deliver

Out to your agent

Poll the inbound list, or take a signed webhook. Send a reply outbound when your plan includes it.

webhook · poll
What you can do

Email in. JSON out. Mail back.

Addresses for agents, inbound as JSON, outbound from the same address, and domains you already own.

Live

Inbound email

An address per agent. Sender, subject, body, and attachments, parsed.

Webhooks

Signed JSON when a message arrives, on Pro and above. Every plan can poll.

Outbound

Send from the agent's address through the API, on Business and above.

Custom domains

A tail.me address on every plan. Your own domain on higher plans.

Security

Signed deliveries. Keys on every call.

HMAC on every webhook

SHA-256 over the raw body, in the X-Webhook-Signature header. Recompute it and reject a mismatch.

OpenSSL::HMAC.hexdigest("SHA256", secret, raw_body)
# header: X-Webhook-Signature

Private to your API key

Every call sends X-Agent-ID and X-API-Key. An address is not a public inbox.

-H "X-API-Key: …"

Put your first agent
on the line.

Free tier, about 50 requests a day. Create an address with one API call.

curl
curl -X POST $API/email_addresses/random \
  -H "X-Agent-ID: $AGENT_ID" \
  -H "X-API-Key: $API_KEY" \
  -d '{"domain_id":"dom_…"}'