---
title: "Organization Settings"
description: "Configure organization-wide settings and content filtering for Supermemory"
icon: "settings"
---
Organization settings control how Supermemory processes content across your entire organization. These settings apply to all memories and connectors, helping you:
- Filter content before indexing
- Configure custom OAuth applications for connectors
- Set organization-wide processing rules
- Control what gets indexed and what gets excluded
Settings are organization-wide and apply to all users and memories within your organization.
## Why Settings Matter
The settings endpoint is crucial for teaching Supermemory about your specific use case. It helps Supermemory understand:
- **What you are**: Your organization's specific use case and purpose
- **What to expect**: The types of content and information flowing through your system
- **How to interpret**: Context for understanding queries in your specific use case
- **What to prioritize**: Which content matters most for your users
### Example: Brand Guidelines Use Case
Without proper settings, when a user searches "what are our values?", Supermemory might return random documents mentioning "values". But with proper configuration:
```typescript
await client.settings.update({
shouldLLMFilter: true,
filterPrompt: `You are managing brand guidelines for Brand.ai.
You will receive all outbound content from our organization.
When users search, they're looking for:
- "What are our values?" → Return official brand values document
- "What's our tone of voice?" → Return brand voice guidelines
- "How do we describe our mission?" → Return approved mission statements
Focus on the latest approved brand materials, not drafts or outdated versions.`
});
```
Now Supermemory understands that:
- Searches about "values" refer to brand values, not financial values
- "Tone" means brand voice, not audio settings
- Priority should be given to official, approved content
This context dramatically improves search relevance and ensures users get the right information for their specific use case.
## API Endpoints
### Get Current Settings
Retrieve your organization's current settings configuration.
```typescript TypeScript
const settings = await client.settings.get();
console.log('Current settings:', settings);
```
```python Python
settings = client.settings.get()
print(f'Current settings: {settings}')
```
```bash cURL
curl -X GET "https://api.supermemory.ai/v3/settings" \
-H "Authorization: Bearer $SUPERMEMORY_API_KEY"
```
### Update Settings
Update your organization's settings. You only need to include the fields you want to change.
```typescript TypeScript
const updatedSettings = await client.settings.update({
shouldLLMFilter: true,
filterPrompt: "Only index technical documentation and code",
includeItems: ["*.md", "*.ts", "*.py"],
excludeItems: ["node_modules", ".git", "*.test.*"]
});
console.log('Updated fields:', updatedSettings.updated);
```
```python Python
updated_settings = client.settings.update(
should_llm_filter=True,
filter_prompt="Only index technical documentation and code",
include_items=["*.md", "*.ts", "*.py"],
exclude_items=["node_modules", ".git", "*.test.*"]
)
print(f'Updated fields: {updated_settings.updated}')
```
```bash cURL
curl -X PATCH "https://api.supermemory.ai/v3/settings" \
-H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"shouldLLMFilter": true,
"filterPrompt": "Only index technical documentation and code",
"includeItems": ["*.md", "*.ts", "*.py"],
"excludeItems": ["node_modules", ".git", "*.test.*"]
}'
```
## Content Filtering Settings
Control what content gets indexed into Supermemory.
### Basic Filtering
Use include/exclude patterns to filter content:
```typescript
await client.settings.update({
includeItems: [
"*.md", // All markdown files
"*.mdx", // MDX documentation
"docs/**", // Everything in docs folder
"src/**/*.ts" // TypeScript files in src
],
excludeItems: [
"node_modules", // Dependencies
".git", // Version control
"*.test.*", // Test files
"build/**", // Build outputs
"*.tmp" // Temporary files
]
});
```
### Intelligent LLM Filtering
Enable AI-powered content filtering for semantic understanding:
```typescript
await client.settings.update({
shouldLLMFilter: true,
filterPrompt: `You are filtering content for a technical documentation system.
Include:
- API documentation
- Code examples and tutorials
- Technical guides and references
- Architecture documentation
Exclude:
- Marketing materials
- Internal meeting notes
- Personal information
- Outdated or deprecated content
Focus on content that helps developers understand and use our APIs.`
});
```
## Connector OAuth Settings
Configure custom OAuth applications for connector integrations.
### Google Drive Custom OAuth
```typescript
await client.settings.update({
googleDriveCustomKeyEnabled: true,
googleDriveClientId: "your-client-id.apps.googleusercontent.com",
googleDriveClientSecret: "your-client-secret"
});
```
### Notion Custom OAuth
```typescript
await client.settings.update({
notionCustomKeyEnabled: true,
notionClientId: "your-notion-oauth-client-id",
notionClientSecret: "your-notion-oauth-client-secret"
});
```
### OneDrive Custom OAuth
```typescript
await client.settings.update({
onedriveCustomKeyEnabled: true,
onedriveClientId: "your-azure-app-id",
onedriveClientSecret: "your-azure-app-secret"
});
```
## Best Practices
### 1. Set Before Bulk Import
Configure settings before importing large amounts of content. Changes don't retroactively affect existing memories.
### 2. Be Specific in Filter Prompts
Provide clear context about your organization and expected search patterns:
```typescript
// Good - Specific and contextual
filterPrompt: `Technical documentation for developers.
Include: API references, code examples, error solutions.
Exclude: marketing content, personal data, test files.
Users search for: implementation details, troubleshooting, best practices.`
// Bad - Too vague
filterPrompt: "Only important content"
```
### 3. Test OAuth Credentials
Always test custom OAuth credentials in development before production:
```typescript
// Test connection after updating OAuth settings
const testConnection = await client.connections.create('google-drive', {
redirectUrl: 'https://yourapp.com/callback',
containerTags: ['test-connection']
});
```
### 4. Monitor Filter Effectiveness
Check what's being indexed to ensure filters work as expected:
```typescript
const memories = await client.memories.list({
containerTags: ['your-tags'],
limit: 10
});
// Review what's actually being indexed
memories.memories.forEach(memory => {
console.log(`Indexed: ${memory.title} - ${memory.type}`);
});
```
## Important Notes
**Settings Limitations:**
- Changes are organization-wide, not per-user
- Settings don't retroactively process existing memories
- OAuth credentials must be properly configured in respective platforms
- Filter patterns are applied during content ingestion
## Related Documentation
- [Connectors Overview](/connectors/overview) - Setting up external integrations
- [Google Drive Setup](/connectors/google-drive) - Configure Google Drive OAuth
- [Notion Setup](/connectors/notion) - Configure Notion OAuth
- [OneDrive Setup](/connectors/onedrive) - Configure OneDrive OAuth