Skip to content
multi.ai.inbox™
Menu

Docs

API reference

Every REST endpoint and object, generated from the OpenAPI file.

View as Markdown

Generated from openapi/openapi.yaml (version 0.1.0) at build time. Base URL: https://api.162-55-213-24.sslip.io. The API also serves the file itself at https://api.162-55-213-24.sslip.io/openapi.yaml.

Every operation answers on /v1, the current version, and on the deprecated /v0 alias with the same bodies and status codes. See Versions and SDKs for the deprecation headers, the policy and the official clients. The paths below show the /v0 prefix used by the file; replace it with /v1 and nothing else changes.

Endpoints

GET/v0/auth/me

Caller summary (kept for older clients; same body as GET /v0/me)

Responses

  • 200 OK: Me
  • 401 Error envelope: Error

GET/v0/me

The authenticated caller, a person's session or an API key

Responses

  • 200 OK: Me
  • 401 Error envelope: Error

POST/v0/auth/magic-link

Email a single use sign in link (public)

Body

NameTypeNotes
emailstring (email)required
redirect_afterstringPath on the site, for example /console/

Responses

  • 202 Sent (or accepted when the address has no account: same answer)
  • 303 A form post is redirected back to the login page with sent=1
  • 400 Error envelope: Error
  • 429 Error envelope: Error
  • 501 Error envelope: Error
  • 502 Error envelope: Error

GET/v0/auth/callback

Finish a sign in, with a magic link token or an OAuth code (public)

Parameters

NameTypeNotes
tokenstringin query, Magic link token
codestringin query, OAuth authorization code
statestringin query, OAuth state, single use, 10 minutes

Responses

  • 200 Session: Session
  • 303 A browser goes to the login page with the session in the fragment, or with ?error=<code>
  • 400 Error envelope: Error
  • 401 Error envelope: Error
  • 403 Error envelope: Error
  • 502 Error envelope: Error

GET/v0/auth/oauth/{provider}/start

Start Google or GitHub sign in with PKCE (public)

Parameters

NameTypeNotes
providergoogle | githubin path, required
redirect1in query, Send the browser to the provider instead of returning JSON
redirect_afterstringin query, Path on the site to return to

Responses

  • 200 OK: OAuthStart
  • 302 The browser goes to the provider
  • 400 Error envelope: Error
  • 501 Error envelope: Error

POST/v0/auth/refresh

Rotate a refresh token into a new session (public)

Body

NameTypeNotes
refresh_tokenstringrequired

Responses

  • 200 Session: Session
  • 400 Error envelope: Error
  • 401 Error envelope: Error
  • 501 Error envelope: Error

POST/v0/auth/logout

End a session (public)

Body

NameTypeNotes
refresh_tokenstring

Responses

  • 204 Ended (also when the token was already invalid)
  • 400 Error envelope: Error
  • 501 Error envelope: Error

GET/v0/inboxes

List inboxes, newest first

Parameters

NameTypeNotes
limitintegerin query, min 1, max 100, default 20
page_tokenstringin query

Responses

  • 200 OK: InboxList

POST/v0/inboxes

Create an inbox (repeat client_id to get the same inbox)

Body (CreateInbox)

NameTypeNotes
usernamestringpattern ^[a-z0-9]([a-z0-9._-]{0,62}[a-z0-9])?$
domainstring
display_namestringmax length 200
client_idstringpattern ^[A-Za-z0-9._~-]{1,256}$

Responses

  • 200 Existing inbox for this client_id: Inbox
  • 201 Created: Inbox
  • 403 Error envelope: Error
  • 409 Error envelope: Error

GET/v0/inboxes/{inbox}

Get an inbox

Parameters

NameTypeNotes
inboxstring (email)in path, required

Responses

  • 200 OK: Inbox
  • 404 Error envelope: Error

PATCH/v0/inboxes/{inbox}

Update display name, or turn the inbox into a support intake

Parameters

