--- title: "Searching Memories" description: "Learn how to search for and retrieve content from supermemory" --- 1. **Query Formulation**: - Use natural language queries - Include relevant keywords - Be specific but not too verbose 2. **Filtering**: - Use metadata filters for precision - Combine multiple filters when needed - Use appropriate thresholds 3. **Performance**: - Set appropriate result limits - Use specific document/chunk filters - Consider response timing ## Basic Search To search through your memories, send a POST request to `/search`: ```bash cURL curl https://api.supermemory.ai/v3/search?q=machine+learning+concepts&limit=10 \ --request GET \ --header 'Authorization: Bearer SUPERMEMORY_API_KEY' ``` ```typescript Typescript await client.search.execute({ q: "machine learning concepts", limit: 10, }); ``` ```python Python client.search.execute( q="machine learning concepts", limit=10 ) ``` The API will return relevant matches with their similarity scores: ```json { "results": [ { "documentId": "doc_xyz789", "chunks": [ { "content": "Machine learning is a subset of artificial intelligence...", "isRelevant": true, "score": 0.85 } ], "score": 0.95, "metadata": { "source": "web", "category": "technology" }, "title": "Introduction to Machine Learning" } ], "total": 1, "timing": 123.45 } ``` ## Search Parameters ```json { "q": "search query", // Required: Search query string "limit": 10, // Optional: Max results (default: 10) "threshold": 0.6, // Optional: Min similarity score (0-1, default: 0.6) "containerTag": "user_123", // Optional: Filter by container tag "rerank": false, // Optional: Rerank results for better relevance "rewriteQuery": false, // Optional: Rewrite query for better matching "include": { "documents": false, // Optional: Include document metadata "summaries": false, // Optional: Include document summaries "relatedMemories": false, // Optional: Include related memory context "forgottenMemories": false // Optional: Include forgotten memories in results }, "filters": { // Optional: Metadata filters "AND": [ { "key": "category", "value": "technology" } ] } } ``` ## Search Response The search response includes: ```json { "results": [ { "documentId": "string", // Document ID "chunks": [ { // Matching chunks "content": "string", // Chunk content "isRelevant": true, // Is directly relevant "score": 0.95 // Similarity score } ], "score": 0.95, // Document score "metadata": {}, // Document metadata "title": "string", // Document title "createdAt": "string", // Creation date "updatedAt": "string" // Last update date } ], "total": 1, // Total results "timing": 123.45 // Search time (ms) } ``` ## Including Forgotten Memories By default, the search API excludes memories that have been marked as forgotten or have passed their expiration date. To include these in your search results, set `include.forgottenMemories` to `true`: ```bash cURL curl https://api.supermemory.ai/v4/search \ --request POST \ --header 'Authorization: Bearer SUPERMEMORY_API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "q": "old project notes", "include": { "forgottenMemories": true } }' ``` ```typescript Typescript await client.search.memories({ q: "old project notes", include: { forgottenMemories: true } }); ``` ```python Python await client.search.memories( q="old project notes", include={ "forgottenMemories": True } ) ``` Forgotten memories are memories that have been explicitly forgotten using the forget API or have passed their automatic expiration date (`forgetAfter`). Including them in search results can help recover information that may still be relevant. ## Next Steps Explore more advanced features in our [API Reference](/api-reference/search-memories/search-memories).