Retrieve an artifact

September 29, 2026 (October 15, 2026)

Table of contents

  1. Request Headers
  2. Result by type
  3. Interactive report items
  4. Responses
  5. Model
  6. Examples
  7. Try It

Fetch one Studio artifact by its id, read live from Google. A completed artifact carries its full result in the same shape as the result of a finished job: download links for audio, video, slide decks and infographics, the text of reports, the rows of a data table, and the JSON of quizzes, flashcards and mind maps.

Use it to read an artifact again after its job record has expired, to pick up an artifact created in the Gemini Notebook web app, or to check on an artifact whose job was cancelled or timed out (Google may still finish it). The artifact ids come from GET /artifacts and from the artifact field of a job.

A completed interactive report also lists its embedded items, see Interactive report items. Each item can be read here by its own id, including a suggested one, which GET /artifacts does not list.

https://api.useapi.net/v1/gemini-notebook/artifacts/artifact

  • artifact is URL-encoded in the path (it contains : and @), for example user%3A12345-user%40example.com-artifact%3Ad02c903b-17f8-4241-a263-2be9e7359d55%3A07b94418-6c28-437c-98de-06bbeabb4e0c. The id names the account and the notebook, so no email parameter is needed.
Request Headers
Authorization: Bearer {API token}
Result by type

A completed artifact adds title plus the fields below. Any other status returns only artifact, notebook, type, status, created and title, plus description for a suggested item.

type Fields Files (GET /artifacts/download format)
audio duration (seconds), files m4a
video duration (seconds), files mp4
report text (Markdown) —
interactive_report text (the report’s paragraphs as plain text), embedded (the items the report suggests) —
table table (rows of cells, the first row is the header) —
quiz content (JSON: quiz[] with question, answerOptions[], hint) —
flashcards content (JSON: flashcards[]) —
infographic files (with width / height), text png
slides files, slides[] (image, caption, text) pdf, pptx, and slide with index for each slide image (PNG)
mindmap content (JSON tree of name / children) —

Every file link points at GET /artifacts/download, which streams the file from Google and needs your API token in the Authorization header. Google’s own media URLs need the account’s cookies, so they are never returned.

Interactive report items

A completed interactive_report lists embedded items in the order they appear in the report. Each item is an infographic, a slide deck, a mind map, a quiz or flashcards that Google wrote for this report, with its own artifact id, type, title, description and status.

  • A new item has status: "suggested". Nothing is generated yet, and its description is what Google proposes to make.
  • POST /artifacts/generate generates it. The item keeps its id and turns completed, and reading it here then returns its full result.
  • DELETE /artifacts/artifact dismisses it, and it leaves the embedded list.
