Twitch Channel Details Scraper avatar

Twitch Channel Details Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Twitch Channel Details Scraper

Twitch Channel Details Scraper

Extract public Twitch channel profiles, follower counts, partner and affiliate status, social links, channel panels, and recent video references.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

ScrapingMonkey

ScrapingMonkey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract public Twitch channel profiles from logins or links. Twitch Channel Details Scraper returns identity, description, follower counts, public roles, social links, team information and available channel panels.

Create a structured reference card for each known channel, with profile and public About-page information kept together.

At a glanceDetails
📥 InputEnter Twitch channel logins or official channel URLs. Channel tabs and supported tracking parameters are accepted.
📤 OutputOne channel per success row, with source input retained
📄 PaginationEach channel is an individual lookup. There is no pages-per-channel setting in this details Actor.
🔐 Login requiredNo
⚡ ProcessingUp to 5 HTTP requests concurrently with automatic retries
💾 DeliveryOne Apify dataset view, useful flat columns and complete nested JSON

What the Twitch Channel Details scraper collects 📦

The Actor retrieves each selected channel’s public profile and available panels. Optional nested values stay in the channel row.

Data can include:

  • Channel ID, login, display name, description and profile image
  • Public follower count and available channel-role flags
  • Social links and team information when present
  • Available panel titles, text, image references and links
  • Available recent-broadcast metadata

How to collect channel details from Twitch 🚀

  1. Enter one or more supported inputs in inputList.
  2. Review the supported input format.
  3. Start the Actor.
  4. Open the Channel details dataset view and review the individual records.
  5. Export the dataset or retrieve it from your application.
{
"inputList": [
"shroud"
]
}

Each channel is an individual lookup. There is no pages-per-channel setting in this details Actor.

Twitch channel details data and complete output 📦

FieldTypeMeaning
inputstringOriginal submitted input.
statusstringResult status: success or failed.
typestring or nullNormalized result entity type.
idstring or nullIdentifier of this object, preserved as a string.
loginstring or nullTwitch channel login used in its public URL.
display_namestring or nullPublic display name, preserving the source capitalization.
urlstring or nullPublic source URL for this object.
descriptionstring or nullAvailable public description; null when not supplied.
profile_image_urlstring or nullAvailable public channel profile-image URL.
primary_color_hexstring or nullPublic channel theme color in hexadecimal form.
followers_countinteger or nullPublic follower count; not a paid-subscriber count or a follower list.
is_partnerboolean or nullPublic Twitch Partner flag when supplied.
is_affiliateboolean or nullPublic Twitch Affiliate flag when supplied.
is_staffboolean or nullPublic Twitch staff-role flag when supplied.
is_participating_djboolean or nullPublic Twitch DJ-program participation flag when supplied.
social_linksarray or nullPublic social-link records shown with the channel profile.
social_links[].idstring or nullIdentifier of this object, preserved as a string.
social_links[].namestring or nullPublic name of this blog or nested object.
social_links[].titlestring or nullPublic title supplied for this object.
social_links[].urlstring or nullPublic source URL for this object.
primary_teamobject or nullAvailable primary Twitch team identity.
primary_team.idstring or nullIdentifier of this object, preserved as a string.
primary_team.namestring or nullPublic name of this blog or nested object.
primary_team.display_namestring or nullPublic display name, preserving the source capitalization.
last_broadcastobject or nullAvailable last-broadcast reference and category information.
last_broadcast.idstring or nullIdentifier of this object, preserved as a string.
last_broadcast.gameobject or nullAvailable game or category metadata for the parent object.
last_broadcast.game.idstring or nullIdentifier of this object, preserved as a string.
last_broadcast.game.slugstring or nullPublic identifier used in this object’s URL.
last_broadcast.game.namestring or nullPublic name of this blog or nested object.
last_broadcast.game.display_namestring or nullPublic display name, preserving the source capitalization.
last_broadcast.game.urlstring or nullPublic source URL for this object.
last_broadcast.game.box_art_urlstring or nullAvailable category or game cover-image URL.
recent_video_referencesarray or nullLightweight recent-video references from the profile, not full video records.
recent_video_references[].idstring or nullIdentifier of this object, preserved as a string.
recent_video_references[].urlstring or nullPublic source URL for this object.
recent_video_references[].statusstring or nullVideo availability or processing status supplied with this lightweight reference.
recent_video_references[].gameobject or nullAvailable game or category metadata for the parent object.
recent_video_references[].game.idstring or nullIdentifier of this object, preserved as a string.
recent_video_references[].game.slugstring or nullPublic identifier used in this object’s URL.
recent_video_references[].game.namestring or nullPublic name of this blog or nested object.
recent_video_references[].game.display_namestring or nullPublic display name, preserving the source capitalization.
recent_video_references[].game.urlstring or nullPublic source URL for this object.
recent_video_references[].game.box_art_urlstring or nullAvailable category or game cover-image URL.
panelsarray or nullPublic About-panel records kept inside the channel result.
panels[].idstring or nullIdentifier of this object, preserved as a string.
panels[].typestring or nullObject or content type supplied or normalized for this record.
panels[].titlestring or nullPublic title supplied for this object.
panels[].descriptionstring or nullAvailable public description; null when not supplied.
panels[].image_urlstring or nullAvailable image URL associated with this object.
panels[].link_urlstring or nullAvailable destination link attached to a panel.
panels[].alt_textstring or nullAvailable alternative text for the panel image.

