List notebooks

September 29, 2026

Table of contents

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

List the notebooks of your Gemini Notebook accounts, read live from Google. The response has one entry per account. Without email, every healthy account is listed and accounts in an error state are skipped (see GET /accounts). An account that fails while being read returns an error in its entry instead of notebooks, and the other accounts are still listed.

The list includes notebooks created in the Gemini Notebook web app, not only the ones created through the API. Use GET /notebooks/notebook for a notebook’s sources and artifacts.

https://api.useapi.net/v1/gemini-notebook/notebooks/?…

Request Headers
Authorization: Bearer {API token}
Query Parameters
  • email is optional, list only this account’s notebooks. When omitted, every healthy account is listed.
Responses
  • 200 OK

    [
      {
        "email": "[email protected]",
        "notebooks": [
          {
            "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
            "title": "Apollo 11",
            "emoji": "🚀",
            "sources": 17,
            "created": "2026-09-27T23:24:40.000Z",
            "updated": "2026-09-27T23:25:32.000Z"
          },
          {
            "notebook": "user:[email protected]:93e89cc9-db25-46d0-bc14-216736e6b4c2",
            "title": "",
            "emoji": null,
            "sources": 0,
            "created": "2026-09-27T22:45:33.000Z",
            "updated": "2026-09-27T22:45:34.000Z"
          }
        ]
      },
      {
        "email": "[email protected]",
        "error": "Could not reach Gemini Notebook (HTTP 500), please retry"
      }
    ]
    
  • 400 Bad Request

    {
      "error": "Parameter limit not supported",
      "code": 400
    }
    
  • 401 Unauthorized

    Invalid API token.

    {
      "error": "useapi.net ⁝ Unauthorized",
      "code": 401
    }
    
  • 404 Not Found

    The email account is not configured.

    {
      "error": "Account [email protected] not found",
      "code": 404
    }
    
Model
{ // TypeScript, all fields are optional
  email: string              // the account
  notebooks: {
    notebook: string         // user:<userId>-<email>-notebook:<uuid>, URL-encode it when used in a path
    title: string            // '' for an untitled notebook
    emoji: string | null     // the notebook's emoji
    sources: number          // number of sources in the notebook
    created: string | null   // ISO 8601
    updated: string | null   // ISO 8601
  }[]
  error: string              // instead of notebooks, when this account could not be read
}[]
Examples
  • curl "https://api.useapi.net/v1/gemini-notebook/notebooks/[email protected]" \
       -H "Accept: application/json" \
       -H "Authorization: Bearer …"
    
  • const token = "API token";
    const email = "Previously configured account email";
    const apiUrl = `https://api.useapi.net/v1/gemini-notebook/notebooks/?email=${encodeURIComponent(email)}`;
    const response = await fetch(apiUrl, {
      headers: {
        "Authorization": `Bearer ${token}`,
      },
    });
    const result = await response.json();
    console.log("response", {response, result});
    
  • import requests
    token = "API token"
    email = "Previously configured account email"
    apiUrl = "https://api.useapi.net/v1/gemini-notebook/notebooks/"
    headers = {
        "Authorization" : f"Bearer {token}"
    }
    response = requests.get(apiUrl, headers=headers, params={"email": email})
    print(response, response.json())
    
Try It