Query Usage Statistics

January 31, 2026 (May 22, 2026)

Table of contents

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

Query your API usage statistics. Returns detailed information about jobs/requests for a specific bot.

Note:

  • Data latency is at least 5 minutes, but should not exceed 15 minutes.
  • Data is retained for 3 months.

https://api.useapi.net/v2/account/stats

Request Headers
Authorization: Bearer {API token}
Query Parameters
Parameter Required Description
bot Yes Bot to query stats for.
Supported: midjourney, google-flow, dreamina, kling, runwayml, pixverse, minimax, mureka, tempolor, ltxstudio, luma
date No Date in YYYY-MM-DD format.
Defaults to today if limit is not specified.
limit No Number of records to return (max: 50000).
If specified, date filter is ignored and returns last N records across all dates.
config No Filter by specific config (channel/email/account depending on bot).
Responses
  • 200 OK

    Returns usage statistics for the specified bot.

    {
      "bot": "google-flow",
      "date": "2026-02-13",
      "total": 2402,
      "summary": {
        "from": "2026-02-13T00:00:03.000Z",
        "to": "2026-02-13T23:58:38.000Z",
        "time_span": "23 hours 58 minutes",
        "by_config": {
          "[email protected]": 670,
          "[email protected]": 547,
          "[email protected]": 438,
          "[email protected]": 321,
          "[email protected]": 306,
          "[email protected]": 120
        },
        "by_code": {
          "200": 548,
          "201": 796,
          "400": 130,
          "403": 684,
          "429": 239,
          "500": 3,
          "503": 2
        },
        "by_endpoint": {
          "post-images": 1334,
          "post-videos": 1046,
          "post-videos-upscale": 22
        },
        "by_status": {
          "Created": 796,
          "OK": 548,
          "Forbidden": 684,
          "Too Many Requests": 239,
          "Bad Request": 130,
          "Internal Server Error": 3,
          "Service Unavailable": 2
        },
        "success_rate": "56.0%",
        "avg_msec": 17759,
        "by_model": {
          "veo-3.1-fast-relaxed": 1032,
          "nano-banana-pro": 702,
          "imagen-4": 449,
          "nano-banana": 181,
          "veo-3.1-fast": 14
        },
        "by_captcha_provider": {
          "CapSolver": 4856
        },
        "avg_captcha_retry": 2,
        "by_tier": {
          "PAYGATE_TIER_TWO": 1684,
          "PAYGATE_TIER_ONE": 612,
          "PAYGATE_TIER_NOT_PAID": 106
        },
        "by_sku": {
          "WS_ULTRA": 1430,
          "G1_TIER2": 254,
          "G1_TIER1": 612,
          "G1_FREEMIUM": 106
        },
        "lookup": {
          "tiers": {
            "PAYGATE_TIER_TWO": "Ultra $199",
            "PAYGATE_TIER_ONE": "Pro",
            "PAYGATE_TIER_NOT_PAID": "Free"
          },
          "skus": {
            "WS_ULTRA": "Workspace Ultra",
            "G1_TIER2": "Ultra $199",
            "G1_TIER1": "Pro",
            "G1_FREEMIUM": "Free"
          }
        }
      },
      "data": [
        {
          "timestamp": "2026-02-13T10:30:00.000Z",
          "jobid": "20260213103000-user:123-bot:google-flow",
          "config": "[email protected]",
          "endpoint": "post-images",
          "status": "OK",
          "func": "v1-google-flow-images",
          "code": 200,
          "msec": 5432,
          "model": "imagen-4",
          "captchaProviders": "CapSolver",
          "captchaRetry": 1,
          "tier": "PAYGATE_TIER_TWO",
          "sku": "WS_ULTRA"
        }
      ]
    }
    

    The summary object provides aggregated statistics (omitted if no data).

    For google-flow, dreamina, kling, minimax, pixverse, and luma, additional fields are included in both data rows and summary:

    • model / by_model: AI model used for generation

    For google-flow only:

    • captchaProviders / by_captcha_provider: Captcha providers used
    • captchaRetry / avg_captcha_retry: Captcha retry attempts
    • tier / by_tier: Google userPaygateTier (plan family β€” PAYGATE_TIER_NOT_PAID / _ONE / _TIER1P5 / _TWO). Available since 2026-05-21; rows before that date have empty tier/sku and bucket under "(empty)".
    • sku / by_sku: Google sku string (specific subscription β€” G1_FREEMIUM / G1_TIER1 / G1_TIER1P5 / G1_TIER2 / WS_FREEMIUM / WS_ULTRA).
    • summary.lookup.tiers / summary.lookup.skus: canonical enum β†’ human-readable label map (e.g. WS_ULTRA β†’ "Workspace Ultra"). Resolve enums through this map rather than hard-coding strings. Unknown enums map to themselves so new values aren’t lost.
    Known tier/sku values (google-flow)
    Field Enum value Label Plan
    tier PAYGATE_TIER_NOT_PAID Free Free tier
    tier PAYGATE_TIER_ONE Pro Google AI Pro
    tier PAYGATE_TIER_TIER1P5 Ultra $99 Google AI Ultra $99/mo
    tier PAYGATE_TIER_TWO Ultra $199 Google AI Ultra $199/mo
    sku G1_FREEMIUM Free Google AI consumer Free
    sku G1_TIER1 Pro Google AI consumer Pro
    sku G1_TIER1P5 Ultra $99 Google AI consumer Ultra $99
    sku G1_TIER2 Ultra $199 Google AI consumer Ultra $199
    sku WS_FREEMIUM Workspace Free Google Workspace, no AI add-on
    sku WS_ULTRA Workspace Ultra Google Workspace + AI Ultra add-on
  • 400 Bad Request

    Missing or invalid parameters.

    {
      "error": "<error message>"
    }
    
  • 401 Unauthorized

    Invalid API token.

    {
      "error": "Unauthorized"
    }
    
