Configure a Google Vids account
October 7, 2026
Table of contents
Connect a Google account to the API with the cookies of a signed-in Google Vids session. The easiest way is the automated setup, which signs in for you and calls this endpoint. See Setup Google Vids for the setup script and the manual cookie copy.
The API checks the cookies with Google before saving the account. The account email is read from Google, together with the account’s monthly limits and how much of each is left. A free Google account has no Vids allowance (0 seconds of video and 0 images a month) and is refused with 400. Use an account on a paid Google AI plan.
The first time an account is added, the API creates one Google Vids document on it (vidsDocId). Every generation names that document, and it is where avatars are saved. Generated videos and images are not stored in it.
Posting cookies for an account that is already connected re-adds it: the cookies are replaced, and added, maxJobs and the Vids document are kept unless you send a new maxJobs. Re-adding is also how an account that Google signed out is brought back.
After the account is added, do not open that Google account in a browser again. Google Vids needs the __Secure-1PSIDTS cookie on every call, and a browser using the same sign-in renews it, which ends the copy the API holds within minutes.
This endpoint does two things. To add or re-add an account, post its cookies. To change only maxJobs on an account that is already connected, post email and maxJobs and leave cookies out: nothing is sent to Google then.
Each useapi.net subscription lets you connect 3 Google accounts, up to 50 in total.
https://api.useapi.net/v1/google-vids/accounts
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
Add or re-add an account:
{
"cookies": "SID\tg.a000…\t.google.com\t/\t2027-11-01T00:00:00.000Z\t…\nOSID\tg.a000…\tdocs.google.com\t/\t…",
"maxJobs": 3
}
cookiesis required to add or re-add an account. Copy the cookie table ofhttps://docs.google.comfrom DevTools as described in Setup Google Vids and paste it exactly as copied.
The paste must containSID,HSID,SSID,APISID,SAPISIDand__Secure-1PSIDTSfor.google.com, plusOSIDfordocs.google.com. A missing cookie returns400naming it. Cookies that are not signed in to Google Vids, or that Google refuses for generation, return400. Only these seven cookies are stored, and their values are never returned by the API.maxJobsis optional, the number of jobs this account may run at the same time.
Range:1to10. Default:3for a new account, the current value on a re-add.
Update a connected account:
{
"email": "[email protected]",
"maxJobs": 5
}
emailis required in this mode, the email of a connected account. Do not send it together withcookies.maxJobsis required in this mode, the new concurrency limit. Range:1to10.
Responses
-
200 OK — the account was already connected and has been re-added.
{ "email": "[email protected]", "maxJobs": 3, "added": "2026-10-06T22:51:03.032Z", "updated": "2026-10-07T01:03:28.469Z", "cookies": [ "SID", "HSID", "SSID", "APISID", "SAPISID", "__Secure-1PSIDTS", "OSID" ], "cookiesExpireAt": "2027-04-05T02:18:00.438Z", "vidsDocId": "13uYNqnKSfoLaWj1GYxZ3Wqe_06hY5k5i0S1_jPCXn2Y", "limits": { "video": 10000, "image": 1000, "music": 300 }, "health": "OK", "quota": { "video": { "limit": 10000, "left": 9936, "resetAt": "2026-11-01T07:00:00.000Z" }, "image": { "limit": 1000, "left": 990, "resetAt": "2026-11-01T07:00:00.000Z" }, "music": { "limit": 300, "left": 298, "resetAt": "2026-11-01T07:00:00.000Z" } } }limitsare the monthly limits Google reported when the account was added: seconds of video, images, and songs (music is not used by this API).quotais what the account has left right now. A counter Google did not answer isnull. GET /accounts/emailreads it live at any time.- An update (
email+maxJobs) returns the same record withoutquota.
-
201 Created — a new account was connected. Same body as
200, withoutupdated. -
400 Bad Request — a required cookie is missing, the cookies are not signed in, the account’s plan has no Vids allowance,
emailwas sent withcookies, or a parameter is invalid.{ "error": "Missing cookies: __Secure-1PSIDTS. Copy them from docs.google.com/videos (DevTools → Application → Cookies).", "code": 400 }{ "error": "[email protected] has no Google Vids allowance on its plan (0 video seconds and 0 images a month). Free Google accounts cannot generate in Vids. Use an account on a Google AI plan.", "code": 400 }{ "error": "These cookies are not signed in to Google Vids (HTTP 302 → sign-in). Sign in at https://docs.google.com/videos and copy the cookies again.", "code": 400 }{ "error": "Google refused these cookies for Vids generation (401). Copy them again from docs.google.com/videos.", "code": 400 } -
Invalid API token.
{ "error": "useapi.net ⁝ Unauthorized", "code": 401 } -
402 Payment Required — the subscription has expired, or a new account needs another subscription.
{ "error": "useapi.net ⁝ You have 1 subscription, you need 1 additional subscription (2 total) to support 4 accounts for the google_vids API. Upgrade at https://useapi.net/docs/subscription", "code": 402 } -
404 Not Found — update mode: no account is connected for this
email.{ "error": "Account [email protected] not found", "code": 404 } -
502 Bad Gateway — the cookies are signed in, but Google’s Vids page did not give the API what it needs, or the Vids document could not be created. Nothing was saved. Retry the same request.
{ "error": "Could not create the Vids document for this account — please retry", "code": 502 }
Model
200 and 201 return the same account record.
{ // TypeScript, all fields are optional
email: string
maxJobs: number // jobs this account may run at the same time
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 date in the pasted cookies
vidsDocId: string // the Google Vids document the API created on the account
limits: { // monthly limits read from Google when the account was added
video: number | null // seconds of video
image: number | null // images
music: number | null // songs (not used by this API)
}
health: string // 'OK', 'verifying', or the reason the account must be re-added
addedVia?: 'setup-browser' // present when the account was added by the automated setup
quota?: { // add and re-add only: what is left right now, null when a counter did not answer
video: { limit: number, left: number, resetAt: string } | null // seconds of video
image: { limit: number, left: number, resetAt: string } | null // images
music: { limit: number, left: number, resetAt: string } | null // songs (not used by this API)
}
}
Examples
-
curl -X POST "https://api.useapi.net/v1/google-vids/accounts" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer …" \ -d '{ "email": "[email protected]", "maxJobs": 5 }' -
const token = "API token"; const cookies = "Cookie table of https://docs.google.com copied from DevTools"; const apiUrl = "https://api.useapi.net/v1/google-vids/accounts"; const response = await fetch(apiUrl, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token}`, }, body: JSON.stringify({ cookies, maxJobs: 3 }) }); const result = await response.json(); console.log("response", {response, result}); -
import requests token = "API token" cookies = "Cookie table of https://docs.google.com copied from DevTools" apiUrl = "https://api.useapi.net/v1/google-vids/accounts" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } data = { "cookies": cookies, "maxJobs": 3 } response = requests.post(apiUrl, headers=headers, json=data) print(response, response.json())