--- title: "List Memories" description: "Retrieve paginated memories with filtering and sorting options" sidebarTitle: "Overview" --- Retrieve paginated memories with filtering and sorting options from your Supermemory account. ## Quick Start ```typescript import Supermemory from 'supermemory'; const client = new Supermemory({ apiKey: process.env.SUPERMEMORY_API_KEY! }); const memories = await client.documents.list({ limit: 10 }); console.log(memories); ``` ```python from supermemory import Supermemory import os client = Supermemory(api_key=os.environ.get("SUPERMEMORY_API_KEY")) memories = client.documents.list(limit=10) print(f"Found {len(memories.memories)} memories") ``` ```bash curl -X POST "https://api.supermemory.ai/v3/documents/list" \ -H "Authorization: Bearer $SUPERMEMORY_API_KEY" \ -H "Content-Type: application/json" \ -d '{"limit": 10}' ``` ## Response Schema The endpoint returns a structured response containing your memories and pagination information: ```json { "memories": [ { "id": "abc123", "connectionId": null, "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T10:35:00.000Z", "customId": "ml-basics-001", "title": "Introduction to Machine Learning", "summary": "This document introduces machine learning as a subset of artificial intelligence...", "status": "done", "type": "text", "metadata": { "category": "education", "priority": "high", "source": "research-notes" }, "containerTags": ["user_123", "ai-research"] } ], "pagination": { "currentPage": 1, "totalPages": 3, "totalItems": 25, "limit": 10 } } ``` ### Memory Object Fields | Field | Type | Description | |-------|------|-------------| | `id` | string | Unique identifier for the memory | | `status` | ProcessingStatus | Current processing status (`queued`, `extracting`, `chunking`, `embedding`, `indexing`, `done`, `failed`) | | `type` | MemoryType | Content type (`text`, `pdf`, `webpage`, `video`, `image`, etc.) | | `title` | string \| null | Auto-generated or custom title | | `summary` | string \| null | AI-generated summary of content | | `createdAt` | string | ISO 8601 creation timestamp | | `updatedAt` | string | ISO 8601 last update timestamp | | Field | Type | Description | |-------|------|-------------| | `customId` | string \| null | Your custom identifier for the memory | | `connectionId` | string \| null | ID of connector that created this memory | | `metadata` | object \| null | Custom key-value metadata you provided | | `containerTags` | string[] | Tags for organizing and filtering memories | ## Key Parameters All parameters are optional and sent in the request body since this endpoint uses `POST`: **Number of items per page.** Controls how many memories are returned in a single request. Maximum recommended: 200 for optimal performance. **Page number to fetch (1-indexed).** Use with `limit` to paginate through large result sets. **Filter by tags.** Memories must match ALL provided tags. Use for filtering by user ID, project, or custom organization tags. **Sort field.** Options: `"createdAt"` (when memory was added) or `"updatedAt"` (when memory was last modified). **Sort direction.** Use `"desc"` for newest first, `"asc"` for oldest first. **Advanced filtering.** Filter based on metadata with advanced SQL logic. ## Examples Simple memory retrieval with default settings Filter by tags, status, and other criteria Handle large datasets with pagination Track processing status across memories The `/v3/documents/list` endpoint uses **POST** method, not GET. This allows for complex filtering parameters in the request body.