supermemory/apps/docs/memory-api/connectors/creating-connection.mdx

98 lines
3.3 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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}`
<CodeGroup>
```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": "<string>",
"containerTags": ["<string>"],
"metadata": {},
"documentLimit": 5000
}
headers = {
"Authorization": "Bearer <token>",
"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 <token>' \
--header 'Content-Type: application/json' \
--data '{
"redirectUrl": "<string>",
"containerTags": [
"<string>"
],
"metadata": {},
"documentLimit": 5000
}'
```
</CodeGroup>
### 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 **110,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": "<string>",
"authLink": "<string>",
"expiresIn": "<string>",
"redirectsTo": "<string>"
}
```
For most providers (notion, google-drive, onedrive), you can use the `authLink` to redirect the user to the provider's login page.
<Note>
**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.
</Note>
Next up, managing connections.