Objects
Every object the API accepts or returns, field by field.
Endpoint pages link here for nested objects. Fields marked required are always present in responses and must be sent in requests.
AgentIdentityRequest
type"anonymous" | "service_auth" | "identity_assertion"Requirednamestringclient_namestringlogin_hintstringassertion_typestringassertionstringAgentIdentityResponse
registration_idstringRequiredagent_idstringRequiredregistration_type"anonymous" | "service_auth" | "identity_assertion"Requiredidentity_assertionstringassertion_expiresstring (date-time)scopes("inboxes.read" | "inboxes.write" | "messages.read" | "messages.send" | "messages.write" | "webhooks.read" | "webhooks.write" | "domains.read" | "domains.write" | "lists.read" | "lists.write" | "metrics.read" | "pods.read" | "pods.write" | "api_keys.read" | "api_keys.write")[]pre_claim_scopes("inboxes.read" | "inboxes.write" | "messages.read" | "messages.send" | "messages.write" | "webhooks.read" | "webhooks.write" | "domains.read" | "domains.write" | "lists.read" | "lists.write" | "metrics.read" | "pods.read" | "pods.write" | "api_keys.read" | "api_keys.write")[]post_claim_scopes("inboxes.read" | "inboxes.write" | "messages.read" | "messages.send" | "messages.write" | "webhooks.read" | "webhooks.write" | "domains.read" | "domains.write" | "lists.read" | "lists.write" | "metrics.read" | "pods.read" | "pods.write" | "api_keys.read" | "api_keys.write")[]claim_urlstringclaim_tokenstringclaim_token_expiresstring (date-time)claimobjectinboxobjectAgentRegistration
An agent registration. Hashes and tokens are never included.
agent_idstringRequiredregistration_idstringRequiredregistration_type"anonymous" | "service_auth" | "identity_assertion"Requiredstatus"pending_claim" | "claimed" | "revoked"Requirednamestringclientstringorganization_idstringinbox_idstringemailstringissuerstringagent_platformstringcreated_atstring (date-time)Requiredclaimed_atstring (date-time)revoked_atstring (date-time)expires_atstring (date-time)ApiKeyPermissions
Permissions of the key, as { "<name>": true }. Only names set to true are granted; false is the same as leaving the name out. An omitted (or null) permission object means full access for the key scope, like {"*": true}; neither includes inbound_raw, which must be granted by name. A key can only be given permissions its creator has. Another name set to true (for example AgentMail’s calendar_*, app_* or account_update, which MachineMail does not support) is a 400.
*booleaninbox_readbooleaninbox_createbooleaninbox_updatebooleaninbox_deletebooleanthread_readbooleanthread_deletebooleanmessage_readbooleanmessage_replybooleanmessage_sendbooleanmessage_updatebooleanmessage_deletebooleanlabel_spam_readbooleanlabel_blocked_readbooleanlabel_unauthenticated_readbooleanlabel_trash_readbooleandraft_readbooleandraft_createbooleandraft_updatebooleandraft_deletebooleandraft_sendbooleanwebhook_readbooleanwebhook_createbooleanwebhook_updatebooleanwebhook_deletebooleandomain_readbooleandomain_createbooleandomain_updatebooleandomain_deletebooleanlist_entry_readbooleanlist_entry_createbooleanlist_entry_deletebooleanmetrics_readbooleanapi_key_readbooleanapi_key_createbooleanapi_key_updatebooleanapi_key_deletebooleanpod_readbooleanpod_createbooleanpod_updatebooleanpod_deletebooleaninbound_rawbooleanAttachment
attachment_idstringRequiredfilenamestringsizeintegerRequiredcontent_typestringcontent_dispositionstringcontent_idstringAttachmentResponse
attachment_idstringRequiredfilenamestringsizeintegerRequiredcontent_typestringcontent_dispositionstringcontent_idstringdownload_urlstringRequiredexpires_atstring (date-time)RequiredAuthConfigResponse
How people sign in to this server.
workosbooleanRequiredemail_codebooleanRequiredproviders("google" | "github" | "apple" | "microsoft")[]Requiredmagic_linkbooleanRequiredpasswordbooleanRequiredauthkitbooleanRequiredDeprecatedAuthorizationServerMetadata
RFC 8414 Authorization Server Metadata (as the MCP authorization specification asks for it) plus the auth.md agent_auth block.
resourcestringRequiredauthorization_serversstring[]Requiredscopes_supported("inboxes.read" | "inboxes.write" | "messages.read" | "messages.send" | "messages.write" | "webhooks.read" | "webhooks.write" | "domains.read" | "domains.write" | "lists.read" | "lists.write" | "metrics.read" | "pods.read" | "pods.write" | "api_keys.read" | "api_keys.write")[]Requiredbearer_methods_supportedstring[]RequiredissuerstringRequiredauthorization_endpointstringRequiredtoken_endpointstringRequiredregistration_endpointstringRequiredrevocation_endpointstringRequireddevice_authorization_endpointstringRequiredjwks_uristringRequiredservice_documentationstringRequiredgrant_types_supportedstring[]Requiredresponse_types_supportedstring[]Requiredresponse_modes_supportedstring[]Requiredcode_challenge_methods_supportedstring[]Requiredtoken_endpoint_auth_methods_supportedstring[]Requiredrevocation_endpoint_auth_methods_supportedstring[]Requiredclient_id_metadata_document_supportedbooleanRequiredauthorization_response_iss_parameter_supportedbooleanRequiredagent_authobjectRequiredBatchGetMessagesRequest
message_idsstring[]RequiredBatchGetMessagesResponse
limitintegerRequiredcountintegerRequiredBatchUpdateMessagesRequest
message_idsstring[]Requiredadd_labelsstring | string[]remove_labelsstring | string[]BatchUpdateMessagesResponse
limitintegerRequiredcountintegerRequiredBearerApiKey
An API key presented as a bearer token in the Authorization header.
type"bearer"Requiredapi_key_idstringRequiredprefixstringRequirednamestringRequiredpod_idstringinbox_idstringpermissionsApiKeyPermissionscreated_atstring (date-time)Requiredexpires_atstring (date-time)organization_idstringRequiredused_atstring (date-time)revoked_atstring (date-time)updated_atstring (date-time)RequiredBounce
inbox_idstringRequiredthread_idstringRequiredmessage_idstringRequiredtimestampstring (date-time)RequiredtypestringRequiredsub_typestringRequiredClaimBlock
RFC 8628-shaped claim ceremony block.
user_codestringRequiredverification_uristringRequiredexpires_inintegerRequiredintervalintegerRequiredClaimCompleteRequest
user_codestringRequiredclaim_attempt_tokenstringClaimCompleteResponse
The claimed registration plus the moved inbox.
agent_idstringRequiredregistration_idstringRequiredregistration_type"anonymous" | "service_auth" | "identity_assertion"Requiredstatus"claimed"Requirednamestringclientstringorganization_idstringRequiredinbox_idstringemailstringissuerstringagent_platformstringcreated_atstring (date-time)Requiredclaimed_atstring (date-time)revoked_atstring (date-time)expires_atstring (date-time)inboxobjectClaimPreviewResponse
An agent registration plus the claim details.
agent_idstringRequiredregistration_idstringRequiredregistration_type"anonymous" | "service_auth" | "identity_assertion"Requiredstatus"pending_claim" | "claimed" | "revoked"Requirednamestringclientstringorganization_idstringinbox_idstringemailstringissuerstringagent_platformstringcreated_atstring (date-time)Requiredclaimed_atstring (date-time)revoked_atstring (date-time)expires_atstring (date-time)claim_emailstringuser_code_expires_atstring (date-time)sandbox_inboxobjectClaimStartRequest
Send claim_token (and optionally email), or agent_id with Bearer proof.
claim_tokenstringemailstringagent_idstringregistration_idstringClaimStartResponse
The claim_attempt block and the flat user_code, verification_uri, expires_in and interval carry the same values.
registration_idstringRequiredagent_idstringRequiredclaim_attempt_idstringRequiredstatus"initiated"Requiredexpires_atstring (date-time)Requireduser_codestringRequiredverification_uristringRequiredexpires_inintegerRequiredintervalintegerRequiredCliDeviceAuthorization
A pending CLI sign-in, as the approval page shows it. Never includes the device code.
user_codestringRequireddevice_idstringRequiredclient_idstringRequiredclient_namestring | nullRequiredhostnamestring | nullRequiredkey_namestringRequiredpermissionsstring[]Requiredcreated_atstring (date-time)Requiredexpires_atstring (date-time)RequiredCliDeviceCodeRequest
client_idstringRequiredclient_namestringhostnamestringCliDeviceCodeResponse
RFC 8628 device authorization response.
device_codestringRequireduser_codestringRequiredverification_uristringRequiredverification_uri_completestringRequiredexpires_inintegerRequiredintervalintegerRequiredCliDeviceDecision
status"approved" | "denied"Requiredkey_namestringRequiredCliDeviceDecisionRequest
user_codestringRequiredCliDeviceTokenRequest
grant_typestringRequireddevice_codestringRequiredclient_idstringRequiredCliDeviceTokenResponse
An organization API key with every permission except inbound_raw, minted for the approving user.
access_tokenstringRequiredtoken_type"Bearer"Requiredapi_key_idstringRequiredkey_namestringRequiredClientRegistrationRequest
RFC 7591 client metadata. Unknown members are ignored.
redirect_urisstring[]Requiredclient_namestringclient_uristringlogo_uristringtoken_endpoint_auth_methodstringgrant_typesstring[]response_typesstring[]scopestringapplication_type"native" | "web"software_idstringsoftware_versionstringClientRegistrationResponse
RFC 7591 client information response. A public client has no client_secret.
client_idstringRequiredclient_id_issued_atintegerRequiredclient_namestringclient_uristringlogo_uristringredirect_urisstring[]Requiredgrant_typesstring[]Requiredresponse_typesstring[]Requiredtoken_endpoint_auth_method"none" | "client_secret_post" | "client_secret_basic"Requiredclient_secretstringclient_secret_expires_atintegerapplication_type"native" | "web"Requiredscopestringsoftware_idstringsoftware_versionstringComplaint
inbox_idstringRequiredthread_idstringRequiredmessage_idstringRequiredtimestampstring (date-time)RequiredtypestringRequiredsub_typestringRequiredCreateApiKeyResponse
api_key_idstringRequiredprefixstringRequirednamestringRequiredpod_idstringinbox_idstringpermissionsApiKeyPermissionscreated_atstring (date-time)Requiredexpires_atstring (date-time)api_keystringRequiredCreateBearerApiKeyRequest
The route sets the scope: /v0/api-keys makes an organization key, /v0/pods/{pod_id}/api-keys a pod key, /v0/inboxes/{inbox_id}/api-keys an inbox key.
namestringpermissionsobject | nullexpires_atstring (date-time) | nullCreateDomainRequest
domainstringRequiredfeedback_enabledbooleaninbound_enabledbooleanclient_idstringpod_idstringcatch_allbooleancatch_all_ttl_secondsinteger | nullCreateDraftRequest
labelsstring[]reply_tostring | string[]tostring | string[]ccstring | string[]bccstring | string[]subjectstringtextstringhtmlstringattachmentsSendAttachment[]in_reply_tostringsend_atstring (date-time) | nullclient_idstringCreateInboxRequest
usernamestringdomainstringdisplay_namestringclient_idstringstatus"active" | "paused"metadataRecord<string, string | number | boolean>pod_idstringephemeralbooleanttl_secondsinteger | nullCreateInvitationRequest
emailstringRequiredrole"owner" | "admin" | "member"CreateListEntryRequest
entrystringRequiredreasonstringCreatePodRequest
namestringclient_idstringCreateSessionOrganizationRequest
namestringRequiredCreateSuppressionRequest
emailstringRequireddetailstringreasonstringDeprecatedCreateWebhookRequest
urlstringRequiredevent_types("message.received" | "message.received.spam" | "message.received.quarantined" | "message.received.unauthenticated" | "message.received.blocked" | "message.sent" | "message.delivered" | "message.bounced" | "message.complained" | "message.rejected" | "domain.verified" | "domain.updated" | "inbox.created" | "inbox.expired" | "draft.sent" | "webhook.test")[]client_idstringinbox_idsstring[]pod_idsstring[]Delivery
inbox_idstringRequiredthread_idstringRequiredmessage_idstringRequiredtimestampstring (date-time)Requiredrecipientsstring[]RequiredDomain
pod_idstringRequireddomain_idstringRequireddomainstringRequiredfeedback_enabledbooleanRequiredinbound_enabledbooleanRequiredsubdomains_enabledbooleanRequiredtracking_enabledbooleanRequiredclient_idstringupdated_atstring (date-time)Requiredcreated_atstring (date-time)Requiredstatus"NOT_STARTED" | "PENDING" | "INVALID" | "FAILED" | "VERIFYING" | "VERIFIED"Requiredreasonstringorganization_idstringRequiredcatch_allbooleanRequiredcatch_all_ttl_secondsintegernameserversstring[]dns_provider"cloudflare" | "route53" | "google" | "vercel" | "namecheap" | "godaddy" | "digitalocean" | "hetzner" | "porkbun" | "other"dns_provider_urlstringdomain_connectobjectverified_atstring (date-time)last_checked_atstring (date-time)DomainConnect
supportedbooleanRequiredprovider_namestringapply_urlstringprovider_idstringurl_sync_uxstringwidthintegerheightintegerreason"no_domain_connect" | "provider_error" | "no_sync_flow" | "template_not_supported" | "records_not_templatable" | "already_configured" | "not_configured"checked_atstring (date-time)RequiredDomainItem
pod_idstringRequireddomain_idstringRequireddomainstringRequiredfeedback_enabledbooleanRequiredinbound_enabledbooleanRequiredsubdomains_enabledbooleanRequiredtracking_enabledbooleanRequiredclient_idstringupdated_atstring (date-time)Requiredcreated_atstring (date-time)Requiredstatus"NOT_STARTED" | "PENDING" | "INVALID" | "FAILED" | "VERIFYING" | "VERIFIED"Requiredreasonstringorganization_idstringRequiredcatch_allbooleanRequiredcatch_all_ttl_secondsintegernameserversstring[]dns_provider"cloudflare" | "route53" | "google" | "vercel" | "namecheap" | "godaddy" | "digitalocean" | "hetzner" | "porkbun" | "other"dns_provider_urlstringdomain_connectobjectverified_atstring (date-time)last_checked_atstring (date-time)Draft
inbox_idstringRequireddraft_idstringRequiredlabelsstring[]Requiredtostring[]ccstring[]bccstring[]subjectstringpreviewstringattachmentsAttachment[]in_reply_tostringsend_status"scheduled" | "sending" | "failed"send_atstring (date-time)updated_atstring (date-time)Requiredclient_idstringreply_tostring[]textstringhtmlstringreferencesstring[]created_atstring (date-time)Requiredpod_idstringRequiredDraftItem
inbox_idstringRequireddraft_idstringRequiredlabelsstring[]Requiredtostring[]ccstring[]bccstring[]subjectstringpreviewstringattachmentsAttachment[]in_reply_tostringsend_status"scheduled" | "sending" | "failed"send_atstring (date-time)updated_atstring (date-time)Requiredclient_idstringreply_tostring[]textstringhtmlstringreferencesstring[]created_atstring (date-time)Requiredpod_idstringRequiredEmailCodeStartRequest
emailstringnextstringinvitation_tokenstringEmailCodeStartResponse
oktrueRequiredredirect_tostringdev_codestringEmailCodeVerifyRequest
codestringRequiredEvent
An event in the replayable log. Webhooks, the SSE stream and the WebSocket deliver the event envelope instead (type: "event" with the data keys also at the top level).
event_idstringRequiredevent_type"message.received" | "message.received.spam" | "message.received.quarantined" | "message.received.unauthenticated" | "message.received.blocked" | "message.sent" | "message.delivered" | "message.bounced" | "message.complained" | "message.rejected" | "domain.verified" | "domain.updated" | "inbox.created" | "inbox.expired" | "draft.sent" | "webhook.test" | "registration.created" | "token.issued" | "agent.claimed" | "agent.revoked" | "member.invited" | "member.role_changed" | "member.removed"Requiredorganization_idstringRequiredpod_idstringinbox_idstringdataRecord<string, unknown>Requiredtimestampstring (date-time)Requiredcreated_atstring (date-time)RequiredFirstKeyResponse
HealthResponse
status"ok"RequiredIdentity
Identity and scope of the credential.
scope_type"organization" | "pod" | "inbox"Requiredscope_idstringRequiredorganization_idstringRequiredpod_idstringinbox_idstringapi_key_idstringuserobjectInboundRawResponse
countintegerRequirederrorsobject[]Inbox
pod_idstringRequiredinbox_idstringRequiredemailstringRequireddisplay_namestringclient_idstringstatus"active" | "paused"RequiredmetadataRecord<string, string | number | boolean>updated_atstring (date-time)Requiredcreated_atstring (date-time)Requiredorganization_idstringRequiredephemeralbooleanRequiredttl_secondsintegerexpires_atstring (date-time)created_by"api" | "catch_all" | "dashboard" | "agent"RequiredInboxAvailability
availablebooleanRequiredemailstringRequiredreason"invalid_username" | "domain_not_found" | "taken"messagestringInvitation
An invitation to join the organization.
invitation_idstringRequiredorganization_idstringRequiredemailstringRequiredrole"owner" | "admin" | "member"Requiredstate"pending" | "accepted" | "expired" | "revoked"Requiredinvited_by_user_idstringexpires_atstring (date-time)Requiredcreated_atstring (date-time)Requireddev_linkstringInvitationPreviewResponse
What an invitation link is for, before signing in.
organization_namestringRequiredemailstringRequiredstate"pending" | "accepted" | "expired" | "revoked"Requiredexpires_atstring (date-time)RequiredJsonRpcError
JSON-RPC 2.0 error response.
jsonrpc"2.0"RequirederrorobjectRequiredidstring | number | nullRequiredJsonWebKeySet
RFC 7517 JWK Set.
keysRecord<string, unknown>[]RequiredListAgentRegistrationsResponse
countintegerRequiredlimitintegernext_page_tokenstringListApiKeysResponse
countintegerRequiredlimitintegerRequirednext_page_tokenstringListDeliveriesResponse
countintegerRequiredlimitintegernext_page_tokenstringListDomainsResponse
countintegerRequiredlimitintegernext_page_tokenstringListDraftsResponse
countintegerRequiredlimitintegernext_page_tokenstringListEntry
An allow or block list entry. The route sets the list: /v0/lists is the organization list, /v0/pods/{pod_id}/lists the pod list, /v0/inboxes/{inbox_id}/lists the inbox list.
entrystringRequiredorganization_idstringRequiredpod_idstringinbox_idstringreasonstringdirection"send" | "receive" | "reply"Requiredlist_type"allow" | "block"Requiredentry_type"email" | "domain"Requiredread_onlybooleanRequiredcreated_atstring (date-time)RequiredListEventsResponse
countintegerRequiredlimitintegernext_page_tokenstringListInboxesResponse
countintegerRequiredlimitintegernext_page_tokenstringListInvitationsResponse
countintegerRequiredlimitintegernext_page_tokenstringListListEntriesResponse
countintegerRequiredlimitintegernext_page_tokenstringListMembersResponse
countintegerRequiredlimitintegernext_page_tokenstringListMessagesResponse
countintegerRequiredlimitintegernext_page_tokenstringListOAuthGrantsResponse
countintegerRequiredlimitintegernext_page_tokenstringListPodsResponse
countintegerRequiredlimitintegernext_page_tokenstringListSessionOrganizationsResponse
ListSuppressionsResponse
countintegerRequiredlimitintegernext_page_tokenstringListThreadsResponse
countintegerRequiredlimitintegernext_page_tokenstringtruncatedtrueListWebhooksResponse
countintegerRequiredlimitintegernext_page_tokenstringLoginRequest
emailstringRequiredpasswordstringRequiredMagicLinkRequest
emailstringRequiredorg_namestringnextstringorganization_namestringorganizationNamestringDeprecatedMagicLinkResponse
oktrueRequireddev_linkstringMcpDescription
How to connect to the remote MCP server.
namestringRequiredversionstringRequiredtransport"streamable-http"RequiredurlstringRequiredauthenticationobjectRequireddocsstringRequiredMembershipOrganization
An organization the signed-in person belongs to.
organization_idstringRequirednamestringRequiredslugstringRequiredrole"owner" | "admin" | "member"RequiredcurrentbooleanRequiredMessage
inbox_idstringRequiredthread_idstringRequiredmessage_idstringRequiredlabelsstring[]Requiredtimestampstring (date-time)RequiredfromstringRequiredtostring[]Requiredccstring[]bccstring[]subjectstringpreviewstringattachmentsAttachment[]in_reply_tostringreferencesstring[]headersRecord<string, string>sizeintegerRequiredupdated_atstring (date-time)Requiredcreated_atstring (date-time)Requiredpod_idstringRequireddirection"inbound" | "outbound"Requireddelivery_status"sent" | "delivered" | "bounced" | "complained"trust_level"verified" | "known" | "unknown" | "suspicious" | "quarantined"reply_tostring[]textstringhtmlstringextracted_textstringextracted_htmlstringreceived_via"raw"trustTrustReportMessageItem
A message without its bodies, as in lists.
inbox_idstringRequiredthread_idstringRequiredmessage_idstringRequiredlabelsstring[]Requiredtimestampstring (date-time)RequiredfromstringRequiredtostring[]Requiredccstring[]bccstring[]subjectstringpreviewstringattachmentsAttachment[]in_reply_tostringreferencesstring[]headersRecord<string, string>sizeintegerRequiredupdated_atstring (date-time)Requiredcreated_atstring (date-time)Requiredpod_idstringRequireddirection"inbound" | "outbound"Requireddelivery_status"sent" | "delivered" | "bounced" | "complained"trust_level"verified" | "known" | "unknown" | "suspicious" | "quarantined"MetricBucket
timestampstring (date-time)RequiredcountintegerRequiredOAuthApproveRequest
request_idstringRequiredpod_idstringinbox_idstringOAuthAuthorizationRequest
A pending authorization request, as the consent page shows it.
request_idstringRequiredredirect_uristringRequiredredirect_hoststringRequiredredirect_loopbackbooleanRequiredresourcestringRequiredcreated_atstring (date-time)Requiredexpires_atstring (date-time)RequiredOAuthClientInfo
client_idstringRequiredclient_namestring | nullRequiredclient_uristring | nullRequiredlogo_uristring | nullRequiredregistration"dynamic" | "metadata_document"Requiredhoststring | nullRequiredOAuthDecision
status"approved" | "denied"Requiredredirect_tostringRequiredOAuthDenyRequest
request_idstringRequiredOAuthError
OAuth / auth.md error body (RFC 6749 section 5.2, RFC 7591 section 3.2.2). The /agent/* and /oauth2/* endpoints use this shape instead of the API error envelope.
errorstringRequirederror_descriptionstringRequiredmessagestringRequiredregistration_idstringagent_idstringregistration_type"anonymous" | "service_auth" | "identity_assertion"claim_urlstringclaim_tokenstringclaim_token_expiresstring (date-time)post_claim_scopes("inboxes.read" | "inboxes.write" | "messages.read" | "messages.send" | "messages.write" | "webhooks.read" | "webhooks.write" | "domains.read" | "domains.write" | "lists.read" | "lists.write" | "metrics.read" | "pods.read" | "pods.write" | "api_keys.read" | "api_keys.write")[]claimobjectmax_ageintegerOAuthGrant
An app a person connected with OAuth. Revoking it ends its access and refresh tokens at once.
grant_idstringRequiredclient_idstringRequiredclient_namestring | nullRequiredclient_uristring | nullRequiredlogo_uristring | nullRequiredregistration"dynamic" | "metadata_document"Requireduser_idstringRequireduser_emailstring | nullRequiredscopes("inboxes.read" | "inboxes.write" | "messages.read" | "messages.send" | "messages.write" | "webhooks.read" | "webhooks.write" | "domains.read" | "domains.write" | "lists.read" | "lists.write" | "metrics.read" | "pods.read" | "pods.write" | "api_keys.read" | "api_keys.write")[]RequiredresourcestringRequiredpod_idstring | nullRequiredinbox_idstring | nullRequiredcreated_atstring (date-time)Requiredlast_used_atstring (date-time) | nullRequiredexpires_atstring (date-time)RequiredOkResponse
Acknowledgement.
oktrueRequiredOneTimeApiKey
An API key with its plaintext secret, returned once.
api_key_idstringRequiredapi_keystringRequiredprefixstringRequirednamestringRequiredcreated_atstring (date-time)RequiredOrganization
The organization of the credential. There are no inbox or domain quotas to report (inbox_limit, domain_limit) and no billing fields.
organization_idstringRequirednamestringRequiredslugstringRequiredplan"free" | "pro" | "enterprise"Requiredinbox_countintegerRequireddomain_countintegerRequiredusageobjectshared_domainstringupdated_atstring (date-time)Requiredcreated_atstring (date-time)RequiredPendingOrganizationRequest
organization_idstringRequiredPendingSignInResponse
The sign-in in progress in this browser.
step"code" | "organization" | "verify_email"Requiredemailstringorganizationsobject[]invitationbooleanRequiredPendingVerifyRequest
codestringRequiredPod
pod_idstringRequiredorganization_idstringRequirednamestringRequiredis_defaultbooleanRequiredclient_idstringupdated_atstring (date-time)Requiredcreated_atstring (date-time)RequiredProtectedResourceMetadata
RFC 9728 OAuth Protected Resource Metadata.
resourcestringRequiredauthorization_serversstring[]Requiredscopes_supported("inboxes.read" | "inboxes.write" | "messages.read" | "messages.send" | "messages.write" | "webhooks.read" | "webhooks.write" | "domains.read" | "domains.write" | "lists.read" | "lists.write" | "metrics.read" | "pods.read" | "pods.write" | "api_keys.read" | "api_keys.write")[]Requiredbearer_methods_supportedstring[]Requiredresource_namestringRequiredresource_logo_uristringRequiredresource_documentationstringRequiredRatePoint
timestampstring (date-time)RequiredratenumbersentintegerRequiredReadyResponse
status"ready" | "unavailable"RequiredchecksobjectRequiredRecipient
addressstringRequiredstatusstringRequiredReject
inbox_idstringRequiredthread_idnullRequiredmessage_idnullRequiredtimestampstring (date-time)Requiredreason"inbox_paused"RequiredfromstringRequiredsubjectstringReplyAllMessageRequest
labelsstring | string[]reply_tostring | string[]textstringhtmlstringattachmentsSendAttachment[]headersRecord<string, string>tostring | string[]ccstring | string[]bccstring | string[]subjectstringReplyToMessageRequest
labelsstring | string[]reply_tostring | string[]tostring | string[]ccstring | string[]bccstring | string[]reply_allbooleantextstringhtmlstringattachmentsSendAttachment[]headersRecord<string, string>subjectstringResendWebhookResult
processedintegerRequirederrorsstring[]RevokeRequest
tokenstringRequiredtoken_type_hintstringclient_idstringclient_secretstringScopeDescription
scope"inboxes.read" | "inboxes.write" | "messages.read" | "messages.send" | "messages.write" | "webhooks.read" | "webhooks.write" | "domains.read" | "domains.write" | "lists.read" | "lists.write" | "metrics.read" | "pods.read" | "pods.write" | "api_keys.read" | "api_keys.write"RequireddescriptionstringRequiredSearchInboxesResponse
countintegerRequiredlimitintegernext_page_tokenstringtruncatedtrueSearchMessagesResponse
countintegerRequiredlimitintegernext_page_tokenstringSearchThreadsResponse
countintegerRequiredlimitintegernext_page_tokenstringtruncatedtrueSend
inbox_idstringRequiredthread_idstringRequiredmessage_idstringRequiredtimestampstring (date-time)Requiredrecipientsstring[]RequiredSendAttachment
Provide either content or url for each attachment.
filenamestringcontent_typestringcontent_disposition"inline" | "attachment"content_idstringcontentstringurlstringSendMessageRequest
labelsstring | string[]reply_tostring | string[]tostring | string[]ccstring | string[]bccstring | string[]subjectstringtextstringhtmlstringattachmentsSendAttachment[]headersRecord<string, string>SendMessageResponse
message_idstringRequiredthread_idstringRequiredtimestampstring (date-time)RequiredSessionResponse
The signed-in user and their organization.
SetError
RFC 8935 SET delivery error.
errstringRequireddescriptionstringRequiredSignInStepResponse
The result of a sign-in step.
oktrueRequiredsigned_inbooleanRequiredredirect_tostringRequiredSignupRequest
emailstringRequiredpasswordstringRequirednamestringorg_namestringorganization_namestringorganizationNamestringDeprecatedSignupResponse
The new user, their organization and the first organization API key (shown once).
Suppression
An address MachineMail will not send to. Suppressions apply to the whole organization.
emailstringRequiredorganization_idstringRequiredreason"bounce" | "complaint" | "manual"Requireddetailstringsource_message_idstringcreated_atstring (date-time)RequiredSwitchOrganizationRequest
organization_idstringRequiredThread
inbox_idstringRequiredthread_idstringRequiredlabelsstring[]Requiredtimestampstring (date-time)Requiredreceived_timestampstring (date-time)sent_timestampstring (date-time)sendersstring[]Requiredrecipientsstring[]RequiredsubjectstringpreviewstringattachmentsAttachment[]last_message_idstringRequiredmessage_countintegerRequiredsizeintegerRequiredupdated_atstring (date-time)Requiredcreated_atstring (date-time)Requiredpod_idstringRequiredcountintegerRequiredlimitintegernext_page_tokenstringThreadItem
inbox_idstringRequiredthread_idstringRequiredlabelsstring[]Requiredtimestampstring (date-time)Requiredreceived_timestampstring (date-time)sent_timestampstring (date-time)sendersstring[]Requiredrecipientsstring[]RequiredsubjectstringpreviewstringattachmentsAttachment[]last_message_idstringRequiredmessage_countintegerRequiredsizeintegerRequiredupdated_atstring (date-time)Requiredcreated_atstring (date-time)Requiredpod_idstringRequiredTokenRequest
grant_typestringRequiredcodestringredirect_uristringcode_verifierstringrefresh_tokenstringscopestringdevice_codestringassertionstringclient_idstringclient_secretstringresourcestringclaim_tokenstringTokenResponse
auth.md grants issue no refresh_token (exchange the identity_assertion again); the authorization code and refresh grants do.
access_tokenstringRequiredtoken_type"Bearer"Requiredexpires_inintegerRequiredscopestringRequiredrefresh_tokenstringidentity_assertionstringassertion_expiresstring (date-time)TrustReport
Trust report of an inbound message. Message content is untrusted: feed content.text to an LLM rather than the message text or html.
level"verified" | "known" | "unknown" | "suspicious" | "quarantined"RequiredscorenumberRequiredauthenticationobjectRequiredsenderobjectRequiredcontentobjectRequiredlinksobject[]Requiredattachmentsobject[]RequiredclassificationobjectRequiredreasonsstring[]Requiredcomputed_atstring (date-time)RequiredUpdateApiKeyRequest
Fields you omit are unchanged. permissions replaces the permission object in full. Scope and expiry cannot be changed.
namestringpermissionsobjectUpdateDomainRequest
feedback_enabledbooleaninbound_enabledbooleancatch_allbooleancatch_all_ttl_secondsinteger | nullUpdateDraftRequest
reply_tostring | string[] | nulltostring | string[] | nullccstring | string[] | nullbccstring | string[] | nullsubjectstring | nulltextstring | nullhtmlstring | nulladd_attachmentsSendAttachment[]remove_attachmentsstring[]add_labelsstring[]remove_labelsstring[]send_atstring (date-time) | nullUpdateInboxRequest
display_namestringstatus"active" | "paused"metadata(Record<string, string | number | boolean | null>) | nullttl_secondsinteger | nullephemeralbooleanUpdateMemberRequest
role"owner" | "admin" | "member"RequiredUpdateMessageRequest
add_labelsstring | string[]remove_labelsstring | string[]UpdateMessageResponse
message_idstringRequiredlabelsstring[]RequiredUpdateOrganizationRequest
namestringUpdatePodRequest
namestringUpdateThreadRequest
add_labelsstring | string[]remove_labelsstring | string[]UpdateWebhookRequest
event_types("message.received" | "message.received.spam" | "message.received.quarantined" | "message.received.unauthenticated" | "message.received.blocked" | "message.sent" | "message.delivered" | "message.bounced" | "message.complained" | "message.rejected" | "domain.verified" | "domain.updated" | "inbox.created" | "inbox.expired" | "draft.sent" | "webhook.test")[]enabledbooleanadd_inbox_idsstring[]remove_inbox_idsstring[]add_pod_idsstring[]remove_pod_idsstring[]urlstringUsagePoint
timestampstring (date-time)RequiredvalueintegerRequiredUser
A person who signs in to the dashboard.
user_idstringRequiredemailstringRequirednamestring | nullorganization_idstringRequiredrole"owner" | "admin" | "member"Requiredcreated_atstring (date-time)RequiredVerificationRecord
type"TXT" | "CNAME" | "MX"RequirednamestringRequiredvaluestringRequiredstatus"MISSING" | "INVALID" | "VALID"Requiredpriorityintegerreasonstringpurpose"inbound" | "spf" | "dkim" | "dmarc" | "provider"RequiredrequiredbooleanRequiredWebhook
webhook_idstringRequiredurlstringRequiredevent_types("message.received" | "message.received.spam" | "message.received.quarantined" | "message.received.unauthenticated" | "message.received.blocked" | "message.sent" | "message.delivered" | "message.bounced" | "message.complained" | "message.rejected" | "domain.verified" | "domain.updated" | "inbox.created" | "inbox.expired" | "draft.sent" | "webhook.test")[]Requiredpod_idsstring[]inbox_idsstring[]pod_idstringinbox_idstringsecretstringRequiredenabledbooleanRequiredupdated_atstring (date-time)Requiredcreated_atstring (date-time)Requiredclient_idstringstatus"active" | "disabled"RequiredWebhookDelivery
delivery_idstringRequiredwebhook_idstringRequiredevent_idstringRequiredevent_type"message.received" | "message.received.spam" | "message.received.quarantined" | "message.received.unauthenticated" | "message.received.blocked" | "message.sent" | "message.delivered" | "message.bounced" | "message.complained" | "message.rejected" | "domain.verified" | "domain.updated" | "inbox.created" | "inbox.expired" | "draft.sent" | "webhook.test"RequiredattemptintegerRequiredstatus"pending" | "delivered" | "failed"Requiredresponse_statusintegerresponse_bodystringnext_attempt_atstring (date-time)last_errorstringdelivered_atstring (date-time)created_atstring (date-time)Requiredupdated_atstring (date-time)Required