Responses
  • 200 OK

    A completed quiz (long arrays shortened with ...):

    {
      "artifact": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:07b94418-6c28-437c-98de-06bbeabb4e0c",
      "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
      "type": "quiz",
      "status": "completed",
      "created": "2026-09-27T23:26:36.000Z",
      "title": "Apollo Quiz",
      "content": {
        "quiz": [
          {
            "question": "During Apollo 11's lunar landing phase, which Flight Director was at the helm in Mission Control leading Shift 2 (White Team)?",
            "answerOptions": [
              {
                "text": "Gene Kranz",
                "rationale": "Gene Kranz served as the Flight Director for Shift 2 (White Team), which actively managed the critical lunar landing descent phase.",
                "isCorrect": true
              },
              {
                "text": "Glynn Lunney",
                "rationale": "Glynn Lunney managed Shift 3 (Black Team), which oversaw lunar ascent rather than the landing phase.",
                "isCorrect": false
              },
              "..."
            ],
            "hint": "..."
          },
          "..."
        ],
        "topics": {
          "covered": ["Apollo 11 Mission Overview", "Spacecraft Engineering and Call Signs", "..."],
          "followUp": ["Project Gemini Precursor Missions", "..."]
        }
      }
    }
    

    A completed slide deck:

    {
      "artifact": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:ae28f2a1-678b-4304-9806-09648fcb77a0",
      "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
      "type": "slides",
      "status": "completed",
      "created": "2026-09-27T23:31:15.000Z",
      "title": "Apollo 11 Flight Plan",
      "files": [
        {
          "format": "pdf",
          "mimeType": "application/pdf",
          "url": "https://api.useapi.net/v1/gemini-notebook/artifacts/download?artifact=user%3A12345-user%40example.com-artifact%3Ad02c903b-17f8-4241-a263-2be9e7359d55%3Aae28f2a1-678b-4304-9806-09648fcb77a0&format=pdf"
        },
        {
          "format": "pptx",
          "mimeType": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
          "url": "https://api.useapi.net/v1/gemini-notebook/artifacts/download?artifact=user%3A12345-user%40example.com-artifact%3Ad02c903b-17f8-4241-a263-2be9e7359d55%3Aae28f2a1-678b-4304-9806-09648fcb77a0&format=pptx"
        }
      ],
      "slides": [
        {
          "image": "https://api.useapi.net/v1/gemini-notebook/artifacts/download?artifact=user%3A12345-user%40example.com-artifact%3Ad02c903b-17f8-4241-a263-2be9e7359d55%3Aae28f2a1-678b-4304-9806-09648fcb77a0&format=slide&index=1",
          "caption": "Title slide for Apollo 11: Anatomy of a Miracle, featuring an astronaut on the lunar surface.",
          "text": "APOLLO_11: ANATOMY OF A MIRACLE\n\nJULY 16-24, 1969 | CREWED LUNAR LANDING\n\n..."
        },
        "..."
      ]
    }
    

    A completed interactive report, with one item generated and the others still suggested (text shortened with ...):

    {
      "artifact": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:8b9af76a-ef24-4e2f-a6ff-3d69cbf44650",
      "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
      "type": "interactive_report",
      "status": "completed",
      "created": "2026-10-15T05:06:28.000Z",
      "title": "To the Moon and Back: The Epic Stories of Apollo 11 and Apollo 13",
      "text": "Imagine blasting off atop a 36-story rocket, traveling 240,000 miles through the pitch-black void of space...",
      "embedded": [
        {
          "artifact": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:5ac11006-86b7-43a8-91c9-72bc5ba1164f",
          "type": "infographic",
          "title": "Apollo 11 Moon Landing Anatomy",
          "description": "A visual breakdown showing the three modules of the Apollo 11 spacecraft, the three crew members, and the key steps of the moon landing sequence.",
          "status": "completed"
        },
        {
          "artifact": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:a21107d4-54ab-46bd-8207-3a29974e4f8a",
          "type": "flashcards",
          "title": "Apollo 13 Rescue Concepts",
          "description": "Flashcards designed for middle school students to reinforce key terms from Apollo 13, including Aquarius, Odyssey, free-return trajectory, and the 'mailbox' CO2 filter solution.",
          "status": "suggested"
        },
        {
          "artifact": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:7b48b9a9-ceae-4290-a647-9f2fc4a7ce3a",
          "type": "mindmap",
          "title": "The Apollo Mission Ecosystem",
          "description": "A branching concept map connecting Mission Control teams, spacecraft software systems, ground training, and astronaut tasks.",
          "status": "suggested"
        },
        {
          "artifact": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:e4ec67bd-4f7e-4e09-8f6d-e88e6fa53cf6",
          "type": "quiz",
          "title": "Apollo Missions Knowledge Check",
          "description": "A multiple-choice review quiz designed for middle-school students to test understanding of Apollo 11 and 13 crew members, spacecraft parts, and key events.",
          "status": "suggested"
        }
      ]
    }
    

    A suggested item, read by its own id:

    {
      "artifact": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:a21107d4-54ab-46bd-8207-3a29974e4f8a",
      "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
      "type": "flashcards",
      "status": "suggested",
      "created": "2026-10-15T05:06:54.000Z",
      "title": "Apollo 13 Rescue Concepts",
      "description": "Flashcards designed for middle school students to reinforce key terms from Apollo 13, including Aquarius, Odyssey, free-return trajectory, and the 'mailbox' CO2 filter solution."
    }
    

    An artifact that is not completed yet (or failed) returns only artifact, notebook, type, status, created and title.

  • 400 Bad Request

    The path value is not an artifact id (a notebook or source id is refused too).

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

    Invalid API token.

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

    The artifact id was issued to a different API token.

    {
      "error": "user:[email protected]:d02c903b-…:07b94418-… does not belong to this API token",
      "code": 403
    }
    
  • 404 Not Found

    The artifact is no longer in the notebook (deleted here or in the web app), the notebook is gone, or its account is no longer configured.

    {
      "error": "Artifact user:[email protected]:d02c903b-…:07b94418-… 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
    }
    