NameTypeNotes
inboxstring (email)in path, required

Body

NameTypeNotes
display_namestringmax length 200
ticket_intakebooleanNew threads on this inbox become tickets in the support queue.

Responses

  • 200 OK: Inbox

DELETE/v0/inboxes/{inbox}

Delete an inbox and all its mail

Parameters

NameTypeNotes
inboxstring (email)in path, required

Responses

  • 204 Deleted
  • 404 Error envelope: Error

GET/v0/inboxes/{inbox}/threads

List threads of an inbox

Parameters

NameTypeNotes
inboxstring (email)in path, required
limitintegerin query, min 1, max 100, default 20
page_tokenstringin query
labelstringin query
include_reviewbooleanin query, Also return messages held for security review; needs message_review, default false

Responses

  • 200 OK: ThreadList

GET/v0/threads

List threads across the organization

Parameters

NameTypeNotes
limitintegerin query, min 1, max 100, default 20
page_tokenstringin query
labelstringin query
include_reviewbooleanin query, Also return messages held for security review; needs message_review, default false

Responses

  • 200 OK: ThreadList

GET/v0/threads/{thread}

Get a thread with the messages the caller may see, oldest first

Parameters

NameTypeNotes
threadstring (uuid)in path, required
include_reviewbooleanin query, Also return messages held for security review; needs message_review, default false

Responses

  • 200 OK: Thread

GET/v0/inboxes/{inbox}/messages

List message metadata (no bodies)

Parameters

NameTypeNotes
inboxstring (email)in path, required
limitintegerin query, min 1, max 100, default 20
page_tokenstringin query
labelstringin query
include_reviewbooleanin query, Also return messages held for security review; needs message_review, default false

Responses

  • 200 OK: MessageList

POST/v0/inboxes/{inbox}/messages/send

Send a new message (new thread)

Parameters

NameTypeNotes
inboxstring (email)in path, required
Idempotency-Keystringin header, max length 256

Body (Send)

NameTypeNotes
tostring (email)[]required, at least 1 item
ccstring (email)[]
bccstring (email)[]
subjectstring
textstring
htmlstring
labelsstring[]
attachmentsAttachment[]

Responses

  • 200 Queued: SendResult
  • 403 Error envelope: Error
  • 409 Error envelope: Error
  • 422 Error envelope: Error
  • 429 Error envelope: Error
  • 503 Error envelope: Error

GET/v0/inboxes/{inbox}/messages/{message}

Get a message with bodies, extracted_text, authentication results and gatekeeper verdict

Parameters

NameTypeNotes
inboxstring (email)in path, required
messagestringin path, required, Message UUID or RFC Message-ID (URL encoded)
include_reviewbooleanin query, Also return messages held for security review; needs message_review, default false

Responses

  • 200 OK: Message
  • 403 Error envelope: Error
  • 404 Error envelope: Error

PATCH/v0/inboxes/{inbox}/messages/{message}

Add or remove custom labels

Parameters

NameTypeNotes
inboxstring (email)in path, required
messagestringin path, required, Message UUID or RFC Message-ID (URL encoded)

Body

NameTypeNotes
add_labelsstring[]
remove_labelsstring[]

Responses

  • 200 OK: Message

GET/v0/inboxes/{inbox}/messages/{message}/raw

Raw RFC 822 message

Parameters

NameTypeNotes
inboxstring (email)in path, required
messagestringin path, required, Message UUID or RFC Message-ID (URL encoded)
include_reviewbooleanin query, Also return messages held for security review; needs message_review, default false

Responses

  • 200 OK: message/rfc822

POST/v0/inboxes/{inbox}/messages/{message}/reply

Reply in the same thread

Parameters

NameTypeNotes
inboxstring (email)in path, required
messagestringin path, required, Message UUID or RFC Message-ID (URL encoded)
Idempotency-Keystringin header, max length 256

Body (Reply)

NameTypeNotes
textstring
htmlstring
reply_allboolean
labelsstring[]
attachmentsAttachment[]

