Get Account Configuration

November 17, 2025 (September 16, 2026)

Table of contents

  1. Request Headers
  2. Path Parameters
  3. Responses
  4. Model
  5. Examples
  6. Add your accounts again before they stop working
    1. What already fails on a labs account
    2. Why this is happening
    3. Try It

Get configuration details for a specific Google Flow account, including health status, credits information, and available video models.

https://api.useapi.net/v1/google-flow/accounts/email

Request Headers

Authorization: Bearer {API token}

Path Parameters

  • email is required. The email address of the Google Flow account to query (URL-encoded if necessary).

Responses

  • 200 OK

    Account configuration found and returned with health status.

    {
      "created": "2025-11-10T12:00:00.000Z",
      "updated": "2026-09-16T18:22:18.088Z",
      "backend": "flow",
      "accountCookies": [
        {
          "name": "HSID",
          "value": "AYQ...(redacted)",
          "domain": ".google.com",
          "path": "/",
          "expires": "2027-11-10T12:00:00.000Z",
          "httpOnly": true,
          "secure": false,
          "sameSite": "Lax"
        }
      ],
      "flowCookies": [
        {
          "name": "OSID",
          "value": "g.a0...(redacted)",
          "domain": "flow.google.com",
          "path": "/",
          "expires": "2027-10-21T18:22:05.453Z",
          "httpOnly": true,
          "secure": true,
          "sameSite": "Lax"
        }
      ],
      "sessionCookies": [
        {
          "name": "__Host-GAPS",
          "value": "1:eJy...(redacted)",
          "domain": "labs.google",
          "path": "/",
          "expires": "2025-12-10T12:00:00.000Z",
          "httpOnly": true,
          "secure": true,
          "sameSite": "Lax"
        }
      ],
      "sessionData": {
        "user": {
          "name": "John Doe",
          "email": "jo***@gmail.com",
          "image": "https://lh3.googleusercontent.com/a/..."
        },
        "expires": "2025-11-11T12:00:00.000Z",
        "access_token": "ya29.a0A...(redacted)"
      },
      "project": {
        "projectId": "3b1c0e9d-7a6f-4592-8d38-7f9e1b4c6a5d",
        "projectTitle": "Nov 11 - 02:56"
      },
      "nextRefresh": {
        "messageId": "msg-abc123",
        "scheduledFor": "2025-11-11T11:00:00.000Z"
      },
      "health": "OK",
      "credits": {
        "credits": 1250,
        "userPaygateTier": "PAYGATE_TIER_TWO"
      },
      "models": {
        "videoModels": [
          {
            "key": "veo_3_1_t2v",
            "displayName": "Veo 3.1 - Quality",
            "supportedAspectRatios": ["VIDEO_ASPECT_RATIO_LANDSCAPE"],
            "capabilities": ["VIDEO_MODEL_CAPABILITY_AUDIO", "VIDEO_MODEL_CAPABILITY_TEXT"],
            "videoLengthSeconds": 8,
            "videoGenerationTimeSeconds": 240,
            "creditCost": 100,
            "framesPerSecond": 24,
            "paygateTier": "PAYGATE_TIER_TWO",
            "accessType": "MODEL_ACCESS_TYPE_GENERAL",
            "resolution": "720p",
            "modelAccessInfo": {},
            "modelMetadata": {
              "veoModelName": "Beta Audio"
            }
          },
          {
            "key": "veo_3_1_t2v_lite_low_priority",
            "displayName": "Veo 3.1 - Lite [Lower Priority]",
            "supportedAspectRatios": ["VIDEO_ASPECT_RATIO_LANDSCAPE", "VIDEO_ASPECT_RATIO_PORTRAIT"],
            "capabilities": ["VIDEO_MODEL_CAPABILITY_AUDIO", "VIDEO_MODEL_CAPABILITY_TEXT"],
            "videoLengthSeconds": 8,
            "videoGenerationTimeSeconds": 110,
            "creditCost": 0,
            "framesPerSecond": 24,
            "paygateTier": "PAYGATE_TIER_TWO",
            "accessType": "MODEL_ACCESS_TYPE_GENERAL",
            "resolution": "720p",
            "modelAccessInfo": {},
            "modelMetadata": {
              "veoModelName": "Beta Audio"
            }
          }
        ]
      }
    }
    

    Note: Sensitive values (cookie values, access tokens) are redacted for security. Email addresses are partially masked.

    The credits and models fields are only included when health is "OK".

    Captcha provider recommendations. When fewer than two captcha providers are configured on the account, the response also includes a top-level recommendations array. Single-provider users have no failover when Google’s reCAPTCHA Enterprise scores a token low — adding a second provider lets the worker rotate on failure and dramatically reduces captcha_quality: 429s / 403s. Example:

    {
      "health": "OK",
      "credits": {...},
      "models": {...},
      "recommendations": [
        "Only one captcha provider configured. Adding a second provider gives the worker a fallback when Google scores a token low — significantly reduces 429 TOO_MUCH_TRAFFIC and 403 captcha errors. Configure via POST /accounts/captcha-providers."
      ]
    }
    

    The field is omitted when you already have two or more providers configured. Configure additional providers via POST /accounts/captcha-providers.

    Omni 1.1 Flash models are listed for Plus, Pro and Ultra accounts alongside the Veo ones. Google labels this family “Omni 1.1 Flash” in the Flow interface, and displayName carries that label verbatim, so it tracks Google’s version renames — the POST /videos model value stays omni-flash regardless. Every Omni key appears twice, once per resolution: the _360p variant costs about half its 720p twin.

    Free models on Ultra: For accounts with Google AI Ultra subscription (PAYGATE_TIER_TWO), video models with creditCost: 0 are free to generate. These are the lower-priority variants — keys ending in _low_priority (e.g. veo_3_1_t2v_lite_low_priority). Keys ending in _ultra are discounted but not free — they typically cost 10 credits per generation.

    This list follows the account’s plan, so an invited member of an Ultra $199 family plan is still listed with the _low_priority keys. Since 2026-09-23 Google no longer offers them to family members — only the family manager’s account can use them. The account’s own model list at flow.google.com shows which it is.

  • 401 Unauthorized

    Invalid API token.

    {
      "error": "Unauthorized"
    }
    
  • 404 Not Found

    Account not found or not configured.

    {
      "error": "Google Flow account email@example.com not found"
    }
    

