Skip to main content
POST
Start connector connection

Authorizations

Authorization
string
header
required

Personal access token, sent as Authorization: Bearer <token>.

Path Parameters

app_id
string
required

ID of the app.

Body

application/json
integration_type

Connector to connect through Base44's OAuth app, from integration_type in List connectors. Send this or connector_id, not both.

Available options:
googlecalendar,
google_classroom,
googledrive,
gmail,
googlesheets,
googledocs,
googleslides,
googlebigquery,
googlemeet,
googletasks,
googleads,
google_analytics,
google_search_console,
slack,
notion,
salesforce,
hubspot,
linkedin,
tiktok,
instagram,
discord,
slackbot,
wix,
github,
gitlab,
bamboohr,
dropbox,
clickup,
wrike,
box,
outlook,
linear,
airtable,
microsoft_teams,
share_point,
one_drive,
typeform,
splitwise,
hugging_face,
calendly,
contentful,
supabase,
snowflake,
databricks,
quickbooks,
square
Example:

"googlecalendar"

scopes
string[] | null

OAuth scopes to ask the provider for. Scopes the app's current connection already has are kept unless force_reconnect is true. Defaults to an empty list, which asks for the connector's default scopes.

Example:
force_reconnect
boolean
default:false

Whether to start a new authorization even when the app already has a working connection that covers the scopes. Send true to switch to another account. Applies only with integration_type. Defaults to false.

Example:

false

connection_config
Connection Config · object | null

Values the connector needs before authorization, keyed by the name of each field from Get connector connection fields. Leave it out for connectors that have no fields.

Example:
connector_id
string | null

ID of a workspace connector that uses the workspace's own OAuth app, set up in the workspace settings. Send this or integration_type, not both.

Example:

"6820f3a4e7b91d003c45a1f9"

notify_chat_on_success
boolean
default:false

Whether a successful connection adds a message to the app's AI chat so the AI picks up wiring the connector into the app. Applies only with integration_type. Defaults to false.

Example:

false

Response

The authorization was started, or the response says why none was needed.

The start of a connector authorization, or why none was needed.

redirect_url
string | null
required

Link to open in a browser so the user can sign in to the provider and approve access. It expires after 10 minutes. Treat it as a credential. The value is null when no authorization was started.

Example:

"https://app.base44.com/api/external-auth/connect/3f9c2a7e5b8d4c1fa6e0d2b7c9a1e4f3"

connection_id
string | null
required

ID of the connection being authorized. Pass it to Get connector connection status. When already_authorized is true it's the existing connection, or null if you sent connector_id. The value is null when error is set.

Example:

"base44_6820f3a4e7b91d003c45a1f7"

integration_type

Connector being connected. Without connector_id, the value is null when already_authorized is true or error is set.

Available options:
googlecalendar,
google_classroom,
googledrive,
gmail,
googlesheets,
googledocs,
googleslides,
googlebigquery,
googlemeet,
googletasks,
googleads,
google_analytics,
google_search_console,
slack,
notion,
salesforce,
hubspot,
linkedin,
tiktok,
instagram,
discord,
slackbot,
wix,
github,
gitlab,
bamboohr,
dropbox,
clickup,
wrike,
box,
outlook,
linear,
airtable,
microsoft_teams,
share_point,
one_drive,
typeform,
splitwise,
hugging_face,
calendly,
contentful,
supabase,
snowflake,
databricks,
quickbooks,
square
Example:

"googlecalendar"

already_authorized
boolean
default:false

Whether the app already has a working connection that covers the requested scopes (true), so there's nothing to open, or not (false).

Example:

false

error
string | null

Why no authorization was started, or null if one was. Either different_user, when another collaborator's account is already connected (with integration_type, send force_reconnect to replace it), or service_unavailable, when the provider can't be reached. Retry later.

Example:

"different_user"

error_message
string | null

Readable explanation of error, or null when error is null.

Example:

"Integration googlecalendar is already authorized by a different user for this app."