Create an OAuth app
Registers your own OAuth app so the mailbox consent screen carries your product’s name rather than AI Inbx. The response returns the redirect_uri to register with the provider, a hosted connect_url, and — for Google — the push_endpoint your own Pub/Sub topic should publish to. The slug is claimed globally because it forms the connect URL. return_urls lists the pages of yours a connect link (connect_url + /start?return_to=…) may send a person back to; without one, only the hosted page works.
/oauth-appsAuthorizationBearer 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/jsonproviderstringrequiredgoogle for Gmail, microsoft for Outlook.
googlemicrosoftnamestringrequiredYour product's name, as the consent screen shows it.
slugstringrequiredThe connect URL's name. Unique across all of AI Inbx.
client_idstringrequiredThe OAuth client id, from Google Cloud or Microsoft Entra.
client_secretstringrequiredThe OAuth client secret that goes with the client id.
tenantstringMicrosoft only: the Entra tenant, for an app registered to one.
pubsub_topicstringGoogle only: your Pub/Sub topic, which Gmail publishes mailbox changes to.
accentstringThe accent colour of your connect page.
taglinestringA line under your product's name on the connect page.
support_emailstring<email>Where people connecting a mailbox can reach you.
logo_urlstring<uri>Your logo, linked from your own server.
return_urlsstring<uri>[]The pages a connect link may return to. Replaced whole on update.
The OAuth app was created.
idstringrequiredproviderstringrequiredgooglemicrosoftnamestringrequiredslugstringrequiredclient_idstringrequiredtenantstring | nullrequiredShow propertiesHide properties
stringnullpubsub_topicstring | nullrequiredShow propertiesHide properties
stringnullaccentstring | nullrequiredShow propertiesHide properties
stringnulltaglinestring | nullrequiredShow propertiesHide properties
stringnullsupport_emailstring<email> | nullrequiredShow propertiesHide properties
string<email>nulllogo_urlstring<uri> | nullrequiredA logo linked from the customer's own server. An uploaded one is served from us and is not linkable through the API.
Show propertiesHide properties
string<uri>nullconnect_urlstring<uri>requiredreturn_urlsstring<uri>[]requiredThe pages a connect link — connect_url + /start?return_to=… — may return to. Matched on origin and path.
redirect_uristring<uri>requiredpush_endpointstring<uri> | nullrequiredShow propertiesHide properties
string<uri>nullcreated_atstring<date-time>requiredThe 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