Configure a Google Vids account

October 7, 2026

Table of contents

  1. Request Headers
  2. Request Body
  3. Responses
  4. Model
  5. Examples
  6. Try It

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
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
}
  • cookies is required to add or re-add an account. Copy the cookie table of https://docs.google.com from DevTools as described in Setup Google Vids and paste it exactly as copied.
    The paste must contain SID, HSID, SSID, APISID, SAPISID and __Secure-1PSIDTS for .google.com, plus OSID for docs.google.com. A missing cookie returns 400 naming it. Cookies that are not signed in to Google Vids, or that Google refuses for generation, return 400. Only these seven cookies are stored, and their values are never returned by the API.
  • maxJobs is optional, the number of jobs this account may run at the same time.
    Range: 1 to 10. Default: 3 for a new account, the current value on a re-add.

Update a connected account:

{
  "email": "[email protected]",
  "maxJobs": 5
}
  • email is required in this mode, the email of a connected account. Do not send it together with cookies.
  • maxJobs is required in this mode, the new concurrency limit. Range: 1 to 10.
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"
        }
      }
    }
    
    • limits are the monthly limits Google reported when the account was added: seconds of video, images, and songs (music is not used by this API).
    • quota is what the account has left right now. A counter Google did not answer is null. GET /accounts/email reads it live at any time.
    • An update (email + maxJobs) returns the same record without quota.
  • 201 Created — a new account was connected. Same body as 200, without updated.

  • 400 Bad Request — a required cookie is missing, the cookies are not signed in, the account’s plan has no Vids allowance, email was sent with cookies, 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
    }
    
  • 401 Unauthorized

    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())
    
Try It