Copy a notebook
September 29, 2026
Table of contents
Make a copy of a notebook on the same Google account, with its sources and Studio artifacts. Everything in the copy gets new ids, and the original is not changed.
The copy is titled <original title> (copy) unless you pass title. Read its sources and artifacts with GET /notebooks/notebook. The copy holds every source and artifact of the original. Google’s answer does not list them, so the response has no count.
The API does not retry a copy, so a lost answer never becomes a second copy. After a 502, 503 or 504, check GET /notebooks before you try again.
https://api.useapi.net/v1/gemini-notebook/notebooks/copy
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
API tokenis required, see Setup useapi.net for details.
Request Body
{
"notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55",
"title": "Apollo 11 (copy)"
}
notebookis required, the id of the notebook to copy, from POST /notebooks or GET /notebooks. The copy is made on the same account.titleis optional, the title of the copy.
Default: the original title followed by ` (copy). Length:1to200` characters.
Responses
-
The new notebook.
{ "notebook": "user:[email protected]:651bdd96-3d98-4661-83b8-d5634051934c", "email": "[email protected]", "title": "Apollo 11 (copy)", "copiedFrom": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55", "created": "2026-09-29T20:22:11.000Z" } -
A missing or malformed parameter.
{ "error": "Parameter notebook is required", "code": 400 } -
Invalid API token.
{ "error": "useapi.net ⁝ Unauthorized", "code": 401 } -
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 } -
The notebook was deleted, or its account is no longer configured.
{ "error": "Not found on account [email protected] (Google rLM1Ne grpc 5)", "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 } -
Google is temporarily unavailable or is challenging our network. Retry in a few minutes. A
502means Google answered with an unexpected error.{ "error": "Google is temporarily unavailable (te3DCe grpc 14), please retry", "code": 503 }
Model
{ // TypeScript, all fields are optional
notebook: string // the new notebook's id
email: string // the account, the same as the original's
title: string
copiedFrom: string // the original notebook's id
created: string | null // ISO 8601
error: string // error responses only
code: number // error responses only, the HTTP status
}
Examples
-
curl -X POST "https://api.useapi.net/v1/gemini-notebook/notebooks/copy" \ -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/notebooks/copy"; 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", title: "Apollo 11 (copy)" }) }); const result = await response.json(); console.log("response", {response, result}); -
import requests token = "API token" apiUrl = "https://api.useapi.net/v1/gemini-notebook/notebooks/copy" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } data = { "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55", "title": "Apollo 11 (copy)" } response = requests.post(apiUrl, headers=headers, json=data) print(response, response.json())