Questions · Published 2026-10-21 · Updated 2026-10-21 · AgentiSend
How do I receive email at my own domain?
Receive email at your own domain by turning receiving on, publishing the one MX record, and reading each arrival as email.received.
Receive email at your own domain by turning receiving on, publishing the one MX record, and reading each arrival as email.received. Receiving is open: turn it on for a verified domain, publish the MX record its page shows, and mail to that domain arrives on your account.
Turn receiving on
POST /domains adds the name. PATCH /domains/{id} sets capabilities.receiving to enabled. Sending can stay enabled. A domain with both capabilities disabled is refused, because it would have no use.
curl -sS -X PATCH https://api.agentisend.com/domains/9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42 \
-H "Authorization: Bearer $AGENTISEND_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{}'200
{
"capabilities": {
"receiving": "enabled",
"sending": "enabled"
},
"click_tracking": false,
"created_at": "2026-09-04T09:14:00.000Z",
"dkim_selector": "example",
"id": "9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42",
"inbound_hold_mode": "monitor",
"inbound_policy": "open",
"inbound_refused_count": -9007199254740991,
"name": "example",
"object": "domain",
"open_tracking": false,
"provider_hints": {
"cloudflare": "example",
"godaddy": "example",
"namecheap": "example",
"route53": "example"
},
"recent_events": [],
"records": [],
"region": "us",
"return_path_subdomain": "example",
"status": "pending",
"tls_mode": "opportunistic",
"tracking_issues": [],
"tracking_subdomain": "example",
"verified_at": "2026-09-04T09:14:00.000Z",
"warnings": [],
"zone": "example"
}The one MX record
GET /domains/{id} then includes one MX record at priority 10. Publish that host on the name. If the name already receives mail somewhere else, add a subdomain and turn receiving on there, so the existing mail host stays in place. A domain that is not verified, or has receiving off, is refused at the door and the message is not stored. A stored message is at most 10 MB, with up to 20 recipients on your domain.
curl -sS -X GET https://api.agentisend.com/domains/9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42 \
-H "Authorization: Bearer $AGENTISEND_API_KEY"200
{
"capabilities": {
"receiving": "enabled",
"sending": "enabled"
},
"click_tracking": false,
"created_at": "2026-09-04T09:14:00.000Z",
"dkim_selector": "example",
"id": "9c8f8f0e-3d1a-4d3f-9a1e-2b7c1a0f5e42",
"inbound_hold_mode": "monitor",
"inbound_policy": "open",
"inbound_refused_count": -9007199254740991,
"name": "example",
"object": "domain",
"open_tracking": false,
"provider_hints": {
"cloudflare": "example",
"godaddy": "example",
"namecheap": "example",
"route53": "example"
},
"recent_events": [],
"records": [],
"region": "us",
"return_path_subdomain": "example",
"status": "pending",
"tls_mode": "opportunistic",
"tracking_issues": [],
"tracking_subdomain": "example",
"verified_at": "2026-09-04T09:14:00.000Z",
"warnings": [],
"zone": "example"
}What arrives
POST /webhooks subscribes to email.received. The event carries the sender, the recipients, the subject, the message id and the attachment names. The body is a separate read, GET /emails/receiving/{id}. Can an AI agent receive email? is the short status of this path. Who is allowed to write is How do I limit who can email my AI agent?.
Next
Written by the AgentiSend team.