{
  "openapi": "3.0.1",
  "info": {
    "title": "Tennis Scraper — ATP, WTA | Live Scores, Odds, Point by Point",
    "description": "ATP, WTA, ITF and Challenger tennis: per-set statistics, point-by-point sequences, head-to-head, live scores down to the point in play and odds from up to 20 bookmakers per country. Current rankings, tournament level and seeds. Season archives decades deep. No login, no browser.",
    "version": "1.1",
    "x-build-id": "Rx008ToWgdZI65UlW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scapypuppy~tennis-scraper-atp-wta/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scapypuppy-tennis-scraper-atp-wta",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scapypuppy~tennis-scraper-atp-wta/runs": {
      "post": {
        "operationId": "runs-sync-scapypuppy-tennis-scraper-atp-wta",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scapypuppy~tennis-scraper-atp-wta/run-sync": {
      "post": {
        "operationId": "run-sync-scapypuppy-tennis-scraper-atp-wta",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "dateRange": {
            "title": "Days",
            "enum": [
              "today",
              "yesterday",
              "tomorrow",
              "yesterday-today",
              "today-tomorrow",
              "last-3-days",
              "next-3-days",
              "last-week",
              "next-week",
              "whole-window",
              "custom"
            ],
            "type": "string",
            "description": "The source keeps 7 days back and 7 ahead; tennis order of play appears 1-2 days ahead. Ignored when From/To date, league URLs, players or match IDs are set.",
            "default": "today"
          },
          "tennisTours": {
            "title": "Tours",
            "type": "array",
            "description": "Keep only these tours. Leave empty for all tours.",
            "items": {
              "type": "string",
              "enum": [
                "atp",
                "wta",
                "challenger",
                "itf"
              ],
              "enumTitles": [
                "ATP",
                "WTA",
                "Challenger (men's Challenger and women's WTA 125)",
                "ITF"
              ]
            },
            "default": []
          },
          "matchStatuses": {
            "title": "Match status",
            "type": "array",
            "description": "Leave empty for all. Live now alone reads the live feed first and returns only matches in play; add Live state for the score in play.",
            "items": {
              "type": "string",
              "enum": [
                "scheduled",
                "live",
                "finished",
                "postponed",
                "canceled",
                "abandoned",
                "interrupted"
              ],
              "enumTitles": [
                "Scheduled",
                "Live now",
                "Finished",
                "Postponed",
                "Canceled",
                "Abandoned (called off, no result)",
                "Interrupted (may resume later)"
              ]
            },
            "default": []
          },
          "maxMatches": {
            "title": "Max matches",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Most matches per run (monitor mode: matches checked). Top tournaments come first among the days read; without filters, reading stops once there are enough.",
            "default": 200
          },
          "tennisTiers": {
            "title": "Tournament level",
            "type": "array",
            "description": "Keep tournaments of these levels, as in the 2026 ATP and WTA calendars; qualifying counts as the level of its tournament. Each match carries its level in tennisTier. Leave empty for all levels.",
            "items": {
              "type": "string",
              "enum": [
                "grand-slam",
                "atp-finals",
                "wta-finals",
                "atp-1000",
                "atp-500",
                "atp-250",
                "wta-1000",
                "wta-500",
                "wta-250",
                "wta-125",
                "challenger",
                "itf",
                "davis-cup",
                "billie-jean-king-cup",
                "other"
              ],
              "enumTitles": [
                "Grand Slam",
                "ATP Finals",
                "WTA Finals",
                "ATP Masters 1000",
                "ATP 500",
                "ATP 250",
                "WTA 1000",
                "WTA 500",
                "WTA 250",
                "WTA 125",
                "ATP Challenger",
                "ITF",
                "Davis Cup",
                "Billie Jean King Cup",
                "Other (exhibitions, juniors, team events)"
              ]
            },
            "default": []
          },
          "tours": {
            "title": "Competitions",
            "type": "array",
            "description": "Tournament names as whole words, e.g. Wimbledon, Shanghai, Wuhan. A match passes if any entry matches. Leave empty for all tournaments.",
            "items": {
              "type": "string"
            }
          },
          "surfaces": {
            "title": "Surfaces",
            "type": "array",
            "description": "Keep matches on these surfaces. Court types match any of those picked; Indoor or Outdoor narrows them, so Hard plus Indoor means indoor hard courts. Leave empty for all surfaces.",
            "items": {
              "type": "string",
              "enum": [
                "hard",
                "clay",
                "grass",
                "carpet",
                "indoor",
                "outdoor"
              ],
              "enumTitles": [
                "Hard",
                "Clay",
                "Grass",
                "Carpet",
                "Indoor",
                "Outdoor"
              ]
            },
            "default": []
          },
          "matchType": {
            "title": "Singles or doubles",
            "type": "array",
            "description": "Keep singles, doubles or both. Leave empty for both.",
            "items": {
              "type": "string",
              "enum": [
                "singles",
                "doubles"
              ],
              "enumTitles": [
                "Singles",
                "Doubles"
              ]
            },
            "default": []
          },
          "teamFilter": {
            "title": "Player in the daily list",
            "type": "array",
            "description": "Keep only matches of these players from the selected days: names as whole words, or the 8-character IDs from Flashscore links. No extra requests. For a player's history beyond the 15-day window use Players below.",
            "items": {
              "type": "string"
            }
          },
          "startsWithinHours": {
            "title": "Starts within",
            "minimum": 0.25,
            "maximum": 360,
            "type": "number",
            "description": "Keep only matches that start from now until this many hours ahead, for example 6. Days that cannot hold such matches are not read."
          },
          "includeStats": {
            "title": "Match statistics",
            "type": "boolean",
            "description": "Aces, double faults, serve percentages and speeds, break points, winners and unforced errors — 23 metrics at the top events, per match and per set. Smaller tournaments publish fewer. Every row also carries a stable key and the values as numbers.",
            "default": true
          },
          "includeSummary": {
            "title": "Match summary and events",
            "type": "boolean",
            "description": "Venue, town, attendance, score by set and match duration. Tennis carries no event timeline at the source; that is what Point by point is for.",
            "default": true
          },
          "includeLineups": {
            "title": "Lineups",
            "type": "boolean",
            "description": "Tennis has no lineups, so this switch returns nothing here and is never billed.",
            "default": false
          },
          "includePlayerStats": {
            "title": "Player box score",
            "type": "boolean",
            "description": "Flashscore publishes no player box score for tennis, so this switch returns nothing here and is never billed.",
            "default": false
          },
          "includeH2H": {
            "title": "Head-to-head history",
            "type": "boolean",
            "description": "Past matches of both players and their direct meetings, plus a form summary with a record per surface. Billed per row, at most 30 rows a match: about 10 to 28 at the default depth; the rest is free.",
            "default": false
          },
          "maxH2HRecords": {
            "title": "Head-to-head: past matches per player",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "How many past matches to keep for each player; 0 keeps everything the source publishes, up to about 155 per player with the clay, grass and hard tabs. Billed per row, at most 30 a match. The row of the match itself is free and not counted.",
            "default": 10
          },
          "maxH2HMeetings": {
            "title": "Head-to-head: direct meetings",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "How many direct meetings of the two players to keep; 0 (the default) keeps all of them. Most pairs have met a handful of times or never. Billed per row, at most 30 a match with the past matches.",
            "default": 0
          },
          "includeLive": {
            "title": "Live state",
            "type": "boolean",
            "description": "For matches in play: the points inside the current game, who is serving and the set score. One request for the whole run, not one per match. Finished matches carry live: null and are not billed for it.",
            "default": false
          },
          "includePointByPoint": {
            "title": "Point by point",
            "type": "boolean",
            "description": "Every game and tiebreak with its full point sequence and, for every point, who served, who won it and whether it was a break, set or match point, plus match totals. The game in play is returned but not charged. One extra request per match.",
            "default": false
          },
          "resolveRounds": {
            "title": "Match round",
            "type": "boolean",
            "description": "Adds the round of each match (Final, Semi-finals, 1/8-finals), read from the tournament draw: one request per draw in your run, not per match, shared with Seeds. Matches in play get their round too.",
            "default": false
          },
          "includeSeeds": {
            "title": "Seeds",
            "type": "boolean",
            "description": "Each player's seed or entry status from the draw: 1, 2, WC (wild card), Q (qualifier), LL (lucky loser), PR (protected ranking), Alt (alternate). One request per draw in your run, shared with Match round.",
            "default": false
          },
          "includeNews": {
            "title": "Match news",
            "type": "boolean",
            "description": "News articles linked to the match: title, source outlet, image and publication time. Published for notable matches; smaller fixtures often have none.",
            "default": false
          },
          "includeHighlights": {
            "title": "Video highlights",
            "type": "boolean",
            "description": "Links to official video highlights (YouTube and other providers) with preview images. Appear after the match has been played.",
            "default": false
          },
          "includeBroadcasts": {
            "title": "TV and streaming listings",
            "type": "boolean",
            "description": "Where to watch: the TV channels and streaming services the source lists for the match, by country, plus bookmaker live streams. Billed only when at least one TV channel is listed.",
            "default": false
          },
          "includeOdds": {
            "title": "Match-winner odds",
            "type": "boolean",
            "description": "Match-winner prices of every bookmaker in the chosen countries, opening and current, with the average and best price, margin, no-vig probabilities, an arbitrage check and line movement. Matches in play keep their last pre-match prices. One request per match and country.",
            "default": false
          },
          "oddsCountries": {
            "title": "Odds countries",
            "type": "array",
            "description": "Whose bookmakers to show: licences are national, Great Britain has about 20, the US (New Jersey) about 5. Several countries merge into one record; one request per country per match.",
            "items": {
              "type": "string",
              "enum": [
                "GB",
                "US",
                "CA",
                "IT",
                "ES",
                "SE",
                "ZA",
                "MX",
                "DE",
                "FR",
                "AR",
                "UA",
                "PL",
                "CZ",
                "NG",
                "AU",
                "NL"
              ],
              "enumTitles": [
                "Great Britain",
                "United States (New Jersey)",
                "Canada (Ontario)",
                "Italy",
                "Spain",
                "Sweden",
                "South Africa",
                "Mexico",
                "Germany",
                "France",
                "Argentina",
                "Ukraine",
                "Poland",
                "Czech Republic",
                "Nigeria",
                "Australia",
                "Netherlands"
              ]
            },
            "default": [
              "GB"
            ]
          },
          "onlyWithOdds": {
            "title": "Only matches with odds",
            "type": "boolean",
            "description": "Skip matches with no bookmaker prices: they are neither returned nor billed, and the run checks up to twice as many candidates as Max matches to fill the rest. Needs Match-winner odds.",
            "default": false
          },
          "oddsFormat": {
            "title": "Odds format",
            "enum": [
              "decimal",
              "american"
            ],
            "type": "string",
            "description": "American adds prices such as +150 and -110 next to the decimal match-winner prices (homeAmerican and so on), in-play prices included; the price list stays decimal.",
            "default": "decimal"
          },
          "includeOddsMarkets": {
            "title": "Totals, handicaps and BTTS",
            "type": "boolean",
            "description": "Every Over/Under total and Asian handicap line, plus Both Teams To Score where priced, with the average price and the number of bookmakers behind each line. No extra requests; billed only when the match has such a line.",
            "default": false
          },
          "includeLiveOdds": {
            "title": "Live odds for matches in play",
            "type": "boolean",
            "description": "In-play match-winner prices of every bookmaker taking live bets, up to 10, with each one's first in-play price and whether the price is now above or below it, next to the closing pre-match ones. One request per country plus one per live bookmaker for each match in play; no separate charge.",
            "default": false
          },
          "includeOddsOffers": {
            "title": "Every bookmaker price (all markets)",
            "type": "boolean",
            "description": "A flat list of every price of every bookmaker: all markets and parts of the match, with the line, opening and current price and movement. A tennis match carries about 780 rows. Narrow it with the two filters below. No extra requests.",
            "default": false
          },
          "oddsOfferMarkets": {
            "title": "Price list: markets",
            "type": "array",
            "description": "Keep only these markets in the price list; leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "HOME_DRAW_AWAY",
                "HOME_AWAY",
                "OVER_UNDER",
                "ASIAN_HANDICAP",
                "EUROPEAN_HANDICAP",
                "DOUBLE_CHANCE",
                "DRAW_NO_BET",
                "CORRECT_SCORE",
                "HALF_FULL_TIME",
                "ODD_OR_EVEN",
                "BOTH_TEAMS_TO_SCORE",
                "TO_QUALIFY",
                "NEXT_GOAL",
                "TOP_POSITION_MERGED",
                "TO_WIN_AND_TOP_POSITION",
                "WIN_EACH_WAY"
              ],
              "enumTitles": [
                "Match winner with draw (1X2)",
                "Match winner, no draw",
                "Over/Under",
                "Asian handicap",
                "European handicap",
                "Double chance",
                "Draw no bet",
                "Correct score",
                "Half-time/Full-time",
                "Odd/Even",
                "Both teams to score",
                "To qualify",
                "Next goal",
                "Top position",
                "To win and top position",
                "Win each way"
              ]
            },
            "default": []
          },
          "oddsOfferScopes": {
            "title": "Price list: parts of the match",
            "type": "array",
            "description": "Keep only these parts of the match in the price list; leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "FULL_TIME",
                "FULL_TIME_OVER_TIME",
                "FIRST_HALF",
                "SECOND_HALF",
                "FIRST_PERIOD",
                "FIRST_QUARTER",
                "FIRST_SET",
                "SECOND_SET"
              ],
              "enumTitles": [
                "Full time",
                "Full time including overtime",
                "1st half",
                "2nd half",
                "1st period",
                "1st quarter",
                "1st set",
                "2nd set"
              ]
            },
            "default": []
          },
          "leagueUrls": {
            "title": "League or season URLs",
            "type": "array",
            "description": "Flashscore tournament pages, such as https://www.flashscore.com/tennis/atp-singles/us-open-2025/ for one edition. Grand Slam archives reach back to 1990. From date and To date still apply.",
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "title": "Players",
            "type": "array",
            "description": "Player names such as 'Sinner', Flashscore player links like https://www.flashscore.com/player/sinner-jannik/6HdC3z4H/, or their 8-character IDs, which skip the name search. Returns the full known schedule and recent results of each player. From date and To date still apply.",
            "items": {
              "type": "string"
            }
          },
          "teamResultsPages": {
            "title": "Past results pages per player",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Used with Players. One page is about 40 past matches.",
            "default": 2
          },
          "matchIds": {
            "title": "Match IDs or URLs",
            "type": "array",
            "description": "Exact matches on any date: 8-character Flashscore IDs like 'tW4rOkzg' or match links. Overrides Days, league URLs, players and all filters; Max matches and dates still apply. Unknown IDs are never billed.",
            "items": {
              "type": "string"
            }
          },
          "dateFrom": {
            "title": "From date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "First day to include. On its own it replaces Days, within the source window of seven days back and seven ahead; with Competitions it also reaches dates outside the window through the season archive of the tournament. With league URLs, teams or match IDs it keeps only their matches from this date, so a month of a season costs one month. Leave empty for no lower limit."
          },
          "dateTo": {
            "title": "To date",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Last day to include, inclusive. Works like From date. Leave empty for no upper limit."
          },
          "dayOffsets": {
            "title": "Day offsets (Custom only)",
            "type": "array",
            "description": "Read only when Days is Custom. Offsets from today: -1 yesterday, 0 today, 2 the day after tomorrow. Values outside -7 to +7 are dropped."
          },
          "timezone": {
            "title": "Time zone",
            "type": "string",
            "description": "Where one day ends for Days and dates: a time zone name, daylight saving applied, or an offset like +05:30. Empty means UTC."
          },
          "timezoneOffset": {
            "title": "Day boundary (UTC offset, older field)",
            "minimum": -11,
            "maximum": 14,
            "type": "integer",
            "description": "Older field, use Time zone instead. Whole hours from UTC without daylight saving; 0 or empty means this Actor's default. Ignored when Time zone is set."
          },
          "monitorMode": {
            "title": "Monitor mode (deltas only)",
            "type": "boolean",
            "description": "Output only matches that are new or changed since the previous run with the same monitor name: new fixtures, kickoff changes, score and status updates, line moves, final results. The first run outputs everything. Records carry changeType and monitorChangedFields.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name of the monitor's memory, a key-value store in your account; empty means default. Use a different name per saved task or schedule so watchlists do not mix, and never run two monitors with one name at once: turn on the schedule's option that skips a run while the previous one is going."
          },
          "monitorKey": {
            "title": "Monitor key (older name)",
            "type": "string",
            "description": "Older name of Monitor name, kept hidden so saved tasks keep their monitor memory; Monitor name wins when both are set."
          },
          "omitEmptyFields": {
            "title": "Compact output (drop empty fields)",
            "type": "boolean",
            "description": "Leave out null values, empty lists and empty objects at every level, so each record carries only the data it has. Off by default: records of runs with the same options then have the same fields, which suits CSV and spreadsheets.",
            "default": false
          },
          "outputDatasetName": {
            "title": "Also append to dataset",
            "type": "string",
            "description": "Name of a dataset this Actor creates on its first run and fills with the same records as the run's dataset: one history across scheduled runs. Named datasets are kept until you delete them and their storage is billed by Apify. Letters, digits and hyphens."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Datacenter proxies are enough; residential proxies are not required.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}