---
title: "Post Get"
method: POST
path: "/api/v1/memory/get"
tags: ["memory"]
---

# Post Get

`POST /api/v1/memory/get`

Paginated listing over the requested ``memory_type``.

## Request body

- GetRequest — Request body for ``POST /api/v2/memory/get``. Callers identify the memory owner via ``user_id`` XOR ``agent_id`` — exactly one must be set. Internally the manager keeps using ``owner_id`` / ``owner_type`` (the storage tables' columns); those are exposed as derived properties so the rename only affects the wire contract.
  - `user_id` string, nullable
  - `agent_id` string, nullable
  - `app_id` string
  - `project_id` string
  - `memory_type` 'episode' | 'profile' | 'agent_case' | 'agent_skill', required — The four kinds enumerated by ``/get``. ``episode`` and ``profile`` are user-owned; ``agent_case`` and ``agent_skill`` are agent-owned. Cross-pairs are rejected by :meth:`GetRequest._validate_owner_memory_type_pair`. Naming note: all four values use the bare kind name (no ``_memory`` suffix) and match the LanceDB table name + everalgo type name for that kind.
  - `page` integer
  - `page_size` integer
  - `sort_by` 'timestamp' | 'updated_at'
  - `sort_order` 'asc' | 'desc'
  - `filters` FilterNode — One Filters DSL node. Recursive ``AND`` / ``OR`` arrays mix with arbitrary scalar fields at the same level. Pydantic only checks the combinators; field-level safety is enforced when compiling the node to a LanceDB ``where`` string in :mod:`everos.memory.search.filters`.
    - `AND` FilterNode[], nullable
    - `OR` FilterNode[], nullable

## Response `200`

Successful Response

- GetResponse — Top-level response envelope.
  - `request_id` string, required
  - `data` GetData, required — Body of ``response.data``. All four arrays are always present so client code can iterate without branching on ``memory_type``; the route populates exactly one.
    - `episodes` GetEpisodeItem[]
      - `id` string, required
      - `user_id` string, nullable, required
      - `app_id` string
      - `project_id` string
      - `session_id` string, required
      - `timestamp` string, date-time, required
      - `sender_ids` string[]
      - `summary` string, required
      - `subject` string, required
      - `episode` string, required
      - `type` 'Conversation', required
    - `profiles` GetProfileItem[]
      - `id` string, required
      - `user_id` string, nullable, required
      - `app_id` string
      - `project_id` string
      - `profile_data` object, required
    - `agent_cases` GetAgentCaseItem[]
      - `id` string, required
      - `agent_id` string, required
      - `app_id` string
      - `project_id` string
      - `session_id` string, required
      - `task_intent` string, required
      - `approach` string, required
      - `quality_score` number, required
      - `key_insight` string, nullable
      - `timestamp` string, date-time, required
    - `agent_skills` GetAgentSkillItem[]
      - `id` string, required
      - `agent_id` string, required
      - `app_id` string
      - `project_id` string
      - `name` string, required
      - `description` string, required
      - `content` string, required
      - `confidence` number, required
      - `maturity_score` number, required
      - `source_case_ids` string[]
    - `total_count` integer
    - `count` integer

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/evermind-ai/apis/everos.md) · [All operations](https://skmtc.dev/evermind-ai/apis/everos/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/evermind-ai/everos/revisions/9a2e78d664d6/schema)
