# Twitch Search Pro (`sentry/twitch-search-pro`) Actor

The fastest and cheapest Twitch search scraper for finding channels by keyword, niche, game, brand term, or username fragment. Export clean Twitch channel results with followers, live status, viewers, stream titles, descriptions, avatars, and channel URLs.

- **URL**: https://apify.com/sentry/twitch-search-pro.md
- **Developed by:** [Sentry](https://apify.com/sentry) (community)
- **Categories:** Social media, Lead generation, Developer tools
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Twitch Search Pro

Twitch Search Pro is a fast, lightweight Twitch scraper for collecting structured Twitch discovery data without browser overhead.

It supports:
- channel search by keyword
- top Twitch categories and games
- top live streams
- live streams for a specific game or category
- channel profile lookups
- channel clips

### What it is good for

Use it when you want to:
- find Twitch streamers by niche, topic, game, brand term, or username fragment
- export top Twitch categories with viewer and broadcaster counts
- collect live streams in a category for research, lead generation, or monitoring
- look up channel profiles, follower counts, live status, and descriptions
- pull channel clips for creator research or content analysis
- build Twitch creator lists for outreach, sponsorship research, influencer discovery, or competitor tracking

### Modes

#### Channel Search
Search Twitch channels by keyword and paginate through results.

Input:
- `queries`

Typical output:
- avatar
- username
- display name
- follower count
- live status
- viewer count
- current game
- current stream title
- description
- channel URL

#### Top Categories & Games
Pull the current top Twitch categories and games.

Output includes:
- box art
- category name
- viewers count
- broadcasters count
- followers count
- category URL

#### Top Live Streams
Pull the current top live streams across Twitch.

Output includes:
- stream title
- streamer username
- display name
- avatar
- viewers count
- game/category
- channel URL

#### Streams by Game
Pull live streams for one or more Twitch game or category slugs such as `league-of-legends`, `just-chatting`, or `valorant`.

Input:
- `gameSlugs`

Output includes:
- stream title
- streamer username
- viewers count
- category
- channel URL

#### Channel Profiles
Look up Twitch channels directly by username.

Input:
- `channelLogins`

Output includes:
- avatar
- username
- display name
- description
- follower count
- live status
- current viewers
- current game
- last broadcast timestamp
- channel URL

#### Channel Clips
Pull clips for one or more Twitch channels.

Input:
- `channelLogins`

Output includes:
- clip thumbnail
- clip title
- clip URL
- clip views
- duration
- created at
- clip game/category
- source channel URL

### Important notes

- `Channel Search` supports multi-page pagination.
- `Top Categories & Games`, `Top Live Streams`, `Streams by Game`, and `Channel Clips` currently return first-page results only.
- `Channel Profiles` returns one row per requested username.
- Raw Twitch payloads can be included for debugging by enabling `includeRaw`.

### Example inputs

#### Channel Search

```json
{
  "mode": "channel_search",
  "queries": ["valorant coach", "asmr", "foxy"],
  "maxPages": 3,
  "maxResultsPerQuery": 50,
  "maxResultsTotal": 200,
  "includeRaw": false
}
````

#### Top Categories & Games

```json
{
  "mode": "top_categories",
  "maxResultsTotal": 30
}
```

#### Top Live Streams

```json
{
  "mode": "top_live_streams",
  "maxResultsTotal": 30
}
```

#### Streams by Game

```json
{
  "mode": "streams_by_game",
  "gameSlugs": ["league-of-legends", "valorant"],
  "maxResultsPerQuery": 30,
  "maxResultsTotal": 60
}
```

#### Channel Profiles

```json
{
  "mode": "channel_profiles",
  "channelLogins": ["shroud", "pokimane", "tarik"]
}
```

#### Channel Clips

```json
{
  "mode": "channel_clips",
  "channelLogins": ["shroud", "pokimane"],
  "maxResultsPerQuery": 30,
  "maxResultsTotal": 60
}
```

### Common use cases

- Twitch influencer discovery
- Twitch creator lead generation
- Twitch streamer research
- Twitch niche and category research
- Twitch competitor monitoring
- Twitch gaming category tracking
- Twitch live stream monitoring
- Twitch clip collection and clip research
- Twitch creator database building
- Twitch sponsorship prospecting

### SEO / Discovery

People typically find this actor when searching for terms like:

- Twitch scraper
- Twitch data scraper
- Twitch API scraper
- Twitch search scraper
- Twitch channel search scraper
- Twitch streamer search tool
- Twitch creator search tool
- Twitch influencer discovery tool
- Twitch creator discovery scraper
- Twitch channel lookup tool
- Twitch profile scraper
- Twitch clips scraper
- Twitch recent clips scraper
- Twitch top streams scraper
- Twitch live streams scraper
- Twitch game streams scraper
- Twitch category scraper
- Twitch games scraper
- Twitch top games scraper
- Twitch top categories scraper
- Twitch viewer count scraper
- Twitch broadcaster count scraper

If you need exportable Twitch search, discovery, category, stream, profile, or clips data in JSON, CSV, or downstream automations, Twitch Search Pro is built for that workflow.

# Actor input Schema

## `mode` (type: `string`):

Choose which Twitch dataset you want to collect.

## `queries` (type: `array`):

Used in Channel Search mode. Enter one or more keywords, game names, niches, brand terms, or username fragments.

## `gameSlugs` (type: `array`):

Used in Streams by Game mode. Enter Twitch category slugs such as `league-of-legends`, `just-chatting`, or `valorant`.

## `channelLogins` (type: `array`):

Used in Channel Profiles and Channel Clips modes. Enter Twitch usernames such as `shroud` or `pokimane`.

## `maxPages` (type: `integer`):

Maximum pages to fetch in Channel Search mode.

## `maxResultsPerQuery` (type: `integer`):

Maximum rows to return for each search query, game slug, or channel username where applicable.

## `maxResultsTotal` (type: `integer`):

Maximum rows to return for the entire run.

## `requestTimeoutSec` (type: `integer`):

Maximum time to wait for each Twitch request.

## `includeRaw` (type: `boolean`):

Include the raw Twitch response object on each dataset row for debugging or custom downstream parsing.

## Actor input object example

```json
{
  "mode": "channel_search",
  "queries": [
    "foxy"
  ],
  "gameSlugs": [
    "league-of-legends"
  ],
  "channelLogins": [
    "shroud"
  ],
  "maxPages": 3,
  "maxResultsPerQuery": 50,
  "maxResultsTotal": 200,
  "requestTimeoutSec": 30,
  "includeRaw": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "foxy"
    ],
    "gameSlugs": [
        "league-of-legends"
    ],
    "channelLogins": [
        "shroud"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("sentry/twitch-search-pro").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": ["foxy"],
    "gameSlugs": ["league-of-legends"],
    "channelLogins": ["shroud"],
}

# Run the Actor and wait for it to finish
run = client.actor("sentry/twitch-search-pro").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "foxy"
  ],
  "gameSlugs": [
    "league-of-legends"
  ],
  "channelLogins": [
    "shroud"
  ]
}' |
apify call sentry/twitch-search-pro --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sentry/twitch-search-pro",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Twitch Search Pro",
        "description": "The fastest and cheapest Twitch search scraper for finding channels by keyword, niche, game, brand term, or username fragment. Export clean Twitch channel results with followers, live status, viewers, stream titles, descriptions, avatars, and channel URLs.",
        "version": "1.0",
        "x-build-id": "h27roGdMeT7l5h8qr"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sentry~twitch-search-pro/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sentry-twitch-search-pro",
                "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/sentry~twitch-search-pro/runs": {
            "post": {
                "operationId": "runs-sync-sentry-twitch-search-pro",
                "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/sentry~twitch-search-pro/run-sync": {
            "post": {
                "operationId": "run-sync-sentry-twitch-search-pro",
                "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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "channel_search",
                            "top_categories",
                            "top_live_streams",
                            "streams_by_game",
                            "channel_profiles",
                            "channel_clips"
                        ],
                        "type": "string",
                        "description": "Choose which Twitch dataset you want to collect.",
                        "default": "channel_search"
                    },
                    "queries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Used in Channel Search mode. Enter one or more keywords, game names, niches, brand terms, or username fragments.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "gameSlugs": {
                        "title": "Game / Category Slugs",
                        "type": "array",
                        "description": "Used in Streams by Game mode. Enter Twitch category slugs such as `league-of-legends`, `just-chatting`, or `valorant`.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "channelLogins": {
                        "title": "Channel Usernames",
                        "type": "array",
                        "description": "Used in Channel Profiles and Channel Clips modes. Enter Twitch usernames such as `shroud` or `pokimane`.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPages": {
                        "title": "Max Pages",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum pages to fetch in Channel Search mode.",
                        "default": 3
                    },
                    "maxResultsPerQuery": {
                        "title": "Max Results Per Input",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum rows to return for each search query, game slug, or channel username where applicable.",
                        "default": 50
                    },
                    "maxResultsTotal": {
                        "title": "Max Results Total",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum rows to return for the entire run.",
                        "default": 200
                    },
                    "requestTimeoutSec": {
                        "title": "Request Timeout (seconds)",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Maximum time to wait for each Twitch request.",
                        "default": 30
                    },
                    "includeRaw": {
                        "title": "Include Raw Twitch Payload",
                        "type": "boolean",
                        "description": "Include the raw Twitch response object on each dataset row for debugging or custom downstream parsing.",
                        "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
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
