Retrieve an account
September 29, 2026
Table of contents
Get one connected account with a live read from Google: whether the session is still signed in, the account’s current plan, and its usage in the 5-hour and weekly windows.
Google does not count generations. Each Studio action has an estimated cost as a percentage of the 5-hour window (estimatedCostPercent), and Google refuses a new job once its estimate is more than the remainingPercent of a window. Compare the two before you start a large job such as an Audio Overview or a slide deck. See How much one account can generate for the Free, Pro and Ultra estimates.
A signed-out session found here is handled like on any other request. The API re-checks it once, and if it is still signed out the account is paused and you receive an email with the re-add link.
The response can be up to 60 seconds old.
https://api.useapi.net/v1/gemini-notebook/accounts/
emailis the email of a connected account, URL-encoded in the path.
Request Headers
Authorization: Bearer {API token}
API tokenis required, see Setup useapi.net for details.
Responses
-
{ "email": "[email protected]", "tier": "pro", "googleTier": "TIER_PRO", "googleTierCode": 2, "maxJobs": 3, "added": "2026-09-27T22:48:12.588Z", "cookies": [ "SID", "HSID", "SSID", "APISID", "SAPISID", "LSID", "OSID", "__Secure-OSID" ], "cookiesExpireAt": "2027-11-01T22:48:08.442Z", "addedVia": "setup-browser", "limits": { "notebooks": 500, "sourcesPerNotebook": 300 }, "health": "OK", "session": "signed-in", "outputLanguage": null, "quota": { "windows": [ { "window": "5h", "resetsAt": "2026-09-28T04:25:40.000Z", "usedPercent": 63.11, "remainingPercent": 36.89 }, { "window": "weekly", "resetsAt": "2026-10-04T23:25:40.000Z", "usedPercent": 3.01, "remainingPercent": 96.99 } ], "blocked": [ "cinematic" ], "actions": [ { "action": "audio", "allowed": true, "costTier": 3, "estimatedCostPercent": 11.03 }, { "action": "video", "allowed": true, "costTier": 3, "estimatedCostPercent": 10.92 }, { "action": "cinematic", "allowed": false, "costTier": 4, "estimatedCostPercent": 77.02 }, { "action": "video_short", "allowed": true, "costTier": 3, "estimatedCostPercent": 8.73 }, { "action": "infographic", "allowed": true, "costTier": 2, "estimatedCostPercent": 2.68 }, { "action": "slides", "allowed": true, "costTier": 3, "estimatedCostPercent": 13.63 }, { "action": "report", "allowed": true, "costTier": 2, "estimatedCostPercent": 1.08 }, { "action": "quiz", "allowed": true, "costTier": 1, "estimatedCostPercent": 0.57 }, ... ] } }- Here the 5-hour window has 36.89% left, so an Audio Overview (11.03%) can start, while a cinematic video (77.02%) is refused until the window resets at
resetsAt. sessiontells what the live read found:signed-in— the account works.tier,googleTier,googleTierCodeandquotaare fresh from Google.signed-out— Google signed the account out. It is paused,healthholds the re-add message and you receive an email with the re-add link.verifying— another request is re-checking the session right now. Retry in about a minute.signed-in (re-checked)— Google briefly reported the account as signed out, and the re-check found it signed in.unknown (could not reach Google to re-check),unavailable (bot-check),unavailable (shell-error)— Google could not be reached. The account is not paused. Retry later.unknown— the session works but the usage read failed.quotaErrorholds the reason.
outputLanguageis Google’s account-wide language for Studio artifacts, as a language code such ases, ornullwhen it was never set. Change it with POST /accounts. It is returned only withsession: signed-in.quotais returned only withsession: signed-in.- An account that is already paused (its
healthis the re-add message) is returned as stored, withoutsessionorquota. Re-add it with POST /accounts.
- Here the 5-hour window has 36.89% left, so an Audio Overview (11.03%) can start, while a cinematic video (77.02%) is refused until the window resets at
-
400 Bad Request — the
emailin the path is not a valid email, or no account is connected yet.{ "error": "Path parameter email (not-an-email) not a valid email", "code": 400 } -
Invalid API token.
{ "error": "useapi.net ⁝ Unauthorized", "code": 401 } -
404 Not Found — no account is connected for this
email.{ "error": "Account [email protected] not found", "code": 404 }
Model
{ // TypeScript, all fields are optional
email: string
tier: string // Google's plan, short form: 'free' | 'pro' | 'ultra' | 'plus' | … | 'unknown'
googleTier?: string | null // Google's own plan name: 'TIER_FREE' | 'TIER_PRO' | 'TIER_ULTRA' | 'TIER_PLUS' | …
googleTierCode?: number | null // Google's plan code: 1 = Free, 2 = Pro, 3 = Ultra, 4 = Plus, …
maxJobs: number
added: string // ISO 8601, when the account was first connected
updated?: string // ISO 8601, the last re-add or maxJobs change
cookies: string[] // names of the stored cookies, never their values
cookiesExpireAt: string | null // ISO 8601, the earliest expiry Google stated for the stored cookies
addedVia?: 'setup-browser' // present when the account was added by the automated setup
limits?: {
notebooks: number | null // notebooks allowed on the plan
sourcesPerNotebook: number | null // sources allowed per notebook
}
health: string // 'OK', 'verifying', or the reason the account must be re-added
session?: string // what the live read found, see Responses
outputLanguage?: string | null // Google's account-wide Studio output language, null when unset
quota?: {
windows: {
window: '5h' | 'weekly'
resetsAt: string | null // ISO 8601
usedPercent: number
remainingPercent: number
}[]
blocked: string[] // actions Google refuses right now
actions: {
action: string // 'audio' | 'video' | 'cinematic' | 'video_short' | 'infographic' | 'slides' | 'report' | 'table' | 'flashcards' | 'quiz' | 'mindmap' | 'qna' | …
allowed: boolean
costTier: number | null
estimatedCostPercent: number | null // Google's estimate, as % of the 5h window
}[]
}
quotaError?: string // present with session 'unknown'
}
With session: signed-in, tier, googleTier and googleTierCode come from the live read, and googleTier / googleTierCode are null when Google’s answer carries no plan code. POST /accounts and GET /accounts return the stored record, which omits both fields instead of returning null.
Examples
-
curl "https://api.useapi.net/v1/gemini-notebook/accounts/user%40example.com" \ -H "Authorization: Bearer …" -
const token = "API token"; const email = "Previously configured account email"; const apiUrl = `https://api.useapi.net/v1/gemini-notebook/accounts/${encodeURIComponent(email)}`; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); -
import requests from urllib.parse import quote token = "API token" email = "Previously configured account email" apiUrl = f"https://api.useapi.net/v1/gemini-notebook/accounts/{quote(email, safe='')}" headers = { "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers) print(response, response.json())