Update a note
September 29, 2026
Table of contents
Change a note’s title, its text, or both. Google always saves the title and the text together, so the API fills in the current value of whichever field you leave out. The note id does not change.
https://api.useapi.net/v1/gemini-notebook/notes/
note
noteis required, the note id, URL-encoded in the path (it contains:and@). Note ids are returned by POST /notes and GET /notes. The id names its account, so noemailis needed.
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
API tokenis required, see Setup useapi.net for details.
Request Body
{
"title": "Eagle landing timeline",
"content": "Powered descent began at 102:33 GET. Landing at 102:45 GET."
}
titleis optional, the new title. When omitted, the title stays as it was.
Length:1to200characters.contentis optional, the new text. It replaces the whole text of the note. When omitted, the text stays as it was.
Length:1to500,000characters.
Provide title, content or both.
Responses
-
The updated note.
{ "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55", "note": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:e5514ee8-22e5-414d-aa67-86e8476ece09", "title": "Eagle landing timeline", "content": "Powered descent began at 102:33 GET. Landing at 102:45 GET.", "type": "note", "created": "2026-09-29T04:09:02.000Z", "updated": "2026-09-29T04:09:02.000Z" } -
A malformed note id, an empty or too long parameter, or nothing to change.
{ "error": "Provide title and/or content", "code": 400 } -
Invalid API token.
{ "error": "useapi.net ⁝ Unauthorized", "code": 401 } -
The note id was issued to a different API token.
{ "error": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:e5514ee8-22e5-414d-aa67-86e8476ece09 does not belong to this API token", "code": 403 } -
The note was deleted, its notebook was deleted, or its account is no longer configured.
{ "error": "Note user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:e5514ee8-22e5-414d-aa67-86e8476ece09 not found", "code": 404 } -
596 Account Error
Google reported the account as signed out. While we re-check it, the answer is the first message below. Retry in about a minute. If it stays signed out, the account is paused, you receive an email, and the answer becomes the second message until you re-add it via Setup Gemini Notebook.
{ "error": "Google reported this account as signed out. We are re-checking it — please retry in about a minute. If it stays signed out, you will receive a re-add email.", "code": 596 }{ "error": "Account [email protected]: Google signed this account out. Re-add it at https://useapi.net/docs/start-here/setup-gemini-notebook", "code": 596 } -
Google is temporarily unavailable or is challenging our network. Retry in a few minutes. A
502means Google answered with an unexpected error.{ "error": "Google is temporarily unavailable (cYAfTb grpc 14), please retry", "code": 503 }
Model
The note, as in GET /notes/note.
{ // TypeScript, all fields are optional
notebook: string
note: string // user:<id>-<email>-note:<notebook uuid>:<note uuid>
title: string
content: string
type: string // note | saved_answer | mindmap
created?: string // ISO 8601. Google moves it to the edit time when the content changes
updated?: string // ISO 8601
error: string // error responses only
code: number // error responses only, the HTTP status
}
Examples
-
NOTE="user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:e5514ee8-22e5-414d-aa67-86e8476ece09" curl -X POST "https://api.useapi.net/v1/gemini-notebook/notes/$(python3 -c "import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=''))" "$NOTE")" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer …" \ -d '{ "title": "Eagle landing timeline" }' -
const token = "API token"; const note = "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:e5514ee8-22e5-414d-aa67-86e8476ece09"; const apiUrl = `https://api.useapi.net/v1/gemini-notebook/notes/${encodeURIComponent(note)}`; const response = await fetch(apiUrl, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token}`, }, body: JSON.stringify({ content: "Powered descent began at 102:33 GET. Landing at 102:45 GET." }) }); const result = await response.json(); console.log("response", {response, result}); -
import requests, urllib.parse token = "API token" note = "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:e5514ee8-22e5-414d-aa67-86e8476ece09" apiUrl = "https://api.useapi.net/v1/gemini-notebook/notes/" + urllib.parse.quote(note, safe="") headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } data = { "title": "Eagle landing timeline", "content": "Powered descent began at 102:33 GET. Landing at 102:45 GET." } response = requests.post(apiUrl, headers=headers, json=data) print(response, response.json())