Skip to content
machinemail

Endpoints

Every MachineMail HTTP endpoint, grouped by resource.

Base URL: https://api.machinemail.dev. Resource endpoints live under /v0. Generated from openapi/machinemail.yaml (OpenAPI 3.1.0, API version 0.1.0).

Inboxes

Inboxes. inbox_id is the email address.

MethodPathSummary
GET/v0/inboxesList Inboxes
POST/v0/inboxesCreate Inbox
GET/v0/inboxes/availabilityCheck Inbox Availability
GET/v0/inboxes/searchSearch Inboxes
GET/v0/inboxes/{inbox_id}Get Inbox
PATCH/v0/inboxes/{inbox_id}Update Inbox
DELETE/v0/inboxes/{inbox_id}Delete Inbox
GET/v0/pods/{pod_id}/inboxesList Inboxes in Pod
POST/v0/pods/{pod_id}/inboxesCreate Inbox in Pod
GET/v0/pods/{pod_id}/inboxes/availabilityCheck Inbox Availability in Pod
GET/v0/pods/{pod_id}/inboxes/searchSearch Inboxes in Pod
GET/v0/pods/{pod_id}/inboxes/{inbox_id}Get Inbox in Pod
PATCH/v0/pods/{pod_id}/inboxes/{inbox_id}Update Inbox in Pod
DELETE/v0/pods/{pod_id}/inboxes/{inbox_id}Delete Inbox in Pod

Messages

Send, receive, search and manage messages.

MethodPathSummary
GET/v0/inboxes/{inbox_id}/messagesList Messages
POST/v0/inboxes/{inbox_id}/messages/batch-getBatch Get Messages
POST/v0/inboxes/{inbox_id}/messages/batch-updateBatch Update Messages
GET/v0/inboxes/{inbox_id}/messages/searchSearch Messages
POST/v0/inboxes/{inbox_id}/messages/sendSend Message
GET/v0/inboxes/{inbox_id}/messages/{message_id}Get Message
PATCH/v0/inboxes/{inbox_id}/messages/{message_id}Update Message
DELETE/v0/inboxes/{inbox_id}/messages/{message_id}Delete Message
GET/v0/inboxes/{inbox_id}/messages/{message_id}/attachments/{attachment_id}Get Attachment
GET/v0/inboxes/{inbox_id}/messages/{message_id}/attachments/{attachment_id}/downloadDownload Attachment
POST/v0/inboxes/{inbox_id}/messages/{message_id}/forwardForward Message
GET/v0/inboxes/{inbox_id}/messages/{message_id}/rawGet Raw Message
POST/v0/inboxes/{inbox_id}/messages/{message_id}/replyReply To Message
POST/v0/inboxes/{inbox_id}/messages/{message_id}/reply-allReply All Message
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/messagesList Messages in Pod
POST/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/batch-getBatch Get Messages in Pod
POST/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/batch-updateBatch Update Messages in Pod
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/searchSearch Messages in Pod
POST/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/sendSend Message in Pod
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/{message_id}Get Message in Pod
PATCH/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/{message_id}Update Message in Pod
DELETE/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/{message_id}Delete Message in Pod
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/{message_id}/attachments/{attachment_id}Get Attachment in Pod
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/{message_id}/attachments/{attachment_id}/downloadDownload Attachment in Pod
POST/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/{message_id}/forwardForward Message in Pod
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/{message_id}/rawGet Raw Message in Pod
POST/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/{message_id}/replyReply To Message in Pod
POST/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/{message_id}/reply-allReply All Message in Pod

Threads

Conversation threads.