recent_video_references contains up to 30 lightweight video references with the limited fields supplied by the profile. These references are not fully enriched video records or a complete archive. Public panels and social links stay nested in the channel row.

Every top-level output field appears in these complete examples. The success example is normalized from a public response; its values are a snapshot and can change. Nested arrays remain inside their parent result.

Complete representative success result:

{
"input": "shroud",
"status": "success",
"type": "channel",
"id": "37402112",
"login": "shroud",
"display_name": "shroud",
"url": "https://www.twitch.tv/shroud",
"description": "I'm back baby",
"profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/c754eebf-745b-4e0a-814a-10bcaecaabbc-profile_image-300x300.png",
"primary_color_hex": "00ADFF",
"followers_count": 11290988,
"is_partner": true,
"is_affiliate": false,
"is_staff": null,
"is_participating_dj": false,
"social_links": [
{
"id": "60879927-7859-4de8-afa8-9d52df1a6e80",
"name": "discord",
"title": "Discord",
"url": "https://discord.gg/shroud"
},
{
"id": "95e717f2-d736-4d42-962e-3e65cb902082",
"name": "twitter",
"title": "Twitter",
"url": "https://twitter.com/shroud"
},
{
"id": "4be9388a-d279-422a-9dbd-a5a39d0a4b06",
"name": "youtube",
"title": "YouTube",
"url": "https://youtube.com/shroud"
},
{
"id": "088c5566-6800-4aeb-8700-620b290bb9e6",
"name": "instagram",
"title": "Instagram",
"url": "https://instagram.com/shroud"
}
],
"primary_team": {
"id": "5467",
"name": "loadedllc",
"display_name": "Loaded"
},
"last_broadcast": {
"id": "320183896158",
"game": {
"id": "743893402",
"slug": null,
"name": null,
"display_name": "WARDOGS",
"url": null,
"box_art_url": null
}
},
"recent_video_references": [
{
"id": "2871388034",
"url": "https://www.twitch.tv/videos/2871388034",
"status": "RECORDING",
"game": {
"id": "743893402",
"slug": null,
"name": null,
"display_name": "WARDOGS",
"url": null,
"box_art_url": null
}
},
{
"id": "2870437527",
"url": "https://www.twitch.tv/videos/2870437527",
"status": "RECORDED",
"game": {
"id": "743893402",
"slug": null,
"name": null,
"display_name": "WARDOGS",
"url": null,
"box_art_url": null
}
},
{
"id": "2869759617",
"url": "https://www.twitch.tv/videos/2869759617",
"status": "RECORDED",
"game": {
"id": "902998079",
"slug": null,
"name": null,
"display_name": "Halloween: The Game",
"url": null,
"box_art_url": null
}
},
{
"id": "2868806410",
"url": "https://www.twitch.tv/videos/2868806410",
"status": "RECORDED",
"game": {
"id": "1357871551",
"slug": null,
"name": null,
"display_name": "The Blood of Dawnwalker",
"url": null,
"box_art_url": null
}
},
{
"id": "2867958393",
"url": "https://www.twitch.tv/videos/2867958393",
"status": "RECORDED",
"game": {
"id": "1357871551",
"slug": null,
"name": null,
"display_name": "The Blood of Dawnwalker",
"url": null,
"box_art_url": null
}
},
{
"id": "2866261595",
"url": "https://www.twitch.tv/videos/2866261595",
"status": "RECORDED",
"game": {
"id": "743893402",
"slug": null,
"name": null,
"display_name": "WARDOGS",
"url": null,
"box_art_url": null
}
},
{
"id": "2865063117",
"url": "https://www.twitch.tv/videos/2865063117",
"status": "RECORDED",
"game": {
"id": "743893402",
"slug": null,
"name": null,
"display_name": "WARDOGS",
"url": null,
"box_art_url": null
}
},
{
"id": "2864271472",
"url": "https://www.twitch.tv/videos/2864271472",
"status": "RECORDED",
"game": {
"id": "1357871551",
"slug": null,
"name": null,
"display_name": "The Blood of Dawnwalker",
"url": null,
"box_art_url": null
}
},
{
"id": "2863640137",
"url": "https://www.twitch.tv/videos/2863640137",
"status": "RECORDED",
"game": {
"id": "1357871551",
"slug": null,
"name": null,
"display_name": "The Blood of Dawnwalker",
"url": null,
"box_art_url": null
}
},
{
"id": "2854436054",
"url": "https://www.twitch.tv/videos/2854436054",
"status": "RECORDED",
"game": {
"id": "743893402",
"slug": null,
"name": null,
"display_name": "WARDOGS",
"url": null,
"box_art_url": null
}
},
{
"id": "2853394498",
"url": "https://www.twitch.tv/videos/2853394498",
"status": "RECORDED",
"game": {
"id": "743893402",
"slug": null,
"name": null,
"display_name": "WARDOGS",
"url": null,
"box_art_url": null
}
},
{
"id": "2852468610",
"url": "https://www.twitch.tv/videos/2852468610",
"status": "RECORDED",
"game": {
"id": "743893402",
"slug": null,
"name": null,
"display_name": "WARDOGS",
"url": null,
"box_art_url": null
}
},
{
"id": "2827992810",
"url": "https://www.twitch.tv/videos/2827992810",
"status": "RECORDED",
"game": {
"id": "516575",
"slug": null,
"name": null,
"display_name": "VALORANT",
"url": null,
"box_art_url": null
}
},
{
"id": "2827192082",
"url": "https://www.twitch.tv/videos/2827192082",
"status": "RECORDED",
"game": {
"id": "796500915",
"slug": null,
"name": null,
"display_name": "Halo: Campaign Evolved",
"url": null,
"box_art_url": null
}
},
{
"id": "2827054673",
"url": "https://www.twitch.tv/videos/2827054673",
"status": "RECORDED",
"game": {
"id": "796500915",
"slug": null,
"name": null,
"display_name": "Halo: Campaign Evolved",
"url": null,
"box_art_url": null
}
},
{
"id": "2826283398",
"url": "https://www.twitch.tv/videos/2826283398",
"status": "RECORDED",
"game": {
"id": "506416",
"slug": null,
"name": null,
"display_name": "Halo Infinite",
"url": null,
"box_art_url": null
}
},
{
"id": "2824697770",
"url": "https://www.twitch.tv/videos/2824697770",
"status": "RECORDED",
"game": {
"id": "506416",
"slug": null,
"name": null,
"display_name": "Halo Infinite",
"url": null,
"box_art_url": null
}
},
{
"id": "2822327261",
"url": "https://www.twitch.tv/videos/2822327261",
"status": "RECORDED",
"game": {
"id": "516575",
"slug": null,
"name": null,
"display_name": "VALORANT",
"url": null,
"box_art_url": null
}
},
{
"id": "2820701541",
"url": "https://www.twitch.tv/videos/2820701541",
"status": "RECORDED",
"game": {
"id": "33437",
"slug": null,
"name": null,
"display_name": "Resident Evil 6",
"url": null,
"box_art_url": null
}
},
{
"id": "2819944258",
"url": "https://www.twitch.tv/videos/2819944258",
"status": "RECORDED",
"game": {
"id": "18808",
"slug": null,
"name": null,
"display_name": "Resident Evil 5",
"url": null,
"box_art_url": null
}
},
{
"id": "2819140044",
"url": "https://www.twitch.tv/videos/2819140044",
"status": "RECORDED",
"game": {
"id": "18808",
"slug": null,
"name": null,
"display_name": "Resident Evil 5",
"url": null,
"box_art_url": null
}
},
{
"id": "2817597094",
"url": "https://www.twitch.tv/videos/2817597094",
"status": "RECORDED",
"game": {
"id": "278441117",
"slug": null,
"name": null,
"display_name": "Assassin's Creed Black Flag Resynced",
"url": null,
"box_art_url": null
}
},
{
"id": "2816779391",
"url": "https://www.twitch.tv/videos/2816779391",
"status": "RECORDED",
"game": {
"id": "278441117",
"slug": null,
"name": null,
"display_name": "Assassin's Creed Black Flag Resynced",
"url": null,
"box_art_url": null
}
},
{
"id": "2815896338",
"url": "https://www.twitch.tv/videos/2815896338",
"status": "RECORDED",
"game": {
"id": "278441117",
"slug": null,
"name": null,
"display_name": "Assassin's Creed Black Flag Resynced",
"url": null,
"box_art_url": null
}
},
{
"id": "2814300385",
"url": "https://www.twitch.tv/videos/2814300385",
"status": "RECORDED",
"game": {
"id": "936822813",
"slug": null,
"name": null,
"display_name": "DOOM: The Dark Ages",
"url": null,
"box_art_url": null
}
},
{
"id": "2813544926",
"url": "https://www.twitch.tv/videos/2813544926",
"status": "RECORDED",
"game": {
"id": "1092451091",
"slug": null,
"name": null,
"display_name": "HUNGER",
"url": null,
"box_art_url": null
}
},
{
"id": "2812832412",
"url": "https://www.twitch.tv/videos/2812832412",
"status": "RECORDED",
"game": {
"id": "1092451091",
"slug": null,
"name": null,
"display_name": "HUNGER",
"url": null,
"box_art_url": null
}
},
{
"id": "2811314176",
"url": "https://www.twitch.tv/videos/2811314176",
"status": "RECORDED",
"game": {
"id": "960290413",
"slug": null,
"name": null,
"display_name": "Sand: Raiders Of Sophie",
"url": null,
"box_art_url": null
}
},
{
"id": "2808988529",
"url": "https://www.twitch.tv/videos/2808988529",
"status": "RECORDED",
"game": {
"id": "960290413",
"slug": null,
"name": null,
"display_name": "Sand: Raiders Of Sophie",
"url": null,
"box_art_url": null
}
},
{
"id": "2808273128",
"url": "https://www.twitch.tv/videos/2808273128",
"status": "RECORDED",
"game": {
"id": "960290413",
"slug": null,
"name": null,
"display_name": "Sand: Raiders Of Sophie",
"url": null,
"box_art_url": null
}
}
],
"panels": [
{
"id": "152803873",
"type": "DEFAULT",
"title": null,
"description": null,
"image_url": "https://panels.twitch.tv/panel-37402112-image-088a725e-f81a-4c71-bde0-346f8d3a3067",
"link_url": "https://shroud.gg/",
"alt_text": null
},
{
"id": "152803015",
"type": "DEFAULT",
"title": null,
"description": null,
"image_url": null,
"link_url": null,
"alt_text": null
},
{
"id": "145406194",
"type": "EXTENSION",
"title": null,
"description": null,
"image_url": null,
"link_url": null,
"alt_text": null
},
{
"id": "144415278",
"type": "DEFAULT",
"title": null,
"description": null,
"image_url": "https://panels.twitch.tv/panel-37402112-image-aefcdf93-6fe9-4e64-a5ec-17d885a72143",
"link_url": "https://streamelements.com/shroud/tip",
"alt_text": null
},
{
"id": "145907388",
"type": "DEFAULT",
"title": null,
"description": null,
"image_url": "https://panels.twitch.tv/panel-37402112-image-81ac0c19-c1f1-4de0-b113-8dc1d0b591b7",
"link_url": "https://pally.gg/p/shroud",
"alt_text": null
},
{
"id": "4403861",
"type": "DEFAULT",
"title": null,
"description": null,
"image_url": "https://panels.twitch.tv/panel-37402112-image-503ca1b8-22d5-4eab-b610-e673c13860d8",
"link_url": "https://www.youtube.com/shroud",
"alt_text": null
},
{
"id": "4403859",
"type": "DEFAULT",
"title": null,
"description": null,
"image_url": "https://panels.twitch.tv/panel-37402112-image-60d6e928-be4f-43c2-9676-9af458f2ac32",
"link_url": "https://twitter.com/shroud",
"alt_text": null
},
{
"id": "23928154",
"type": "DEFAULT",
"title": null,
"description": null,
"image_url": "https://panels.twitch.tv/panel-37402112-image-0d16fd1d-13f5-4249-868b-c4eab1f4d0dc",
"link_url": "https://www.instagram.com/shroud/",
"alt_text": null
},
{
"id": "135909485",
"type": "EXTENSION",
"title": null,
"description": null,
"image_url": null,
"link_url": null,
"alt_text": null
}
]
}