Responses

  • 200 Queued: SendResult
  • 403 Error envelope: Error
  • 422 Error envelope: Error
  • 429 Error envelope: Error
  • 503 Error envelope: Error

POST/v0/inboxes/{inbox}/messages/{message}/release

Release a message held for review (needs message_release, audited)

Parameters

NameTypeNotes
inboxstring (email)in path, required
messagestringin path, required, Message UUID or RFC Message-ID (URL encoded)

Responses

  • 200 Released: Message
  • 403 Error envelope: Error
  • 404 Error envelope: Error
  • 409 Error envelope: Error

GET/v0/inboxes/{inbox}/messages/{message}/attachments/{attachment}

Download an attachment

Parameters

NameTypeNotes
inboxstring (email)in path, required
messagestringin path, required, Message UUID or RFC Message-ID (URL encoded)
attachmentstring (uuid)in path, required
include_reviewbooleanin query, Also return messages held for security review; needs message_review, default false

Responses

  • 200 Attachment bytes with its content type

GET/v0/inboxes/{inbox}/drafts

List drafts, newest first (needs message_read)

Parameters

NameTypeNotes
inboxstring (email)in path, required
limitintegerin query, min 1, max 100, default 20
page_tokenstringin query

Responses

  • 200 OK: DraftList

POST/v0/inboxes/{inbox}/drafts

Create a draft (needs message_send)

Parameters

NameTypeNotes
inboxstring (email)in path, required

Body (CreateDraft)

NameTypeNotes
tostring (email)[]
ccstring (email)[]
bccstring (email)[]
subjectstring
textstring
htmlstring
labelsstring[]
attachmentsAttachment[]
in_reply_tostringMessage UUID or RFC Message-ID to reply to
reply_allbooleanWith in_reply_to: copy the other recipients
send_atstring (date-time)Send automatically at this time (future, within 365 days)

Responses

  • 201 Created: Draft
  • 400 Error envelope: Error
  • 404 Error envelope: Error

GET/v0/inboxes/{inbox}/drafts/{draft}

Get a draft (needs message_read)

Parameters

NameTypeNotes
inboxstring (email)in path, required
draftstring (uuid)in path, required

Responses

  • 200 OK: Draft
  • 404 Error envelope: Error

PATCH/v0/inboxes/{inbox}/drafts/{draft}

Update a draft (needs message_send)

Parameters

NameTypeNotes
inboxstring (email)in path, required
draftstring (uuid)in path, required

Body (UpdateDraft)

NameTypeNotes
tostring (email)[]
ccstring (email)[]
bccstring (email)[]
subjectstring
textstring
htmlstring
labelsstring[]
attachmentsAttachment[]
send_atstring,null (date-time)null cancels a scheduled send

Responses

  • 200 OK: Draft
  • 400 Error envelope: Error
  • 404 Error envelope: Error

DELETE/v0/inboxes/{inbox}/drafts/{draft}

Delete a draft (needs message_send)

Parameters

NameTypeNotes
inboxstring (email)in path, required
draftstring (uuid)in path, required

Responses

  • 204 Deleted

POST/v0/inboxes/{inbox}/drafts/{draft}/send

Send a draft now and delete it (needs message_send)

Parameters

NameTypeNotes
inboxstring (email)in path, required
draftstring (uuid)in path, required
Idempotency-Keystringin header, max length 256

Responses

  • 200 Queued: SendResult
  • 400 Error envelope: Error
  • 403 Error envelope: Error
  • 404 Error envelope: Error
  • 409 Error envelope: Error
  • 429 Error envelope: Error

GET/v0/events/stream

Live events as Server Sent Events (needs message_read)

Parameters

NameTypeNotes
typesstringin query, Comma separated event types; all when absent
inboxstring (email)in query, Only events of this inbox
Last-Event-IDintegerin header, Resume after this event id, min 0
last_event_idintegerin query, Same as Last-Event-ID, for clients that cannot set headers, min 0