MethodPathSummary
GET/v0/inboxes/{inbox_id}/threadsList Threads
GET/v0/inboxes/{inbox_id}/threads/searchSearch Threads
GET/v0/inboxes/{inbox_id}/threads/{thread_id}Get Thread
PATCH/v0/inboxes/{inbox_id}/threads/{thread_id}Update Thread
DELETE/v0/inboxes/{inbox_id}/threads/{thread_id}Delete Thread
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/threadsList Threads in Pod
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/threads/searchSearch Threads in Pod
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/threads/{thread_id}Get Thread in Pod
PATCH/v0/pods/{pod_id}/inboxes/{inbox_id}/threads/{thread_id}Update Thread in Pod
DELETE/v0/pods/{pod_id}/inboxes/{inbox_id}/threads/{thread_id}Delete Thread in Pod
GET/v0/pods/{pod_id}/threadsList Threads in Pod
GET/v0/pods/{pod_id}/threads/searchSearch Threads in Pod
GET/v0/pods/{pod_id}/threads/{thread_id}Get Thread in Pod
PATCH/v0/pods/{pod_id}/threads/{thread_id}Update Thread in Pod
DELETE/v0/pods/{pod_id}/threads/{thread_id}Delete Thread in Pod
GET/v0/threadsList Threads
GET/v0/threads/searchSearch Threads
GET/v0/threads/{thread_id}Get Thread
PATCH/v0/threads/{thread_id}Update Thread
DELETE/v0/threads/{thread_id}Delete Thread

Drafts

Drafts (unsent messages a person can send or delete) and scheduled sends (send_at).

MethodPathSummary
GET/v0/draftsList Drafts
GET/v0/drafts/{draft_id}Get Draft
GET/v0/inboxes/{inbox_id}/draftsList Drafts
POST/v0/inboxes/{inbox_id}/draftsCreate Draft
GET/v0/inboxes/{inbox_id}/drafts/{draft_id}Get Draft
PATCH/v0/inboxes/{inbox_id}/drafts/{draft_id}Update Draft
DELETE/v0/inboxes/{inbox_id}/drafts/{draft_id}Delete Draft
POST/v0/inboxes/{inbox_id}/drafts/{draft_id}/sendSend Draft
GET/v0/pods/{pod_id}/draftsList Drafts in Pod
GET/v0/pods/{pod_id}/drafts/{draft_id}Get Draft in Pod
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/draftsList Drafts in Pod
POST/v0/pods/{pod_id}/inboxes/{inbox_id}/draftsCreate Draft in Pod
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/drafts/{draft_id}Get Draft in Pod
PATCH/v0/pods/{pod_id}/inboxes/{inbox_id}/drafts/{draft_id}Update Draft in Pod
DELETE/v0/pods/{pod_id}/inboxes/{inbox_id}/drafts/{draft_id}Delete Draft in Pod
POST/v0/pods/{pod_id}/inboxes/{inbox_id}/drafts/{draft_id}/sendSend Draft in Pod

Trust

Trust reports for inbound messages.

MethodPathSummary
GET/v0/inboxes/{inbox_id}/messages/{message_id}/trustGet Message Trust Report
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/messages/{message_id}/trustGet Message Trust Report in Pod

Domains

Custom domains, DNS records, catch-all.

MethodPathSummary
GET/v0/domainsList Domains
POST/v0/domainsCreate Domain
GET/v0/domains/{domain_id}Get Domain
PATCH/v0/domains/{domain_id}Update Domain
DELETE/v0/domains/{domain_id}Delete Domain
GET/v0/domains/{domain_id}/domain-connectGet Domain Connect Setup
POST/v0/domains/{domain_id}/verifyVerify Domain
GET/v0/domains/{domain_id}/zone-fileGet Zone File
GET/v0/pods/{pod_id}/domainsList Domains in Pod
POST/v0/pods/{pod_id}/domainsCreate Domain in Pod
GET/v0/pods/{pod_id}/domains/{domain_id}Get Domain in Pod
PATCH/v0/pods/{pod_id}/domains/{domain_id}Update Domain in Pod
DELETE/v0/pods/{pod_id}/domains/{domain_id}Delete Domain in Pod
GET/v0/pods/{pod_id}/domains/{domain_id}/domain-connectGet Domain Connect Setup in Pod
POST/v0/pods/{pod_id}/domains/{domain_id}/verifyVerify Domain in Pod
GET/v0/pods/{pod_id}/domains/{domain_id}/zone-fileGet Zone File in Pod

