Create a note
September 29, 2026
Table of contents
Add a note to a notebook, the same as writing one in the notes panel of the Gemini Notebook web app. A note is not a source: chat and Studio do not read it until you turn it into one with POST /notes/source.
Instead of writing the text yourself, you can save a whole chat conversation as one note: pass its conversation id from POST /chat or GET /chat. The note is titled Chat History unless you pass title, and its text lists the turns oldest first, each question as **Q:** … and each answer as **A:** …, separated by blank lines. Up to the last 100 turns are included.
List a notebook’s notes with GET /notes, and change one with POST /notes/note.
https://api.useapi.net/v1/gemini-notebook/notes
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
{
"notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
"title": "Landing timeline",
"content": "Powered descent began at 102:33 GET."
}
notebookis required, the notebook id returned by POST /notebooks or GET /notebooks. The id names its account, so noemailis needed.contentis optional, the note’s text.
Length:1to500,000characters.conversationis optional, the id of a chat conversation of this notebook, from POST /chat or GET /chat. The whole conversation is saved as the note’s text.titleis optional, the note’s title.
Default:New Note, orChat Historywithconversation. Length:1to200characters.
Provide either content or conversation, not both.
Responses
-
{ "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55", "note": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:e5514ee8-22e5-414d-aa67-86e8476ece09", "title": "Landing timeline", "content": "Powered descent began at 102:33 GET.", "type": "note", "created": "2026-09-29T04:08:58.000Z", "updated": "2026-09-29T04:08:58.000Z" }Saved from a conversation (
"conversation": "fd20f12d-611f-4008-9e61-94e02af005a9", answer shortened):{ "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55", "note": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:463766a0-92ce-4182-9cae-2649d1d7231d", "title": "Chat History", "content": "**Q:** What were the 1202 alarms?\n\n**A:** The 1202 program alarms during lunar descent indicated \"executive overflows,\" meaning the guidance computer was overloaded...\n\n**Q:** Who told the crew it was safe to continue?\n\n**A:** ...", "type": "note", "created": "2026-09-29T20:20:33.000Z", "updated": "2026-09-29T20:20:33.000Z" } -
A missing, empty or malformed parameter.
{ "error": "Provide content, or conversation to save a chat conversation as a note", "code": 400 } -
Invalid API token.
{ "error": "useapi.net ⁝ Unauthorized", "code": 401 } -
The notebook id was issued to a different API token.
{ "error": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55 does not belong to this API token", "code": 403 } -
The notebook was deleted, its account is no longer configured, or the
conversationhas no turns in this notebook (Conversation <id> has no turns in this notebook).{ "error": "Account [email protected] of user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55 is not configured", "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 (CYK0Xb grpc 14), please retry", "code": 503 }
Model
The note, as GET /notes lists it, plus its notebook.
{ // TypeScript, all fields are optional
notebook: string
note: string // user:<id>-<email>-note:<notebook uuid>:<note uuid>
title: string
content: string
type: string // note
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
-
curl -X POST "https://api.useapi.net/v1/gemini-notebook/notes" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer …" \ -d '{ "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55", "title": "Landing timeline", "content": "Powered descent began at 102:33 GET." }' -
const token = "API token"; const apiUrl = "https://api.useapi.net/v1/gemini-notebook/notes"; const response = await fetch(apiUrl, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token}`, }, body: JSON.stringify({ notebook: "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55", title: "Landing timeline", content: "Powered descent began at 102:33 GET." }) }); const result = await response.json(); console.log("response", {response, result}); -
import requests token = "API token" apiUrl = "https://api.useapi.net/v1/gemini-notebook/notes" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } data = { "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55", "title": "Landing timeline", "content": "Powered descent began at 102:33 GET." } response = requests.post(apiUrl, headers=headers, json=data) print(response, response.json())