Create a domain
Registers a sending domain and returns the DNS records to publish: SPF, DKIM, DMARC, a return path, and an MX record for receiving. region selects the regional mail infrastructure for this domain and cannot be changed afterwards.
A wildcard — *.acme.dev — is verified once and covers every subdomain: the MX record goes at *.acme.dev, the rest at acme.dev, and the apex keeps whatever mail setup it has. A name one label under a wildcard of yours — hi.acme.dev under *.acme.dev — is created as a subdomain of it: no records, verified as soon as the wildcard is, in whatever space_id you give it. That is how a platform hands each customer an address of their own without touching DNS again.
A domain name can be connected in several spaces and workspaces, but sending and receiving are enabled for the one whose DKIM key is published. To move them, add the domain where it should go and publish its DNS records. The next verification check moves them; existing mail stays where it was. Duplicate apex or wildcard identities within one space fail with domain_taken.
Every workspace already has one domain it did not add: <slug>.aiinbx.app, listed with provided: true. It is verified through our zone, has no records and cannot be deleted; a name under aiinbx.app cannot be added by hand and fails with reserved_domain.
A domain of its own counts against the plan’s custom domains — a subdomain under a wildcard and the provided domain do not. With none left the request fails with 402 allowance_reached, and a workspace with no plan with 402 plan_required.
track_opens and track_clicks set the domain’s tracking; what they leave out starts as the workspace’s tracking defaults in the console say — off unless they are set there — or, on a subdomain, as its wildcard’s. Change either afterwards with PATCH /domains/{domain_id}.
/domainsAuthorizationBearer token (API key) · headerrequiredPass an AI Inbx API key as a Bearer token.
AIInbx-WorkspacestringWorkspace id from GET /workspaces, for an OAuth token that reaches several.
application/jsonnamestringrequiredA domain, a wildcard (*.acme.dev), or one label under a wildcard you own (hi.acme.dev) — the last is created as a subdomain with no records.
regionstringThe region the domain's mail is handled in.
eu-central-1us-east-1space_idstringWhich space a created resource goes in. Omitted, the workspace itself.
track_opensbooleanWhether opens are tracked on mail sent from the domain.
track_clicksbooleanWhether links are rewritten to track clicks on mail sent from the domain.
The domain was created.
idstringrequirednamestringrequiredregionstringrequiredWhere the domain's mail is handled today. A domain carried over from the previous aiinbx reports us-east-1 until its records verify here, then the region chosen for it.
eu-central-1us-east-1space_idstring | nullrequiredWhich space a resource is in. Null is the workspace itself — what every resource of a workspace that has no spaces says.
Show propertiesHide properties
stringnullparent_idstring | nullrequiredThe wildcard this subdomain is filed under, when it is one.
Show propertiesHide properties
stringnullprovidedbooleanrequiredWhether this is the domain the workspace was given — <slug>.aiinbx.app. Verified through our own zone, so it has no records and cannot be deleted.
verified_atstring<date-time> | nullrequiredShow propertiesHide properties
string<date-time>nullcreated_atstring<date-time>requiredtrackingobjectrequiredShow propertiesHide properties
opensbooleanrequiredclicksbooleanrequiredrecordsobject[]Show propertiesHide properties
objectpurposestringrequiredSPFDKIMDMARCRETURN_PATHINBOUNDtypestringrequiredMXTXTCNAMEnamestringrequiredvaluestringrequiredttlintegerrequiredstatestringrequiredpendingverifiedmissinglast_checked_atstring<date-time> | nullrequiredShow propertiesHide properties
string<date-time>nullThe request is invalid.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe API key is missing or invalid.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe workspace has no plan (plan_required), or its plan's allowance is used up (allowance_reached).
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe API key or token does not have the required scope, or the token is connected as an inbox and the operation is not one an inbox may use.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe requested resource does not exist.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe request conflicts with the resource's current state.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe request body or attachments are too large.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe request body is not JSON.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe request body failed validation.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe organisation's request budget is spent (too_many_requests), or an upstream mail provider is throttling (rate_limited).
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredAn internal error occurred.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredAn upstream mail provider failed.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequiredThe service is temporarily unavailable.
typestringrequiredtitlestringrequiredstatusintegerrequireddetailstringrequiredcodestringrequiredrequest_idstringrequiredissuesobject[]Show propertiesHide properties
objectpathstringrequiredmessagestringrequired