Responses

  • 200 Event stream: string
  • 400 Error envelope: Error
  • 404 Error envelope: Error
  • 429 Error envelope: Error

GET/v0/domains

List own and shared domains

Responses

  • 200 OK

POST/v0/domains

Add a custom domain; returns the DNS records to publish

Body

NameTypeNotes
domainstringrequired

Responses

  • 201 Created: Domain
  • 403 Error envelope: Error
  • 409 Error envelope: Error

GET/v0/domains/{domain}

Get a domain with record status

Parameters

NameTypeNotes
domainstringin path, required

Responses

  • 200 OK: Domain

DELETE/v0/domains/{domain}

Delete a domain without inboxes

Parameters

NameTypeNotes
domainstringin path, required

Responses

  • 204 Deleted
  • 409 Error envelope: Error

POST/v0/domains/{domain}/verify

Check DNS now (the scheduler also checks every 5 minutes for 7 days)

Parameters

NameTypeNotes
domainstringin path, required

Responses

  • 200 OK: Domain

GET/v0/api-keys

List active keys (requires api_key_read)

Responses

  • 200 OK

POST/v0/api-keys

Create a key with at most the caller's permissions (key shown once)

Body

NameTypeNotes
namestringmax length 100
permissionsPermission[]omit to copy the caller's permissions
expires_atstring (date-time)

Responses

  • 201 Created
  • 403 Error envelope: Error

DELETE/v0/api-keys/{key}

Revoke a key immediately (requires api_key_write, no escalation)

Parameters

NameTypeNotes
keystring (uuid)in path, required

Responses

  • 204 Revoked

GET/v0/audit-logs

Security relevant actions of the organization (requires audit_read)

Parameters

NameTypeNotes
limitintegerin query, min 1, max 200, default 50

Responses

  • 200 OK

GET/v0/webhooks

List webhooks

Responses

  • 200 OK

POST/v0/webhooks

Create a webhook (secret is returned once)

Body

NameTypeNotes
urlstring (uri)required
event_typesEventType[]required, at least 1 item
inbox_idsstring (email)[]at most 10 items

Responses

  • 201 Created: Webhook

DELETE/v0/webhooks/{webhook}

Delete a webhook

Parameters

NameTypeNotes
webhookstring (uuid)in path, required

Responses

  • 204 Deleted

GET/v0/billing

Plan and Stripe subscription state (requires billing_read)

Responses

  • 200 OK: Billing
  • 403 Error envelope: Error
  • 501 Error envelope: Error

POST/v0/billing/checkout

Start a Stripe Checkout for a paid plan (requires billing_write, audited)

Body (Checkout)

NameTypeNotes
planbuilder | growth | teamrequired
intervalmonthly | yearlydefault monthly
success_urlstring (uri)Defaults to the deployment's MAI_BILLING_RETURN_URL
cancel_urlstring (uri)Defaults to the deployment's MAI_BILLING_RETURN_URL

Responses

  • 200 OK: BillingSession
  • 400 Error envelope: Error
  • 403 Error envelope: Error
  • 409 Error envelope: Error
  • 501 Error envelope: Error
  • 502 Error envelope: Error

POST/v0/billing/portal

Open the Stripe customer portal (requires billing_write, audited)

Body

NameTypeNotes
return_urlstring (uri)

Responses

  • 200 OK: BillingSession
  • 403 Error envelope: Error
  • 409 Error envelope: Error
  • 501 Error envelope: Error
  • 502 Error envelope: Error

GET/v0/export

Export the organization's own data (requires data_export, audited)

Responses

  • 200 OK: OrgExport
  • 403 Error envelope: Error

DELETE/v0/organization

Delete the organization and all its data (requires data_delete, audited)

Body

NameTypeNotes
confirmstringrequired, The organization name, verbatim

