Update a note

September 29, 2026

Table of contents

  1. Request Headers
  2. Request Body
  3. Responses
  4. Model
  5. Examples
  6. Try It

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

  • note is 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 no email is needed.
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
Request Body
{
  "title": "Eagle landing timeline",
  "content": "Powered descent began at 102:33 GET. Landing at 102:45 GET."
}
  • title is optional, the new title. When omitted, the title stays as it was.
    Length: 1 to 200 characters.
  • content is optional, the new text. It replaces the whole text of the note. When omitted, the text stays as it was.
    Length: 1 to 500,000 characters.

Provide title, content or both.

Responses
  • 200 OK

    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"
    }
    
  • 400 Bad Request

    A malformed note id, an empty or too long parameter, or nothing to change.

    {
      "error": "Provide title and/or content",
      "code": 400
    }
    
  • 401 Unauthorized

    Invalid API token.

    {
      "error": "useapi.net ⁝ Unauthorized",
      "code": 401
    }
    
  • 403 Forbidden

    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
    }
    
  • 404 Not Found

    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
    }
    
  • 503 Service Unavailable

    Google is temporarily unavailable or is challenging our network. Retry in a few minutes. A 502 means 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())
    
Try It