HomeCustomizing AuthOverview

Auth Providers

Auth providers enable users to seamlessly and securely allow Arcade tools to access their data.

Arcade has several auth providers available in the Arcade cloud so you don’t have to configure your own. However, using Arcade’s auth providers means that your users will see the Arcade brand (name and logo) on the auth screen and your authentications will share any rate limits from those providers with other Arcade customers.

It can be useful to configure your own auth provider for the following reasons:

After adding an auth provider used by an Arcade tool, executing the tool will automatically use your auth provider. Even in the Arcade Cloud, your auth provider will take precedence over the arcade-provided auth provider.

Adding multiple providers of the same type, not including the arcade-provided ones, can cause Arcade’s tool authorization to fail, see Using multiple providers of the same type for more information.

Catalog of providers

For more information on how to customize your auth provider, select an auth provider from the list below:


If the auth provider you need is not listed, try the OAuth 2.0 provider, or get in touch with us!

Using multiple providers of the same type

You can create multiple auth providers of the same type, for example, you can have multiple Google auth providers, each with their own client ID and secret. This might be useful if you want separate Google clients to handle calendar and email scopes, for example.

However, Arcade’s tools are configured to select an auth provider by the type. This means that if you have multiple auth providers of the same type, Arcade will not know which one to use and authorizing the tool will fail.

To work around this, you can fork Arcade’s tools and modify them to specify your own auth provider by the unique ID that you give each of them. For example, if you have two Google auth providers, acme-google-calendar and acme-google-email, you can modify Arcade’s Google.ListEmails tool like this:

@tool(
    requires_auth=Google(
        id="acme-google-email", # This is the unique ID you gave your auth provider
        scopes=["https://www.googleapis.com/auth/gmail.readonly"],
    )
)
async def list_emails(
# ...

This is similar to the pattern used in the generic OAuth2 provider, but instead of using the OAuth2 class, you use the Google class and specify the id of the auth provider you want to use.

See the docs about Authoring Tools for more information on how to create and serve a toolkit.