Responses

  • 200 Deleted; body carries the export taken before deletion: object
  • 400 Error envelope: Error
  • 403 Error envelope: Error

GET/v0/tickets

List tickets, newest activity first

Parameters

NameTypeNotes
limitintegerin query, min 1, max 100, default 20
page_tokenstringin query
stateTicketStatein query
priorityTicketPriorityin query
assigneestringin query, user id, API key id, or none
inboxstringin query, inbox address
qstringin query, case insensitive over subject and requester

Responses

  • 200 OK: TicketList

POST/v0/tickets

Open a ticket on an existing thread (requires ticket_write, audited)

Body (CreateTicket)

NameTypeNotes
thread_idstringrequired
priorityTicketPriority
tagsstring[]
assignee_userstring
assignee_keystring

Responses

  • 201 Created: Ticket
  • 400 Error envelope: Error
  • 403 Error envelope: Error
  • 404 Error envelope: Error
  • 409 Error envelope: Error

GET/v0/tickets/stats

Queue counters and median first reply

Responses

  • 200 OK: TicketStats

GET/v0/tickets/{ticket}

Read one ticket with its timeline and internal notes

Parameters

NameTypeNotes
ticketstringin path, required

Responses

  • 200 OK: TicketDetail
  • 404 Error envelope: Error

PATCH/v0/tickets/{ticket}

Change state, priority, tags or assignment (requires ticket_write, audited)

Parameters

NameTypeNotes
ticketstringin path, required

Body (UpdateTicket)

NameTypeNotes
stateTicketState
priorityTicketPriority
tagsstring[]
assignee_userstring
assignee_keystring

Responses

  • 200 OK: Ticket
  • 400 Error envelope: Error
  • 404 Error envelope: Error
  • 409 Error envelope: Error

POST/v0/tickets/{ticket}/notes

Add an internal note (requires ticket_write, audited)

Parameters

NameTypeNotes
ticketstringin path, required

Body

NameTypeNotes
bodystringrequired

Responses

  • 201 Created: TicketNote
  • 400 Error envelope: Error
  • 404 Error envelope: Error

POST/v0/tickets/{ticket}/reply

Reply to the customer on the ticket thread (requires message_send, audited)

Parameters

NameTypeNotes
ticketstringin path, required

Body (Reply)

NameTypeNotes
textstring
htmlstring
reply_allboolean
labelsstring[]
attachmentsAttachment[]

Responses

  • 200 Sent: SendResult
  • 403 Error envelope: Error
  • 404 Error envelope: Error
  • 409 Error envelope: Error

POST/stripe/webhook

Stripe webhook endpoint (public, Stripe-Signature verified)

Parameters

NameTypeNotes
Stripe-Signaturestringin header, required

Responses

  • 200 Received; outcome is applied, duplicate, stale or ignored
  • 400 Error envelope: Error
  • 501 Error envelope: Error

Objects

User object

NameTypeNotes
user_idstring (uuid)
emailstring (email)
namestring
providermagic_link | google | githubIdentity that first proved this address
roleowner | admin | member
created_atstring (date-time)
last_login_atstring (date-time)

Session object

NameTypeNotes
access_tokenstringSigned JWT, send as Authorization: Bearer, 15 minutes
refresh_tokenstringSingle use, 30 days, rotate it at POST /v0/auth/refresh
token_typeBearer
expires_inintegerSeconds until the access token expires
expires_atstring (date-time)
refresh_expires_atstring (date-time)
roleowner | admin | member
userUser
organizationOrg

OAuthStart object

NameTypeNotes
providergoogle | github
authorize_urlstringProvider URL, with state and the S256 PKCE challenge
statestringSingle use, 10 minutes
expires_atstring (date-time)

Me object

NameTypeNotes
authapi_key | session
organization_idstring (uuid)
namestring
planfree | builder | growth | team
screen_before_notifyboolean
roleowner | admin | memberOnly for a session
api_key_idstring (uuid)Only for an API key
userobjectOnly for a session
organizationOrg
permissionsstring[]
expires_atstring (date-time)