Model
// Response structure
{
  bot: string                    // Bot name
  date?: string                  // Date filter applied (YYYY-MM-DD)
  limit?: number                 // Limit filter applied
  config?: string                // Config filter applied
  total: number                  // Total records returned
  summary?: {                    // Aggregated statistics (omitted if no data)
    from: string                 // Earliest timestamp (ISO 8601)
    to: string                   // Latest timestamp (ISO 8601)
    time_span: string            // Human readable duration (e.g., "2 days 5 hours")
    by_config: Record<string, number>    // Count per config/account
    by_code: Record<string, number>      // Count per HTTP status code
    by_endpoint: Record<string, number>  // Count per endpoint/verb
    by_status: Record<string, number>    // Count per job status
    success_rate: string         // Percentage of 2xx codes (e.g., "86.7%")
    avg_msec: number             // Average response time in ms
    // google-flow, dreamina, minimax:
    by_model?: Record<string, number>            // Count per AI model
    // google-flow only:
    by_captcha_provider?: Record<string, number>  // Count per captcha provider
    avg_captcha_retry?: number   // Average captcha retries
    by_tier?: Record<string, number>             // Count per Google userPaygateTier (since 2026-05-21). Pre-existing rows bucket under "(empty)".
    by_sku?: Record<string, number>              // Count per Google sku (since 2026-05-21). Pre-existing rows bucket under "(empty)".
    lookup?: {                                    // Canonical enum -> human-readable label map for the tier/sku values present here.
      tiers: Record<string, string>               // e.g. { PAYGATE_TIER_TWO: "Ultra $199" }. Unknown enums map to themselves.
      skus: Record<string, string>                // e.g. { WS_ULTRA: "Workspace Ultra" }. Unknown enums map to themselves.
    }
  }
  data: Array<{
    timestamp: string            // ISO 8601 timestamp
    jobid: string                // Job/task identifier
    config: string               // Account/config used (channel for MJ, email/account for others)
    endpoint: string             // API endpoint called
    status: string               // Job status
    func: string                 // Function name
    code: number                 // HTTP status code
    msec: number                 // Duration in milliseconds
    // google-flow, dreamina, minimax:
    model?: string               // AI model used for generation
    // google-flow only:
    captchaProviders?: string    // Captcha providers tried (comma-separated)
    captchaRetry?: number        // Number of captcha retries
    tier?: string                // Google userPaygateTier (PAYGATE_TIER_*). Empty for rows pre-2026-05-21. Resolve to a label via summary.lookup.tiers.
    sku?: string                 // Google sku (G1_*/WS_*). Empty for rows pre-2026-05-21. Resolve to a label via summary.lookup.skus.
  }>
}
Examples
  • # Today's stats for midjourney
    curl -H "Authorization: Bearer YOUR_API_TOKEN" \
         "https://api.useapi.net/v2/account/stats?bot=midjourney"
    
    # Specific date
    curl -H "Authorization: Bearer YOUR_API_TOKEN" \
         "https://api.useapi.net/v2/account/stats?bot=google-flow&date=2026-01-31"
    
    # Last 1000 records
    curl -H "Authorization: Bearer YOUR_API_TOKEN" \
         "https://api.useapi.net/v2/account/stats?bot=kling&limit=1000"
    
    # Filter by config
    curl -H "Authorization: Bearer YOUR_API_TOKEN" \
         "https://api.useapi.net/v2/account/stats?bot=runwayml&[email protected]"
    
  • const token = 'YOUR_API_TOKEN';
    const bot = 'google-flow';
    const date = '2026-01-31';
    
    const response = await fetch(
      `https://api.useapi.net/v2/account/stats?bot=${bot}&date=${date}`,
      {
        headers: {
          'Authorization': `Bearer ${token}`
        }
      }
    );
    
    const stats = await response.json();
    console.log(`Total records: ${stats.total}`);
    console.log('Stats:', stats.data);
    
  • import requests
    
    token = 'YOUR_API_TOKEN'
    headers = {'Authorization': f'Bearer {token}'}
    
    # Today's stats for midjourney
    response = requests.get(
        'https://api.useapi.net/v2/account/stats',
        params={'bot': 'midjourney'},
        headers=headers
    )
    stats = response.json()
    print(f"Total records: {stats['total']}")
    print('Stats:', stats['data'])
    
Try It