{
  "openapi": "3.0.1",
  "info": {
    "title": "TwitchTracker Scraper | Twitch Streamer Stats and Rankings",
    "description": "TwitchTracker scraper for Twitch streamer stats: average and peak viewers, hours watched, hours streamed, followers gained, subscribers and rank for any channel or the month's top streamers by language. 20 channels in 23 seconds, 28 fields each. Paste channel names or pick a language. No login.",
    "version": "1.0",
    "x-build-id": "ArasRetADhGhAyhXP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~twitchtracker-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-twitchtracker-scraper",
        "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/silentflow~twitchtracker-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-twitchtracker-scraper",
        "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/silentflow~twitchtracker-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-twitchtracker-scraper",
        "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": {
          "channelUsernames": {
            "title": "📺 Twitch channels",
            "type": "array",
            "description": "Twitch channel names or links, one per line: <code>xqc</code>, <code>https://www.twitch.tv/kaicenat</code> or <code>https://twitchtracker.com/ibai</code>. Each channel becomes one row with its average and peak viewers, hours watched, followers, active subscribers, rank and profile.<br><br>Leave empty to pull the ranking below instead. A channel TwitchTracker does not track is skipped and never becomes a row.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 TwitchTracker URLs",
            "type": "array",
            "description": "TwitchTracker channel pages (<code>https://twitchtracker.com/xqc</code>) or channel ranking pages with their filters (<code>https://twitchtracker.com/channels/most-followers/spanish/esports</code>). A ranking page is read from its page onward, 50 channels per page, until <b>Max channels</b>.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "language": {
            "title": "🌍 Language",
            "type": "string",
            "description": "Broadcast language of the ranked channels. Pick one from the list, or type a name or code (<code>French</code>, <code>fr</code>, <code>fra</code>). <b>All languages</b> ranks every channel on Twitch: 10,000 channels deep. A language ranking also gives each row its language rank."
          },
          "sortBy": {
            "title": "📊 Rank channels by",
            "enum": [
              "rank",
              "avgViewers",
              "allTimePeakViewers",
              "hoursWatched",
              "followersGained",
              "followers",
              "views"
            ],
            "type": "string",
            "description": "The list to read. <b>Followers gained</b> surfaces the fastest-growing channels of the month, <b>Average viewers</b> the ones with the biggest live audience.",
            "default": "rank"
          },
          "category": {
            "title": "🎮 Channel type",
            "enum": [
              "all",
              "personality",
              "esports"
            ],
            "type": "string",
            "description": "Keep only personal streamers or only esports organisations and tournament channels, as TwitchTracker classifies them.",
            "default": "all"
          },
          "maxItems": {
            "title": "🔢 Max channels",
            "minimum": 1,
            "type": "integer",
            "description": "The run stops once this many channels are saved. Rows and run time grow with this number: a ranking of 1,000 channels is 20 ranking pages plus one profile per channel.",
            "default": 100
          },
          "includeChannelDetails": {
            "title": "📄 Add subscribers and profile to ranking rows",
            "type": "boolean",
            "description": "On: each ranking row also gets the channel's active, paid and gifted subscribers, all-time high subs, 30-day peak viewers, language rank, Partner or Affiliate status, creation date, bio and banner. Off: a faster export with the ranking's own columns only. Channels typed above always get the full profile.",
            "default": true
          },
          "debugMode": {
            "title": "🐞 Debug logs",
            "type": "boolean",
            "description": "Show detailed logs. Leave off unless support asks for it.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}