Org object

NameTypeNotes
organization_idstring (uuid)
namestring
planfree | builder | growth | team
screen_before_notifybooleanHold inbound mail until screened (operator setting: mai admin org-screening)

CreateInbox object

NameTypeNotes
usernamestringpattern ^[a-z0-9]([a-z0-9._-]{0,62}[a-z0-9])?$
domainstring
display_namestringmax length 200
client_idstringpattern ^[A-Za-z0-9._~-]{1,256}$

Inbox object

NameTypeNotes
idstring (uuid)
inbox_idstring (email)
emailstring (email)
display_namestring
client_idstring
ticket_intakebooleanNew threads on this inbox become tickets.
sending_paused_atstring (date-time)Set when the bounce breaker paused sending (hard bounce rate above 5% over at least 20 sends in 24 hours); an operator resumes it.
sending_paused_reasonstring
created_atstring (date-time)
updated_atstring (date-time)

InboxList object

NameTypeNotes
countinteger
next_page_tokenstring
inboxesInbox[]

Thread object

NameTypeNotes
thread_idstring (uuid)
inbox_idstring
subjectstring
previewstring
labelsstring[]
message_countinteger
timestampstring (date-time)
messagesMessage[]

ThreadList object

NameTypeNotes
countinteger
next_page_tokenstring
threadsThread[]

Message object

NameTypeNotes
idstring (uuid)
message_idstringRFC 5322 Message-ID with angle brackets
thread_idstring (uuid)
inbox_idstring
directionin | out
fromstring
tostring[]
ccstring[]
subjectstring
textstring
htmlstring
extracted_textstringNew text without quoted history (set by the gatekeeper)
previewstring
labelsstring[]
in_reply_tostring
referencesstring[]
statusreceived | queued | sending | sent | failed
authentication_resultsobjectWhat the SMTP edge verified for inbound mail: dkim, spf, dmarc, dmarc_policy, antivirus, spam_score, spam_action. Mail failing DMARC is labelled dmarc-fail, and spam under p=quarantine or p=reject.
gatekeeperobject
screeningreview | allowed | releasedHold state under screen before notify; absent when the message was not held. Pending messages are never returned.
attachmentsobject[]
created_atstring (date-time)

MessageList object

NameTypeNotes
countinteger
next_page_tokenstring
messagesMessage[]

Attachment object

NameTypeNotes
filenamestring
content_typestring
contentstring (base64)required

Send object

NameTypeNotes
tostring (email)[]required, at least 1 item
ccstring (email)[]
bccstring (email)[]
subjectstring
textstring
htmlstring
labelsstring[]
attachmentsAttachment[]

Reply object

NameTypeNotes
textstring
htmlstring
reply_allboolean
labelsstring[]
attachmentsAttachment[]

SendResult object

NameTypeNotes
message_idstring
thread_idstring (uuid)

CreateDraft object

NameTypeNotes
tostring (email)[]
ccstring (email)[]
bccstring (email)[]
subjectstring
textstring
htmlstring
labelsstring[]
attachmentsAttachment[]
in_reply_tostringMessage UUID or RFC Message-ID to reply to
reply_allbooleanWith in_reply_to: copy the other recipients
send_atstring (date-time)Send automatically at this time (future, within 365 days)

UpdateDraft object

NameTypeNotes
tostring (email)[]
ccstring (email)[]
bccstring (email)[]
subjectstring
textstring
htmlstring
labelsstring[]
attachmentsAttachment[]
send_atstring,null (date-time)null cancels a scheduled send

Draft object

NameTypeNotes
draft_idstring (uuid)
inbox_idstring (email)
thread_idstring (uuid)Set for a reply draft
in_reply_tostringRFC Message-ID of the message replied to
referencesstring[]
tostring[]
ccstring[]
bccstring[]
subjectstring
textstring
htmlstring
labelsstring[]
attachmentsobject[]
send_atstring (date-time)
statusdraft | scheduled | failed
last_errorstringWhy a scheduled send was refused
created_atstring (date-time)
updated_atstring (date-time)