Model
{ // TypeScript, all fields are optional
  artifact: string            // user:<id>-<email>-artifact:<notebook uuid>:<artifact uuid>
  notebook: string            // user:<id>-<email>-notebook:<notebook uuid>
  type: 'audio' | 'video' | 'report' | 'interactive_report' | 'table' | 'quiz' | 'flashcards' | 'infographic' | 'slides' | 'mindmap'
  status: 'pending' | 'processing' | 'completed' | 'failed' | 'pending_review' | 'suggested'
  created: string | null      // ISO 8601
  title: string
  description: string         // an interactive report's item: what Google proposes to make
  // The fields below are present only when status is 'completed', and only for the types listed above
  duration: number            // seconds, audio and video
  files: Array<{
    format: 'm4a' | 'mp4' | 'pdf' | 'pptx' | 'png'
    mimeType: string
    url: string               // GET /artifacts/download link, needs your API token
    width: number             // infographic png only
    height: number            // infographic png only
  }>
  slides: Array<{             // slide decks, in order
    image: string             // GET /artifacts/download?…&format=slide&index=N (PNG)
    caption: string | null    // Google's one-line description of the slide
    text: string | null       // the slide's text as Google extracted it
  }>
  text: string                // report (Markdown), interactive_report, infographic
  table: string[][]           // data table, first row = column headers
  content: QuizContent | FlashcardsContent | MindmapNode   // quiz, flashcards, mindmap
  embedded: Array<{           // interactive_report: its items, in reading order
    artifact: string          // the item's own id
    type: string              // 'infographic', 'slides', 'mindmap', 'quiz' or 'flashcards'
    title: string
    description?: string
    status: 'suggested' | 'pending' | 'processing' | 'completed' | 'failed'
  }>
}

type QuizContent = {
  quiz: Array<{
    question: string
    answerOptions: Array<{
      text: string
      rationale: string       // why this option is right or wrong
      isCorrect: boolean
    }>
    hint: string
  }>
  topics: {
    covered: string[]
    followUp: string[]
  }
}

type FlashcardsContent = {
  flashcards: Array<{
    f: string                 // front of the card
    b: string                 // back of the card
    c: number                 // present on some cards (Google's own marker)
  }>
  topics: {
    covered: string[]
    followUp: string[]
  }
}

type MindmapNode = {
  name: string
  children: MindmapNode[]     // absent on leaf nodes
}

content is the JSON Google’s own interactive quiz, flashcard and mind-map views render, passed through unchanged. If Google does not return it on a read, content is left out, so read the artifact again.

Examples
  • ARTIFACT="user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:07b94418-6c28-437c-98de-06bbeabb4e0c"
    curl -H "Authorization: Bearer …" \
         "https://api.useapi.net/v1/gemini-notebook/artifacts/$(python3 -c "import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=''))" "$ARTIFACT")"
    
  • const token = "API token";
    const artifact = "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:07b94418-6c28-437c-98de-06bbeabb4e0c";
    const apiUrl = `https://api.useapi.net/v1/gemini-notebook/artifacts/${encodeURIComponent(artifact)}`;
    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"
    artifact = "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55:07b94418-6c28-437c-98de-06bbeabb4e0c"
    apiUrl = "https://api.useapi.net/v1/gemini-notebook/artifacts/" + urllib.parse.quote(artifact, safe="")
    headers = {
        "Authorization" : f"Bearer {token}"
    }
    response = requests.get(apiUrl, headers=headers)
    print(response, response.json())
    
Try It