PatchMemoryRequest
Request schema for ``PATCH /api/v1/memory/{memory_id}`` (Issue #439). UUID-addressed partial update. ``memory_id`` is the URL path param, not a body field — there is intentionally no ``external_id`` upsert mode here (use the existing ``update_memory`` MCP tool for that). All fields are optional. Only fields explicitly provided are updated; omitted fields preserve their current value. ``tags`` follows replace-all semantics (an empty list clears tags; a non-empty list replaces the whole list); ``add_tags`` / ``remove_tags`` and ``details_patch`` edit the stored list and details instead (#2585, see ``UpdateMemoryRequest``). ``scope`` and ``context_id`` are intentionally excluded — they have orthogonal lifecycles handled by separate operations. ``accept_supersede_candidate`` / ``dismiss_supersede_candidate`` (#2600) are update_memory's flags with its rules: the web dialog's accept runs the same path, so the edge is kept under the carrier's author.
Properties
| Name | Type | Description |
|---|---|---|
| summary | object | |
| content | object | |
| type | object | |
| importance | object | |
| tags | object | |
| add_tags | object | Tags to append to the stored list (each once, in order; not with tags). Applied after remove_tags. |
| remove_tags | object | Tags to remove from the stored list; one that is not there is ignored (not with tags). |
| details | object | |
| details_patch | object | Shallow merge into the stored details (a NULL column merges into {}); a null value deletes the key (not with details). |
| observed_at | object | |
| expected_version | object | |
| dismiss_supersede_candidate | boolean | Reject the memory's current supersede_candidate (the pair is tombstoned; neither memory is deleted). May share the patch with field edits. |
| accept_supersede_candidate | boolean | Accept the memory's current supersede_candidate: a declared supersedes edge from this memory to the candidate. No field edits in the same patch. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/kagura-ai-com/json-schema/kagura-ai-com-patch-memory-request-schema.json",
"title": "PatchMemoryRequest",
"description": "Request schema for ``PATCH /api/v1/memory/{memory_id}`` (Issue #439).\n\nUUID-addressed partial update. ``memory_id`` is the URL path param, not a\nbody field — there is intentionally no ``external_id`` upsert mode here\n(use the existing ``update_memory`` MCP tool for that).\n\nAll fields are optional. Only fields explicitly provided are updated;\nomitted fields preserve their current value. ``tags`` follows replace-all\nsemantics (an empty list clears tags; a non-empty list replaces the\nwhole list); ``add_tags`` / ``remove_tags`` and ``details_patch`` edit the\nstored list and details instead (#2585, see ``UpdateMemoryRequest``).\n``scope`` and ``context_id`` are intentionally excluded — they have\northogonal lifecycles handled by separate operations.\n``accept_supersede_candidate`` / ``dismiss_supersede_candidate`` (#2600)\nare update_memory's flags with its rules: the web dialog's accept runs\nthe same path, so the edge is kept under the carrier's author.",
"x-generated": "2026-11-13",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/kagura-ai-com-openapi.json#/components/schemas/PatchMemoryRequest",
"properties": {
"summary": {
"anyOf": [
{
"type": "string",
"maxLength": 500,
"minLength": 10
},
{
"type": "null"
}
],
"title": "Summary"
},
"content": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
],
"title": "Content"
},
"type": {
"anyOf": [
{
"type": "string",
"maxLength": 50,
"minLength": 1
},
{
"type": "null"
}
],
"title": "Type"
},
"importance": {
"anyOf": [
{
"type": "number",
"maximum": 1.0,
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Importance"
},
"tags": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array",
"maxItems": 100
},
{
"type": "null"
}
],
"title": "Tags"
},
"add_tags": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array",
"maxItems": 100
},
{
"type": "null"
}
],
"title": "Add Tags",
"description": "Tags to append to the stored list (each once, in order; not with tags). Applied after remove_tags."
},
"remove_tags": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Remove Tags",
"description": "Tags to remove from the stored list; one that is not there is ignored (not with tags)."
},
"details": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Details"
},
"details_patch": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Details Patch",
"description": "Shallow merge into the stored details (a NULL column merges into {}); a null value deletes the key (not with details)."
},
"observed_at": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"title": "Observed At"
},
"expected_version": {
"anyOf": [
{
"type": "integer",
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Expected Version"
},
"dismiss_supersede_candidate": {
"type": "boolean",
"title": "Dismiss Supersede Candidate",
"description": "Reject the memory's current supersede_candidate (the pair is tombstoned; neither memory is deleted). May share the patch with field edits.",
"default": false
},
"accept_supersede_candidate": {
"type": "boolean",
"title": "Accept Supersede Candidate",
"description": "Accept the memory's current supersede_candidate: a declared supersedes edge from this memory to the candidate. No field edits in the same patch.",
"default": false
}
},
"type": "object"
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/kagura-ai-com-patch-memory-request"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.