Webhooks

Webhook endpoints, deliveries and replay.

MethodPathSummary
GET/v0/inboxes/{inbox_id}/webhooksList Webhooks in Inbox
POST/v0/inboxes/{inbox_id}/webhooksCreate Webhook in Inbox
GET/v0/inboxes/{inbox_id}/webhooks/{webhook_id}Get Webhook in Inbox
PATCH/v0/inboxes/{inbox_id}/webhooks/{webhook_id}Update Webhook in Inbox
DELETE/v0/inboxes/{inbox_id}/webhooks/{webhook_id}Delete Webhook in Inbox
GET/v0/inboxes/{inbox_id}/webhooks/{webhook_id}/deliveriesList Deliveries in Inbox
POST/v0/inboxes/{inbox_id}/webhooks/{webhook_id}/deliveries/{delivery_id}/replayReplay Delivery in Inbox
POST/v0/inboxes/{inbox_id}/webhooks/{webhook_id}/testSend Test Event in Inbox
GET/v0/pods/{pod_id}/webhooksList Webhooks in Pod
POST/v0/pods/{pod_id}/webhooksCreate Webhook in Pod
GET/v0/pods/{pod_id}/webhooks/{webhook_id}Get Webhook in Pod
PATCH/v0/pods/{pod_id}/webhooks/{webhook_id}Update Webhook in Pod
DELETE/v0/pods/{pod_id}/webhooks/{webhook_id}Delete Webhook in Pod
GET/v0/pods/{pod_id}/webhooks/{webhook_id}/deliveriesList Deliveries in Pod
POST/v0/pods/{pod_id}/webhooks/{webhook_id}/deliveries/{delivery_id}/replayReplay Delivery in Pod
POST/v0/pods/{pod_id}/webhooks/{webhook_id}/testSend Test Event in Pod
GET/v0/webhooksList Webhooks
POST/v0/webhooksCreate Webhook
GET/v0/webhooks/{webhook_id}Get Webhook
PATCH/v0/webhooks/{webhook_id}Update Webhook
DELETE/v0/webhooks/{webhook_id}Delete Webhook
GET/v0/webhooks/{webhook_id}/deliveriesList Deliveries
POST/v0/webhooks/{webhook_id}/deliveries/{delivery_id}/replayReplay Delivery
POST/v0/webhooks/{webhook_id}/testSend Test Event

Lists

Allow and block lists for the organization, a pod or an inbox. A non-empty allow list is allow-only: one receive/allow entry blocks mail from every sender not on it.

MethodPathSummary
GET/v0/inboxes/{inbox_id}/lists/{direction}/{type}List Entries in Inbox
POST/v0/inboxes/{inbox_id}/lists/{direction}/{type}Create List Entry in Inbox
GET/v0/inboxes/{inbox_id}/lists/{direction}/{type}/{entry}Get List Entry in Inbox
DELETE/v0/inboxes/{inbox_id}/lists/{direction}/{type}/{entry}Delete List Entry in Inbox
GET/v0/lists/{direction}/{type}List Entries
POST/v0/lists/{direction}/{type}Create List Entry
GET/v0/lists/{direction}/{type}/{entry}Get List Entry
DELETE/v0/lists/{direction}/{type}/{entry}Delete List Entry
GET/v0/pods/{pod_id}/lists/{direction}/{type}List Entries in Pod
POST/v0/pods/{pod_id}/lists/{direction}/{type}Create List Entry in Pod
GET/v0/pods/{pod_id}/lists/{direction}/{type}/{entry}Get List Entry in Pod
DELETE/v0/pods/{pod_id}/lists/{direction}/{type}/{entry}Delete List Entry in Pod

Suppressions

Addresses we will not send to.