Complete failed result:

{
"input": "shroud",
"status": "failed",
"type": null,
"id": null,
"login": null,
"display_name": null,
"url": null,
"description": null,
"profile_image_url": null,
"primary_color_hex": null,
"followers_count": null,
"is_partner": null,
"is_affiliate": null,
"is_staff": null,
"is_participating_dj": null,
"social_links": null,
"primary_team": null,
"last_broadcast": null,
"recent_video_references": null,
"panels": null
}

A failed row preserves input, sets status to failed, and sets every other top-level field to null. The run log records the reason. Optional successful fields can be null or empty when Twitch does not supply them. Object fields are exposed through useful columns in the single Channel details view; arrays are not expanded into extra result rows.

Input requirements and pagination settings ⚙️

ParameterTypeRequiredDefaultRules
inputListarray of stringsYesNoneEnter Twitch channel logins or official channel URLs. Channel tabs and supported tracking parameters are accepted. At least 1 item.

Enter supported Twitch channel logins or channel URLs. Use Channel Search to discover channels and Video Search to find video records.

Enter a plain login such as shroud or a public channel URL such as https://www.twitch.tv/shroud. Supported /about, /videos, /clips and /schedule channel tabs resolve to the same channel profile; they do not change this Actor into a feed or schedule collector. A leading @ is not accepted.

