---
title: "Get all memories (V3, paginated)"
method: POST
path: "/v3/memories/"
tags: ["memories"]
---

# Get all memories (V3, paginated)

`POST /v3/memories/`

List memories scoped by filters, paginated. Entity IDs **must** be passed inside the `filters` object. Top-level `user_id` / `agent_id` / `run_id` are rejected with 400. `filters` supports the same operator set as V2 search (`AND`, `OR`, `NOT`, `in`, `gte`, `lte`, etc.). Response is a paginated envelope; pass `page` and `page_size` as query parameters to step through results.

## Query parameters

- `page` integer
- `page_size` integer

## Request body

- object
  - `filters` object, required — Entity and metadata filters. Must include at least one entity ID (`user_id`, `agent_id`, `app_id`, or `run_id`).
  - `show_expired` boolean — When true, include memories whose `expiration_date` has passed. Expired memories are hidden by default.
  - `start_date` string, date — Only include memories created on or after this date (YYYY-MM-DD).
  - `end_date` string, date — Only include memories created on or before this date (YYYY-MM-DD).
  - `categories` string[] — Restrict results to memories tagged with any of these categories.
  - `fields` string[] — Restrict the fields returned per memory, e.g. ["id", "memory"].
  - `keywords` string — Free-text keyword filter applied on top of filters.
  - `page` integer — 1-indexed page number. Also accepted here in the request body; the query parameter of the same name takes precedence.
  - `page_size` integer — Results per page. Also accepted here in the request body; the query parameter of the same name takes precedence.

## Response `200`

Paginated envelope of memories.

- object
  - `count` integer, required — Total number of memories matching the filters.
  - `next` string, uri, nullable, required — URL for the next page, or `null` if this is the last page.
  - `previous` string, uri, nullable, required — URL for the previous page, or `null` if this is the first page.
  - `results` object[], required
    - `id` string, uuid, required — Unique memory identifier.
    - `memory` string, required — The extracted memory fact.
    - `user_id` string, nullable — User the memory is scoped to.
    - `agent_id` string, nullable — Agent the memory is scoped to.
    - `app_id` string, nullable — App the memory is scoped to.
    - `session_id` string, nullable — Run/session the memory is scoped to. Note: this endpoint returns this field as `session_id`, while `POST /v3/memories/search/` returns the same value as `run_id`.
    - `metadata` object, nullable — User-supplied metadata attached to the memory.
    - `categories` string[], nullable
    - `structured_attributes` object, nullable — System-derived temporal breakdown of the memory's creation time (e.g. year, month, day_of_week).
    - `replaced_by` string, nullable — ID of the memory that superseded this one, if any.
    - `synthesized` boolean — Whether this memory was synthesized rather than directly extracted.
    - `expiration_date` string, date, nullable — Date after which the memory is hidden from search and get-all unless `show_expired` is true.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time

## Other responses

- `400` — Validation error, e.g. empty `filters` or no positively-scoped entity ID.
- `401` — Unauthorized: missing or invalid API key.

---

[API](https://skmtc.net/mem0/apis/mem0-api-docs.md) · [All operations](https://skmtc.net/mem0/apis/mem0-api-docs/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mem0/mem0-api-docs/revisions/c86fe9831e7e/schema)
