---
title: "List Deal Memos"
method: GET
path: "/api/external/v2/deals/{deal_id}/memos"
tags: ["external-v2-deals"]
---

# List Deal Memos

`GET /api/external/v2/deals/{deal_id}/memos`

List the memos (document-generation deal books) for a deal.

Returns both published memos and unpublished drafts so callers can support
preview-your-own-work flows; each row carries ``status`` (``"draft"`` |
``"published"``) and ``published_at`` to disambiguate. Authorizes the deal
first (404 when inaccessible), then filters the deal's memos through the
``DOCUMENT_GENERATION_STRUCTURE`` READ policy so a caller who reaches the
deal via shared-vault access only sees memos that were actually shared into
their vault (the memo policy's two strategies are deal-membership and
shared-vault, OR'd at query level). PDF download links are omitted here —
fetch a single memo for signed ``pdf_url`` links.

Where the deal documents/vaults surface is enabled for the caller, each memo
is tagged with ``vaults`` — the ``{id, type, title}`` of the vaults it lives
in, scoped to the caller's visible vaults (a subset of GET
/deals/{deal_id}/vaults; empty when none are visible). ``vault_id`` scopes
the list to the memos in a single vault (a vault id not on this deal 404s).
Both are inert until that surface is enabled, so vault names don't surface
ahead of its launch.

## Path parameters

- `deal_id` integer, required

## Query parameters

- `limit` integer — Number of results to return (1-200, clamped)
- `offset` integer — Offset for pagination (>= 0, clamped)
- `search` string, nullable — Case-insensitive substring search on memo title.
- `vault_id` integer, nullable — Drill into one vault on this deal (use the ``id`` from GET /deals/{deal_id}/vaults) to list only the memos in it. Omit to list the deal's memos across all vaults. A vault id that does not belong to this deal 404s. Effective only where the deal documents/vaults surface is enabled.

## Response `200`

Successful Response

- MemoListResponse — OpenAPI schema for GET /api/external/v2/deals/<id>/memos (list envelope).
  - `request_id` string, required
  - `timestamp` string, required
  - `data` MemoResponse[], required
    - `uuid` string, required
    - `title` string, nullable, required
    - `memo_type` string, nullable, required
    - `status` string, required
    - `published_at` string, nullable, required
    - `updated_at` string, required
    - `created_by` MemoCreatedByResponse, required — The user who created the memo ("Made in Lev by …").
      - `id` integer, required
      - `name` string, nullable, required
    - `pdf_generation_status` string, nullable, required
    - `pdf_ready` boolean, required
    - `memo_url` string, required
    - `vaults` MemoVaultRef[]
      - `id` integer, required
      - `type` 'resources' | 'shared', required
      - `title` string, nullable
  - `pagination` unknown, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/lev/apis/lev-api.md) · [All operations](https://skmtc.net/lev/apis/lev-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lev/lev-api/versions/5bfe74cf6f12/schema)