Duplicate normalized inputs are processed once. Within the collection for one source input, repeated records are removed while distinct interactions or objects remain separate. The same object returned for different source inputs retains its source relationship.

There is no result-page setting. Each unique target is looked up individually, and nested fields remain within that result row.

Twitch channel details use cases 🎯

Creator reference cards

Collect public names, descriptions, roles and links for a known list of channels.

Public About-page audits

Review available panel text and links while preserving the channel source.

Profile comparison

Compare returned public profile fields in your own spreadsheet without inferring hidden audience metrics.

Pricing and saved-result behavior 💰

Check the Actor’s Pricing tab for the active pricing model and current rate. Store settings can change, so this README does not claim a fixed price or runtime.

Under dataset-item pricing:

  • Each successful result represents one channel for its source input.
  • An invalid or unavailable input, an input with no accessible results, or an exhausted request can produce a failed row.
  • Retry attempts and supporting requests do not create extra dataset rows by themselves.
  • Nested media, profile information and other arrays remain part of their parent row.
  • A normal empty continuation after earlier successes creates no additional row.
  • Saved failed rows are not assumed to be free; check their treatment in the active pricing configuration.

More inputs can produce more saved rows. Start with a small run and check actual usage before increasing the workload.

Twitch channel details API 🔌

Replace $ACTOR_ID with the identifier shown in this Actor’s API tab and $APIFY_TOKEN with your Apify token.

curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputList":["shroud"]}'

Download the dataset in JSON, CSV, Excel or other formats available in the Console, or retrieve it through the Apify API. Use schedules, webhooks and Apify integrations to connect results to Google Sheets, Make, Zapier, cloud storage or your own application. These connections are configured separately by the user.

Reliability, retries, and public-data limits ⚠️

Collection uses pure HTTP with up to five concurrent requests. Invalid syntax and confirmed missing, removed or unavailable targets stop without unnecessary retries. Temporary network or proxy failures, timeouts, blocking responses, malformed data, throttling and server errors allow up to five total attempts per request.

Successful earlier pages remain saved if a later request fails. A normal end after saved results is not retried. An input with no accessible results can receive a failed row; that alone does not prove that its underlying source does not exist. An exhausted later request can add a failed row while preserving previous output.

The output is a channel profile, not a complete channel-video or clip list. Public followers are not paid subscribers. Empty social-link or panel arrays are valid when no such information is returned.

Twitch controls public availability, ranking and optional fields. Result counts can be affected by duplicates, removed content and changes during a run. A page budget is a collection limit, not a promise of exhaustive coverage.

An invalid string within a valid input list does not stop other inputs. Invalid overall configuration, such as a non-string list item or a wrong page-count type, exits before source requests. Startup failures, unavailable dataset storage or an unrecoverable result-save error can still stop the whole run. A failed save is not retried as a new scraping request.

Frequently asked questions ❓

Does it collect every video or clip from a channel?

No. It collects a channel profile and available About-page information. Any summary information is not a complete video or clip inventory.

Are panels separate rows?

No. Available panels and social links stay inside the channel’s single result row.

Does it require a Twitch account or personal cookies?

No. You do not need to provide a Twitch account, password or personal session cookie. Collection uses HTTP without opening a browser.

What happens to invalid or unavailable inputs?

Invalid individual inputs are recorded as failed without a source request. Confirmed missing or unavailable targets stop without unnecessary retries. Temporary failures allow up to five total attempts per request; other inputs and earlier saved results remain available.

Can I export results or run the same input again?

Yes. Export the default dataset or retrieve it through the Apify API. You can create an Apify schedule and connect completed runs to your own workflow.

For a reproducible issue, use the Actor’s Issues tab and provide the run ID, approximate time, a safe public input, expected behavior and actual result. Include the mode or page budget when relevant. Never share access tokens, personal cookies or proxy credentials.

Use public data responsibly and follow applicable privacy, copyright, contractual and platform requirements before storing, analyzing or redistributing collected information.