Retrieve sharing
September 29, 2026
Table of contents
Read a notebook’s sharing settings live from Google, as the Share dialog of the Gemini Notebook web app shows them: every person with access and their role, whether anyone with the link can open the notebook, and whether copies are allowed. Change them with POST /sharing.
| Field | Values |
|---|---|
person role | owner (the account the notebook lives on), editor, viewer |
link | public (anyone with the link), restricted (only the people listed) |
allowCopies | true (the default) or false. Applies to a public link. |
A role Google adds later is returned as role<N>, with Google’s number.
Google’s sharing read does not include the view level (full notebook or chat only). POST /sharing sets it with viewLevel.
https://api.useapi.net/v1/gemini-notebook/sharing?notebook=
notebook
Request Headers
Authorization: Bearer {API token}
API tokenis required, see Setup useapi.net for details.
Query Parameters
notebookis required, the notebook id returned by POST /notebooks or GET /notebooks, for exampleuser:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55.
The id names the account the notebook lives on, so noemailparameter is needed. URL-encode it (it contains:and@).
Responses
-
A notebook shared with one viewer, link access restricted:
{ "notebook": "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55", "people": [ { "email": "[email protected]", "role": "owner", "name": "Jane Doe" }, { "email": "[email protected]", "role": "viewer", "name": "colleague" } ], "link": "restricted", "allowCopies": true } -
{ "error": "Parameter notebook is required", "code": 400 } -
Invalid API token.
{ "error": "useapi.net ⁝ Unauthorized", "code": 401 } -
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 } -
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, retry shortly. A
502means Google answered with an unexpected error.{ "error": "Google is temporarily unavailable (JFMDGd grpc 14), please retry", "code": 503 }
Model
{ // TypeScript, all fields are optional
notebook: string
people: {
email: string
role: string // owner | editor | viewer
name: string | null // the person's Google display name
}[]
link: 'public' | 'restricted'
allowCopies: boolean
error: string // error responses only
code: number // error responses only, the HTTP status
}
Examples
-
curl -G "https://api.useapi.net/v1/gemini-notebook/sharing" \ -H "Authorization: Bearer …" \ --data-urlencode "notebook=user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55" -
const token = "API token"; const notebook = "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55"; const apiUrl = `https://api.useapi.net/v1/gemini-notebook/sharing?notebook=${encodeURIComponent(notebook)}`; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); -
import requests token = "API token" notebook = "user:[email protected]:d02c903b-17f8-4241-a263-2be9e7359d55" apiUrl = "https://api.useapi.net/v1/gemini-notebook/sharing" headers = { "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers, params={"notebook": notebook}) print(response, response.json())