Model

{
  backend: 'flow' | 'labs'     // which Google backend this account uses
  created: string              // ISO 8601 timestamp, first add
  updated: string              // ISO 8601 timestamp, most recent add
  accountCookies: Array<{
    name: string
    value: string              // Redacted
    domain: string
    path: string
    expires: string | number
    httpOnly: boolean
    secure: boolean
    sameSite: 'Lax' | 'Strict' | 'None'
  }>
  flowCookies: Array<{         // Same structure, flow.google.com — present on a 'flow' account
    name: string
    value: string              // Redacted
    domain: string
    path: string
    expires: string | number
    httpOnly: boolean
    secure: boolean
    sameSite: 'Lax' | 'Strict' | 'None'
  }>
  sessionCookies: Array<{      // Same structure
    name: string
    value: string              // Redacted
    domain: string
    path: string
    expires: string | number
    httpOnly: boolean
    secure: boolean
    sameSite: 'Lax' | 'Strict' | 'None'
  }>
  sessionData: {
    user: {
      name: string
      email: string            // Partially masked
      image: string
    }
    expires: string            // ISO 8601 timestamp
    access_token: string       // Redacted
  }
  project: {
    projectId: string
    projectTitle: string
  }
  nextRefresh: {
    messageId: string
    scheduledFor: string       // ISO 8601 timestamp
  }
  health: string               // "OK" | "<error>"
  credits?: {                  // Only present when health is "OK"
    credits: number
    userPaygateTier: string    // "PAYGATE_TIER_ZERO" | "PAYGATE_TIER_ONE" | "PAYGATE_TIER_TIER1P5" | "PAYGATE_TIER_TWO"
  }
  models?: {                   // Only present when health is "OK"
    videoModels: Array<{
      key: string              // Model identifier (e.g., "veo_3_1_t2v_fast_ultra")
      displayName: string      // "Veo 3.1 - Fast" | "Veo 3.1 - Quality" | "Veo 3.1 - Lite" | "Veo 3.1 - Lite [Lower Priority]" | "Omni 1.1 Flash" | ...
      supportedAspectRatios: string[]
      capabilities: string[]   // e.g., ["VIDEO_MODEL_CAPABILITY_TEXT", "VIDEO_MODEL_CAPABILITY_AUDIO"]
      videoLengthSeconds: number
      videoGenerationTimeSeconds?: number
      creditCost: number       // Credits charged per generation. 0 for free Ultra-only variants (`_low_priority`, `_relaxed`).
      framesPerSecond: number
      resolution: string       // "360p" | "720p" — generation output resolution. On an upsampler key it is the input resolution that key accepts
      paygateTier: string      // "PAYGATE_TIER_ZERO" | "PAYGATE_TIER_ONE" | "PAYGATE_TIER_TIER1P5" | "PAYGATE_TIER_TWO"
      accessType: string
      modelAccessInfo: object
      modelMetadata: object
    }>
  }
  error?: string               // Error message
}

Examples

  • curl -H "Authorization: Bearer YOUR_API_TOKEN" \
         "https://api.useapi.net/v1/google-flow/accounts/john%40gmail.com"
    
  • import requests
    from urllib.parse import quote
    
    token = 'YOUR_API_TOKEN'
    email = 'john@gmail.com'
    
    headers = {'Authorization': f'Bearer {token}'}
    
    response = requests.get(
        f'https://api.useapi.net/v1/google-flow/accounts/{quote(email)}',
        headers=headers
    )
    
    account_config = response.json()
    print('Account config:', account_config)
    print('Health:', account_config.get('health'))
    print('Credits:', account_config.get('credits'))
    
  • const token = 'YOUR_API_TOKEN';
    const email = 'john@gmail.com';
    
    const response = await fetch(
      `https://api.useapi.net/v1/google-flow/accounts/${encodeURIComponent(email)}`,
      {
        headers: {
          'Authorization': `Bearer ${token}`
        }
      }
    );
    
    const accountConfig = await response.json();
    console.log('Account config:', accountConfig);
    console.log('Health:', accountConfig.health);
    console.log('Credits:', accountConfig.credits);
    

Add your accounts again before they stop working

Google is switching off the backend that Google Flow accounts used to run on. Accounts added before 2026-09-16 are still on it and need to be added again.

Check which ones with GET /accounts and read the backend field on each account:

backend What it means What to do
flow On the current backend Nothing
labs On the old backend Add the account again at Setup Google Flow

Adding an account again takes about a minute with the guided browser setup. Your code does not change — same endpoints, same parameters, same responses — and the account keeps its project, characters, voices, credits and original created date.

What already fails on a labs account

These four return 404 with the message Flow RPCs have been deprecated and disabled:

Generating images and videos still works on a labs account. That is the part to plan around — Google is retiring the whole old backend, not these four endpoints, so generation stops too once the remaining endpoints are switched off. Google has not published a date, which is the reason to move now rather than wait for one.

Why this is happening

Google moved Flow to flow.google.com on 2026-09-10 and replaced the old authorization with a cookie-based one. On 2026-09-15 it started disabling the old endpoints. Adding an account again captures what the new backend needs.

Try It