By default, Supermemory uses its own OAuth applications to connect to third-party providers. However, you can configure your own OAuth application credentials for enhanced security and control. This is particularly useful for enterprise customers who want to maintain control over their data access.

Some providers like Google Drive require extensive verification and approval before you can use custom keys.

Setting up Custom Provider Keys

To configure custom OAuth credentials for your organization, use the PATCH /v3/settings endpoint:

  1. Set up your OAuth application on the provider’s developer console.

Google: https://console.developers.google.com/apis/credentials/oauthclient
Notion: https://www.notion.so/my-integrations
OneDrive: https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsMenu

  1. If using Google drive,
  • Select the application type as Web application
  • Enable the Google drive api in “APIs and Services” in the Cloud Console
  1. Configure the redirect URL, set it to:
https://api.supermemory.ai/v3/connections/auth/callback/{provider}

For example, if you are using Google Drive, the redirect URL would be:

https://api.supermemory.ai/v3/connections/auth/callback/google-drive
  1. Configure the client ID and client secret in the PATCH /v3/settings endpoint.
import Supermemory from 'supermemory';

const client = new Supermemory({
  apiKey: process.env['SUPERMEMORY_API_KEY'],
});

// Example: Configure Google Drive custom OAuth credentials
const settings = await client.settings.update({
  googleCustomKeyEnabled: true,
  googleDriveClientId: "your-google-client-id",
  googleDriveClientSecret: "your-google-client-secret"
});

// Example: Configure Notion custom OAuth credentials
const settings = await client.settings.update({
  notionCustomKeyEnabled: true,
  notionClientId: "your-notion-client-id",
  notionClientSecret: "your-notion-client-secret"
});

// Example: Configure OneDrive custom OAuth credentials
const settings = await client.settings.update({
  onedriveCustomKeyEnabled: true,
  onedriveClientId: "your-onedrive-client-id",
  onedriveClientSecret: "your-onedrive-client-secret"
});

Once you enable custom keys for a provider, all new connections for that provider will use your custom OAuth application. Existing connections WILL need to be re-authorized.