Create a mind map note

September 29, 2026

Table of contents

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

Generate a mind map of a notebook’s sources in a single call and save it as a note, the older note-based mind map of Gemini Notebook. The answer carries the new note and the mind map as a JSON tree of { name, children } nodes. The note is titled after the tree’s root, has type: mindmap, and its content is the same tree as a JSON string.

This is not a job: the call waits for Google and answers when the mind map is ready. It took about 9 seconds in our tests. For Studio’s interactive mind map, run as a job and listed with the notebook’s artifacts, use POST /artifacts with type: "mindmap".

The mind map is built from the sources whose status is ready, or from the sources you pass. A notebook with no ready source returns 409.

https://api.useapi.net/v1/gemini-notebook/notes/mindmap

Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
Request Body
{
  "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
  "instructions": "Focus on the landing",
  "language": "en"
}
  • notebook is required, the notebook id. The id names its account, so no email is needed.
  • sources is optional, an array of 1 to 300 source ids from that notebook to build the mind map from.
    Default: every source whose status is ready.
  • language is optional, the language of the mind map, as a language code such as en, es, pt_BR or zh_Hans.
    Default: en.
  • instructions is optional, what to focus on.
    Maximum length: 10,000 characters.
Responses
  • 201 Created

    The new note and its tree (tree and content shortened).

    {
      "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
      "note": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:e99087c9-a2a5-41b4-ad89-067047045e3a",
      "title": "Apollo 11 Mission",
      "content": "{\n  \"name\": \"Apollo 11 Mission\",\n  \"children\": [\n    {\n      \"name\": \"Background & Goals\",\n ...",
      "type": "mindmap",
      "created": "2026-09-29T20:20:42.000Z",
      "updated": "2026-09-29T20:20:42.000Z",
      "tree": {
        "name": "Apollo 11 Mission",
        "children": [
          {
            "name": "Background & Goals",
            "children": [
              {
                "name": "Cold War Space Race"
              },
              {
                "name": "JFK Moon Challenge (1961)"
              }
            ]
          },
          {
            "name": "Personnel",
            "children": [
              {
                "name": "Prime Crew",
                "children": [
                  {
                    "name": "Neil Armstrong (Commander)"
                  },
                  {
                    "name": "Michael Collins (CMP)"
                  },
                  {
                    "name": "Buzz Aldrin (LMP)"
                  }
                ]
              }
            ]
          }
        ]
      }
    }
    
  • 400 Bad Request

    A missing or malformed parameter, or a source from another notebook.

    {
      "error": "Parameter language must be a language code such as en, es, pt_BR or zh_Hans",
      "code": 400
    }
    
  • 401 Unauthorized

    Invalid API token.

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

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

    The notebook was deleted, or its account is no longer configured.

    {
      "error": "Not found on account [email protected] (Google rLM1Ne grpc 5)",
      "code": 404
    }
    
  • 409 Conflict

    The notebook has no ready sources. Check each source’s status with GET /notebooks/notebook.

    {
      "error": "The notebook has no ready sources",
      "code": 409
    }
    
  • 502 Bad Gateway

    Google answered without a mind map, or with an unexpected error. The API does not retry the call, so after a 502 or 504 check GET /notes before you try again.

    {
      "error": "Google request failed: mind map generation returned no tree",
      "code": 502
    }
    
  • 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 (yyryJe grpc 14), please retry",
      "code": 503
    }
    
Model

The note, as in GET /notes/note, plus tree.

{ // TypeScript, all fields are optional
  notebook: string
  note: string                 // user:<id>-<email>-note:<notebook uuid>:<note uuid>
  title: string                // the tree's root name
  content: string              // the tree as a JSON string
  type: 'mindmap'
  created?: string             // ISO 8601
  updated?: string             // ISO 8601
  tree: MindMapNode
  error: string                // error responses only
  code: number                 // error responses only, the HTTP status
}

type MindMapNode = {
  name: string
  children?: MindMapNode[]
}
Examples
  • curl -X POST "https://api.useapi.net/v1/gemini-notebook/notes/mindmap" \
       -H "Content-Type: application/json" \
       -H "Authorization: Bearer …" \
       -d '{ "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55" }'
    
  • const token = "API token";
    const apiUrl = "https://api.useapi.net/v1/gemini-notebook/notes/mindmap";
    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",
        instructions: "Focus on the landing"
      })
    });
    const result = await response.json();
    console.log("response", {response, result});
    
  • import requests
    token = "API token"
    apiUrl = "https://api.useapi.net/v1/gemini-notebook/notes/mindmap"
    headers = {
        "Content-Type": "application/json",
        "Authorization" : f"Bearer {token}"
    }
    data = {
        "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
        "language": "es"
    }
    response = requests.post(apiUrl, headers=headers, json=data)
    print(response, response.json())
    
Try It