Retrieve a notebook

September 29, 2026

Table of contents

  1. Request Headers
  2. Responses
  3. Source and artifact values
  4. Model
  5. Examples
  6. Try It

Read a notebook live from Google: its title, every source with its processing status, and every Studio artifact it holds.

Sources are processed by Google after they are added. Poll this endpoint until the sources you need show status: ready before you chat or generate artifacts. The artifacts list here is the short form (id, title, type, status). Use GET /artifacts/artifact for an artifact’s content and download links.

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

  • notebook is required, the notebook id returned by POST /notebooks or GET /notebooks. It contains : and @, so URL-encode it in the path (encodeURIComponent in JavaScript).
    Example: user%3A12345-user%40example.com-notebook%3Ad02c903b-17f8-4241-a263-2be9e7359d55
Request Headers
Authorization: Bearer {API token}
Responses
  • 200 OK

    {
      "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
      "email": "[email protected]",
      "title": "Apollo 11",
      "emoji": "🚀",
      "created": "2026-09-27T23:24:40.000Z",
      "updated": "2026-09-27T23:25:32.000Z",
      "sources": [
        {
          "source": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:5a5455b1-0557-4fa4-a8a8-52f60dffa113",
          "title": "01-apollo11-wikipedia.pdf",
          "kind": "pdf",
          "status": "ready",
          "words": 21578,
          "mimeType": "application/pdf",
          "created": "2026-09-27T23:24:53.000Z"
        },
        {
          "source": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:9732772d-0111-447b-ba78-9eec2c1c2ffe",
          "title": "A New Look at the Apollo 11 Landing Site",
          "kind": "youtube",
          "status": "ready",
          "words": 13,
          "url": "https://www.youtube.com/watch?v=xUcYQ7slmRw",
          "created": "2026-09-27T23:24:43.000Z"
        },
        {
          "source": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:c1182943-b7f0-4e89-82bc-8b3614cfb78f",
          "title": "Apollo 11 - Wikipedia",
          "kind": "web",
          "status": "ready",
          "words": 25492,
          "url": "https://en.wikipedia.org/wiki/Apollo_11",
          "created": "2026-09-27T23:24:43.000Z"
        }
      ],
      "artifacts": [
        {
          "artifact": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:4ae7c76c-18f5-44a1-a54c-8158327528e3",
          "title": "50 Seconds from Lunar Disaster",
          "type": "video",
          "status": "completed",
          "created": "2026-09-27T23:51:17.000Z"
        },
        {
          "artifact": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:ae28f2a1-678b-4304-9806-09648fcb77a0",
          "title": "Apollo 11 Flight Plan",
          "type": "slides",
          "status": "completed",
          "created": "2026-09-27T23:31:15.000Z"
        }
      ]
    }
    
  • 400 Bad Request

    {
      "error": "Path parameter notebook (abc) is not a valid notebook id",
      "code": 400
    }
    
  • 401 Unauthorized

    Invalid API token.

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

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

    Google is temporarily unavailable, retry shortly. A 502 means Google answered with an unexpected error.

    {
      "error": "Google is temporarily unavailable (rLM1Ne grpc 14), please retry",
      "code": 503
    }
    
Source and artifact values

Each source carries a kind and a status:

kind Source
web Web page URL
youtube YouTube video URL
text Pasted text, or an uploaded .txt file
pdf PDF file
docx Word document
pptx PowerPoint presentation
epub EPUB e-book
markdown Markdown file, a note converted with POST /notes/source, or a Deep Research report added with POST /research/import
csv CSV file
media Audio or video file (e.g. .mp3, .mp4)
image Image file (e.g. .jpg)
google_docs A Google Doc from Google Drive (drive parameter)
drive A Google Drive file that is not a Google Doc, such as a .docx or .pptx (drive parameter)

A kind Google adds later is returned as kind<N>, with Google’s own number.

status Meaning
preparing The file was received and is waiting to be processed. New uploads start here.
processing Google is reading the source.
ready The source can be used by chat and Studio.
error Google could not process the source.

An unrecognised status is returned as status<N>.

Each artifact carries a type and a status:

Field Values
artifact type audio, video, report, interactive_report, table, quiz, flashcards, infographic, slides, mindmap
artifact status pending, processing, completed, failed, pending_review

An artifact type or status Google adds later is returned as type<N> or status<N>, with Google’s number.

Model
{ // TypeScript, all fields are optional
  notebook: string
  email: string                // the account the notebook lives on
  title: string
  emoji: string | null
  created: string | null       // ISO 8601
  updated: string | null       // ISO 8601
  sources: {
    source: string             // user:<userId>-<email>-source:<notebookUuid>:<sourceUuid>
    title: string
    kind: string               // see the table above
    status: string             // see the table above
    words?: number             // word count, once Google has read the source
    url?: string               // web page or YouTube URL
    mimeType?: string          // uploaded files
    driveFileId?: string       // Google Drive sources: the Drive file id
    created?: string           // ISO 8601
  }[]
  artifacts: {
    artifact: string           // user:<userId>-<email>-artifact:<notebookUuid>:<artifactUuid>
    title: string
    type: string               // see the table above
    status: string             // see the table above
    created: string | null     // ISO 8601
  }[]
  error: string                // error responses only
  code: number                 // error responses only, the HTTP status
}
Examples
  • curl "https://api.useapi.net/v1/gemini-notebook/notebooks/user%3A12345-user%40example.com-notebook%3Ad02c903b-17f8-4241-a263-2be9e7359d55" \
       -H "Accept: application/json" \
       -H "Authorization: Bearer …"
    
  • const token = "API token";
    const notebook = "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55";
    const apiUrl = `https://api.useapi.net/v1/gemini-notebook/notebooks/${encodeURIComponent(notebook)}`;
    const response = await fetch(apiUrl, {
      headers: {
        "Authorization": `Bearer ${token}`,
      },
    });
    const result = await response.json();
    console.log("response", {response, result});
    
  • import requests, urllib.parse
    token = "API token"
    notebook = "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55"
    apiUrl = "https://api.useapi.net/v1/gemini-notebook/notebooks/" + urllib.parse.quote(notebook, safe="")
    headers = {
        "Authorization" : f"Bearer {token}"
    }
    response = requests.get(apiUrl, headers=headers)
    print(response, response.json())
    
Try It