Authentication

Custom Auth Configs

Markdown

If you're building an agent, we recommend using sessions instead. See Using custom auth configs for how to use custom credentials with sessions.

Auth configs control how users authenticate with a toolkit. By default, Composio provides managed credentials for many toolkits. You create a custom auth config when the defaults don't fit your needs.

When to create a custom auth config

ReasonExample
Toolkit has no managed authPostHog, Tavily, Perplexity: you must provide your own credentials
White-labelingShow your app name on OAuth consent screens instead of "Composio". See White-labeling
Rate limits and quotaComposio's default OAuth app shares quota across all users. Your own app gets a dedicated quota
Custom scopesYou need permissions beyond what Composio's default app has approved
Custom instance or subdomainConnecting to a self-hosted or regional variant (e.g., custom Salesforce subdomain)

Creating a custom auth config

To create a custom auth config, click Create Auth Config in your dashboard, then navigate to Authentication managementManage authentication with custom credentials.

You'll need to customize the auth config when you want to use different values than the defaults - such as your own subdomain, base URL, client ID, client secret, etc.

You may change the subdomain for the PostHog toolkit to match your own instance.

PostHog Auth Config Settings
PostHog Auth Config Settings

For Hubspot you may customize everything here. For each auth scheme there is a different set of fields.

If you choose to use your own developer app for the OAuth2 scheme, you will have to provide the client ID and client secret.

Hubspot Auth Config Settings
Hubspot Auth Config Settings

Toolkits that support OAuth2 allow using your own developer app. This is the recommended approach for most cases.

Use your own developer app!

We recommend using your own developer app for the OAuth2 scheme as it is more suited for production usage with many users and more granular control over scopes.

However, getting OAuth approvals takes time, so Composio provides a default developer app!

OAuth2 Auth Configs

Generate the OAuth Client ID and Client Secret

To set up a custom OAuth config, you'll need the OAuth Client ID and Client Secret.

You can generate the client ID and client secret from the toolkit's OAuth configuration page.

Examples for Google and GitHub:

Google OAuth Configuration
Google OAuth Configuration
GitHub OAuth Configuration
GitHub OAuth Configuration
Set the Authorized Redirect URI

When creating your OAuth app, make sure to configure the Authorized Redirect URI to point to the Composio callback URL below:

https://backend.composio.dev/api/v3/toolkits/auth/callback
Create the auth config

Once you have the OAuth credentials, you can add them to the auth config in the dashboard.

  1. Select the OAuth2 scheme.
  2. Toggle on Use your own developer credentials.
  3. Enter the OAuth client ID and client secret for your developer app.
  4. Click Create!
Auth Config Settings
Auth Config Settings

This auth config is now ready to be used in your application!

# Create a new connected account
connection_request = composio.connected_accounts.initiate(
    user_id="user_id",
    auth_config_id="ac_1234",
)
print(connection_request)

# Wait for the connection to be established
connected_account = connection_request.wait_for_connection()
print(connected_account)
const connReq = await composio.connectedAccounts.initiate(userId, "ac_1234");

console.log(connReq.redirectUrl);

const connection = await composio.connectedAccounts.waitForConnection(
  connReq.id
);

console.log(connection);