---
title: "Create firm memory entry (creator-only) · 0 credits"
method: POST
path: "/api/v1/firm-memory"
tags: ["Firm Memory"]
---

# Create firm memory entry (creator-only) · 0 credits

`POST /api/v1/firm-memory`

## Request

- Base URL: `https://legal.nexusquantum.legal`
- URL: `https://legal.nexusquantum.legal/api/v1/firm-memory`
- Auth: HTTP bearer

Creates an entry; the caller becomes its creator (only they can edit or delete it). `title` and `content` are required. `jurisdiction`/`subject_matter`/`case_id` are optional SCOPE fields of the data (NOT routing defaults — ES is never assumed). No charge. Scope: cases | mcp | *.

## Request body

- CreateFirmMemoryRequest
  - `title` string, required
  - `content` string, required
  - `category` 'clausula' | 'tono' | 'riesgo' | 'formato' | 'general'
  - `sort_order` integer
  - `jurisdiction` string: ISO scope code (OPTIONAL; NOT a routing default — assuming ES is forbidden).
  - `subject_matter` string: Subject matter scope (OPTIONAL).
  - `case_id` string, uuid: Associated case (OPTIONAL; must be from your firm → otherwise 403; non-existent → 404).

## Response `201`

FirmMemory created.

- FirmMemory: FIRM MEMORY entry (persistent playbook/tone/risk/format that grounds analyses and drafts). Reads are firm-scoped (every firm member); writes are creator-only (only the creator — `user_id` — can edit or delete). `jurisdiction`/`subject_matter`/`case_id` are OPTIONAL SCOPE fields of the record, NOT routing defaults. Every content/scope edit archives a snapshot and bumps `version`.
  - `id` string, uuid
  - `category` 'clausula' | 'tono' | 'riesgo' | 'formato' | 'general': Entry category (default general).
  - `title` string
  - `content` string
  - `active` boolean
  - `sort_order` integer: Display order (default 0).
  - `jurisdiction` string, nullable: ISO code scoping the entry (ES, CO…). OPTIONAL; NEVER assumed by default.
  - `subject_matter` string, nullable: Legal subject matter scope (e.g. laboral).
  - `case_id` string, uuid, nullable: Associated case (must belong to your firm).
  - `version` integer: Current version (starts at 1; bumps on every content/scope edit).
  - `previous_version_id` string, uuid, nullable
  - `user_id` string, uuid: Entry creator (creator-only for writes).
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `400`: title/content missing or too long | invalid category
- `403`: case_id outside your firm
- `404`: case_id does not exist

---

[API](https://skmtc.dev/nexusquantum/apis/nexus-legal-api.md) · [All operations](https://skmtc.dev/nexusquantum/apis/nexus-legal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nexusquantum/apis/nexus-legal-api/revisions/4084d8d4eb0b?raw)