MethodPathSummary
GET/v0/suppressionsList Suppressions
POST/v0/suppressionsAdd Suppression
GET/v0/suppressions/{email}Get Suppression
DELETE/v0/suppressions/{email}Remove Suppression

Events

Replayable event log and live streams.

MethodPathSummary
GET/v0/eventsList Events
GET/v0/events/streamStream Events (SSE)
GET/v0/events/{event_id}Get Event
GET/v0/inboxes/{inbox_id}/eventsList Events in Inbox
GET/v0/inboxes/{inbox_id}/events/{event_id}Get Event in Inbox
GET/v0/pods/{pod_id}/eventsList Events in Pod
GET/v0/pods/{pod_id}/events/{event_id}Get Event in Pod
GET/v0/wsWebSocket Event Stream

Metrics

Counts and rates.

MethodPathSummary
GET/v0/inboxes/{inbox_id}/metricsQuery Events (alias) in Inbox
GET/v0/inboxes/{inbox_id}/metrics/eventsQuery Events in Inbox
GET/v0/inboxes/{inbox_id}/metrics/ratesQuery Rates in Inbox
GET/v0/inboxes/{inbox_id}/metrics/usageQuery Usage in Inbox
GET/v0/metricsQuery Events (alias)
GET/v0/metrics/eventsQuery Events
GET/v0/metrics/ratesQuery Rates
GET/v0/metrics/usageQuery Usage
GET/v0/pods/{pod_id}/metricsQuery Events (alias) in Pod
GET/v0/pods/{pod_id}/metrics/eventsQuery Events in Pod
GET/v0/pods/{pod_id}/metrics/ratesQuery Rates in Pod
GET/v0/pods/{pod_id}/metrics/usageQuery Usage in Pod

Export

Inbox export.

MethodPathSummary
GET/v0/inboxes/{inbox_id}/exportExport Inbox
GET/v0/pods/{pod_id}/inboxes/{inbox_id}/exportExport Inbox in Pod

Organization

The authenticated organization.

MethodPathSummary
GET/v0/organizationGet Organization (alias)
GET/v0/organizationsGet Organization
PATCH/v0/organizationsUpdate Organization
GET/v0/organizations/invitationsList Invitations
POST/v0/organizations/invitationsInvite Member
DELETE/v0/organizations/invitations/{invitation_id}Revoke Invitation
POST/v0/organizations/invitations/{invitation_id}/resendResend Invitation
GET/v0/organizations/membersList Members
PATCH/v0/organizations/members/{user_id}Update Member
DELETE/v0/organizations/members/{user_id}Remove Member

Auth

The credential making the request: its organization, pod, inbox and permissions.

MethodPathSummary
GET/v0/auth/meWho Am I

Pods

Pods group inboxes, domains and webhooks.

MethodPathSummary
GET/v0/podsList Pods
POST/v0/podsCreate Pod
GET/v0/pods/{pod_id}Get Pod
PATCH/v0/pods/{pod_id}Update Pod
DELETE/v0/pods/{pod_id}Delete Pod

API Keys

Organization, pod and inbox scoped keys.

MethodPathSummary
GET/v0/api-keysList API Keys
POST/v0/api-keysCreate API Key
GET/v0/api-keys/{api_key_id}Get API Key
PATCH/v0/api-keys/{api_key_id}Update API Key
DELETE/v0/api-keys/{api_key_id}Delete API Key
GET/v0/inboxes/{inbox_id}/api-keysList API Keys in Inbox
POST/v0/inboxes/{inbox_id}/api-keysCreate API Key in Inbox
GET/v0/inboxes/{inbox_id}/api-keys/{api_key_id}Get API Key in Inbox
PATCH/v0/inboxes/{inbox_id}/api-keys/{api_key_id}Update API Key in Inbox
DELETE/v0/inboxes/{inbox_id}/api-keys/{api_key_id}Delete API Key in Inbox
GET/v0/pods/{pod_id}/api-keysList API Keys in Pod
POST/v0/pods/{pod_id}/api-keysCreate API Key in Pod
GET/v0/pods/{pod_id}/api-keys/{api_key_id}Get API Key in Pod
PATCH/v0/pods/{pod_id}/api-keys/{api_key_id}Update API Key in Pod
DELETE/v0/pods/{pod_id}/api-keys/{api_key_id}Delete API Key in Pod

