MemoService · MemoService_UpdateMemo
When updateMask includes attachments, the provided list replaces the complete attachment set. Omitted attachments are deleted, including storage cleanup. Retaining only one member of an existing APPLE_LIVE_PHOTO pair can remove both members, including the one explicitly retained, if the update passes content-reference validation; keep the full pair or intentionally remove both. Content changes must remain consistent with managed image references. Review the attachment replacement operation before updating these fields.
Access
Requires the memo creator or an instance administrator. Updates and share management also check applicable space placement. Space membership by itself does not grant ownership of another member's memo.
Patch only the intended fields
Send a Memo-shaped JSON body and an explicit updateMask. Supported paths include content, visibility, space, pinned, state, create_time, update_time, location, attachments and relations. The server does not automatically refresh updateTime for every edit; include update_time in the mask when you want it updated. Changing a SPACE memo's placement requires an explicit visibility decision. Active share grants must be removed before changing visibility to SPACE. The example changes only content; MEMO_ID is the final segment of a name you already own.
curl --fail-with-body -X PATCH \
-H "Authorization: Bearer $MEMOS_TOKEN" \
-H "Content-Type: application/json" \
--data '{"content":"Updated API test memo"}' \
"$MEMOS_URL/api/v1/memos/$MEMO_ID?updateMask=content"Keep existing Live Photo pairs complete
When replacing attachments, submitting only one member of an existing APPLE_LIVE_PHOTO pair removes the entire pair from the requested set, including the submitted member. If content-reference validation passes and the update proceeds, both members are deleted. Keep both attachment resource names or intentionally remove both. This differs from DeleteAttachment and BatchDeleteAttachments, which reject a partial group. Check the current set before retrying a write whose response was lost.
Request
UpdateMemo updates a memo.
/api/v1/memos/{memo}Parameters
| Name / location | Type / requirement | Description |
|---|---|---|
memopath | string Required | The memo id. |
updateMaskquery | string (field-mask) Required (contract description) | Required. The list of fields to update. |
Request body
Required
application/json · Memo
Responses
200 · OK
application/json · Memo
default · Default error response
application/json · Status
Complete operation definition
All declared constraints, media types and response details are retained below. Schema references link to their complete definitions.
Open JSON definition
{
"tags": [
"MemoService"
],
"description": "UpdateMemo updates a memo.",
"operationId": "MemoService_UpdateMemo",
"parameters": [
{
"name": "memo",
"in": "path",
"description": "The memo id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "updateMask",
"in": "query",
"description": "Required. The list of fields to update.",
"schema": {
"type": "string",
"format": "field-mask"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Memo"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Memo"
}
}
}
},
"default": {
"description": "Default error response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Status"
}
}
}
}
}
}