DraftList object

NameTypeNotes
countinteger
next_page_tokenstring
draftsDraft[]

Webhook object

NameTypeNotes
webhook_idstring (uuid)
urlstring
event_typesEventType[]
inbox_idsstring[]
enabledboolean
secretstringwhsec_..., returned only on create

Domain object

NameTypeNotes
domain_idstring (uuid)
domainstring
sharedboolean
statuspending | verified
recordsobject[]
last_checked_atstring (date-time)
verified_atstring (date-time)

Ticket object

NameTypeNotes
idstring
numberinteger
inbox_idstring
thread_idstring
subjectstring
requesterstring
stateTicketState
priorityTicketPriority
assignee_userstring
assignee_keystring
sla_policystring
due_first_replystring (date-time)
due_resolutionstring (date-time)
first_reply_atstring (date-time)
resolved_atstring (date-time)
closed_atstring (date-time)
tagsstring[]
created_atstring (date-time)
updated_atstring (date-time)

TicketList object

NameTypeNotes
countinteger
next_page_tokenstring
ticketsTicket[]

TicketEvent object

NameTypeNotes
idinteger
kindstring
actorstring
detailobject
created_atstring (date-time)

TicketNote object

NameTypeNotes
idstring
authorstring
bodystring
created_atstring (date-time)

TicketDetail object

NameTypeNotes
ticketTicket
eventsTicketEvent[]
notesTicketNote[]

TicketStats object

NameTypeNotes
by_stateobject
openinteger
breachinginteger
unassignedinteger
median_first_reply_secondsinteger

CreateTicket object

NameTypeNotes
thread_idstringrequired
priorityTicketPriority
tagsstring[]
assignee_userstring
assignee_keystring

UpdateTicket object

NameTypeNotes
stateTicketState
priorityTicketPriority
tagsstring[]
assignee_userstring
assignee_keystring

Checkout object

NameTypeNotes
planbuilder | growth | teamrequired
intervalmonthly | yearlydefault monthly
success_urlstring (uri)Defaults to the deployment's MAI_BILLING_RETURN_URL
cancel_urlstring (uri)Defaults to the deployment's MAI_BILLING_RETURN_URL

BillingSession object

NameTypeNotes
session_idstring
urlstring (uri)

Billing object

NameTypeNotes
planfree | builder | growth | team
statusnone | incomplete | incomplete_expired | trialing | active | past_due | unpaid | canceled | paused
intervalmonthly | yearly
current_period_endstring (date-time)
cancel_at_period_endboolean
past_due_sincestring (date-time)
grace_period_ends_atstring (date-time)Set while past_due or unpaid; the plan drops to free after it

OrgExport object

NameTypeNotes
formatstring
generated_atstring (date-time)
organizationOrg
inboxesobject[]
domainsobject[]
webhooksobject[]
api_keysobject[]Metadata only; the key and its hash are never exported.
countsobject
audit_logobject[]
noticestringWhat this export deliberately leaves out, in plain language

Error object

NameTypeNotes
namestringrequired
codemissing_authorization | unknown_api_key | validation_error | not_found | already_exists | domain_not_verified | conflict | cannot_delete | limit_exceeded | rate_limit_exceeded | rate_limited | address_quarantined | sending_paused | missing_permission | permission_escalation | api_key_expired | not_held | billing_disabled | billing_provider_error | already_subscribed | no_billing_account | invalid_signature | too_many_streams | payload_too_large | attachment_infected | antivirus_unavailable | auth_disabled | provider_not_configured | invalid_magic_link | invalid_state | code_rejected | email_not_verified | provider_unavailable | email_delivery_failed | invalid_refresh_token | token_expired | unknown_token | session_revoked | access_denied | internal_errorrequired
messagestringrequired