Inbound

Raw message injection and the inbound webhooks of the mail providers.

MethodPathSummary
POST/inbound/rawInject Raw Message
POST/inbound/resendResend Webhook
POST/inbound/sesSES Notification (SNS)

Health

Liveness and readiness.

MethodPathSummary
GET/healthLiveness
GET/health/readyReadiness

OpenAPI

This document.

MethodPathSummary
GET/v0/openapi.jsonGet OpenAPI Document

Agent Auth

The MachineMail authorization server: OAuth sign-in for apps and MCP clients (authorization code with PKCE, client registration) and the auth.md protocol for agent onboarding.

MethodPathSummary
GET/.well-known/jwks.jsonJSON Web Key Set
GET/.well-known/oauth-authorization-serverOAuth Authorization Server Metadata
GET/.well-known/oauth-protected-resourceOAuth Protected Resource Metadata
GET/.well-known/oauth-protected-resource/{path}OAuth Protected Resource Metadata (Path-Suffixed)
POST/agent/event/notifyReceive Security Event Token
POST/agent/identityRegister Agent Identity
POST/agent/identity/claimStart Claim Ceremony
GET/auth.mdAgent Onboarding Document
GET/oauth2/authorizeAuthorization Endpoint
POST/oauth2/registerRegister OAuth Client
POST/oauth2/revokeRevoke Token
POST/oauth2/tokenToken Endpoint

Agent Registrations

Agent registrations bound to the organization.

MethodPathSummary
GET/v0/agent-registrationsList Agent Registrations
GET/v0/agent-registrations/{agent_id}Get Agent Registration
DELETE/v0/agent-registrations/{agent_id}Revoke Agent Registration

Connected Apps

Apps and MCP clients connected with OAuth.

MethodPathSummary
GET/v0/oauth-grantsList Connected Apps
DELETE/v0/oauth-grants/{grant_id}Disconnect App

MCP

Remote MCP server (Streamable HTTP) and its description document.

CLI Auth

Signing the CLI in with the browser (RFC 8628 device authorization grant).

MethodPathSummary
GET/auth/cli/devicePreview CLI Sign-In
POST/auth/cli/device/approveApprove CLI Sign-In
POST/auth/cli/device/codeStart CLI Sign-In
POST/auth/cli/device/denyDeny CLI Sign-In
POST/auth/cli/device/tokenPoll CLI Sign-In

Dashboard Auth

Cookie sessions for the dashboard.

MethodPathSummary
GET/auth/authkitLegacy Sign-In Redirect (Deprecated)
GET/auth/callbackSign-in Callback
GET/auth/claimPreview Claim
POST/auth/claimComplete Claim
GET/auth/configSign-in Options
POST/auth/email/startSend Sign-in Code
POST/auth/email/verifyVerify Sign-in Code
GET/auth/first-keyGet First API Key
GET/auth/invitations/{token}Preview Invitation
POST/auth/loginLog In (Deprecated)
POST/auth/logoutLog Out
GET/auth/magicRedeem Magic Link
POST/auth/magic-linkRequest Magic Link
GET/auth/meCurrent User
GET/auth/oauth/authorizePreview App Authorization
POST/auth/oauth/authorize/approveApprove App Authorization
POST/auth/oauth/authorize/denyDeny App Authorization
GET/auth/organizationsList My Organizations
POST/auth/organizationsCreate Organization
POST/auth/organizations/switchSwitch Organization
GET/auth/pendingGet Sign-in in Progress
POST/auth/pending/organizationChoose Organization
POST/auth/pending/verifyVerify Email
POST/auth/signupSign Up (Deprecated)
GET/auth/social/{provider}Sign In with a Social Provider