--- title: 'Creating connections' description: 'Create a connection to sync your content with supermemory' --- To create a connection, just make a `POST` request to `/v3/connections/{provider}` ```typescript Typescript import Supermemory from 'supermemory'; const client = new Supermemory({ apiKey: process.env['SUPERMEMORY_API_KEY'], // This is the default and can be omitted }); // For OAuth providers (notion, google-drive, onedrive) const connection = await client.connections.create('notion'); console.debug(connection.authLink); // For web-crawler (no OAuth required) const webCrawlerConnection = await client.connections.create('web-crawler', { metadata: { startUrl: 'https://docs.example.com' } }); console.debug(webCrawlerConnection.id); // authLink will be null ``` ```python Python import requests url = "https://api.supermemory.ai/v3/connections/{provider}" payload = { "redirectUrl": "", "containerTags": [""], "metadata": {}, "documentLimit": 5000 } headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.request("POST", url, json=payload, headers=headers) print(response.text) ``` ```bash cURL curl --request POST \ --url https://api.supermemory.ai/v3/connections/{provider} \ --header 'Authorization: Bearer ' \ --header 'Content-Type: application/json' \ --data '{ "redirectUrl": "", "containerTags": [ "" ], "metadata": {}, "documentLimit": 5000 }' ``` ### Parameters - `provider`: The provider to connect to. Currently supported providers are `notion`, `google-drive`, `onedrive`, `web-crawler` - `redirectUrl`: The URL to redirect to after the connection is created (your app URL) - Note: For `web-crawler`, this is optional as no OAuth flow is required - `containerTags`: Optional. For partitioning users, organizations, etc. in your app. - Example: `["user_123", "project_alpha"]` - `metadata`: Optional. Any metadata you want to associate with the connection. - This metadata is added to every document synced from this connection. - For `web-crawler`, must include `startUrl` in metadata: `{"startUrl": "https://example.com"}` - `documentLimit`: Optional. Caps how many provider items are fetched **per sync run** (allowed range **1–10,000** when set). Exact behavior is provider-specific. - **Notion:** Pages come from the Notion Search API, **newest edited first**; once the limit is reached, remaining shareable pages are skipped until a later sync or a higher limit. See [Notion connector — Document limit](/connectors/notion#document-limit). - Default when omitted depends on how the connection is created (often **10,000** for hosted flows). - Use this to control scope and cost per sync. ## Response supermemory sends a response with the following schema: ```json { "id": "", "authLink": "", "expiresIn": "", "redirectsTo": "" } ``` For most providers (notion, google-drive, onedrive), you can use the `authLink` to redirect the user to the provider's login page. **Web Crawler Exception:** For `web-crawler` provider, `authLink` and `expiresIn` will be `null` since no OAuth flow is required. The connection is established immediately upon creation. Next up, managing connections.