Twitch

Twitch Scraper API

Real-time Twitch data — channel profiles, live streams, top clips, and channel search. All data is scraped directly from Twitch and returned as structured JSON.

4 Endpoints REST API JSON 99.9% Uptime

Try it instantly

See real data shapes from every endpoint — no signup required.

Request
GET /twitch/channel
login ninja required
curl -G "https://api.pullapi.com/twitch/channel" \
  -H "x-rapidapi-key: YOUR_API_KEY"
Response 200 OK
{
  "success": true,
  "data": {
    "id": "19571641",
    "login": "ninja",
    "display_name": "Ninja",
    "description": "Professional gamer and content creator",
    "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/ninja-profile_image.png",
    "banner_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/ninja-channel_offline_image.png",
    "primary_color": "#9147FF",
    "followers_count": 18900000,
    "is_partner": true,
    "is_affiliate": false,
    "is_live": true,
    "stream": {
      "id": "46823914560",
      "title": "RANKED GRIND | !socials",
      "viewer_count": 42150,
      "game_name": "Fortnite",
      "game_id": "33214",
      "broadcaster_login": "ninja",
      "broadcaster_display_name": "Ninja",
      "broadcaster_profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/ninja-profile_image.png",
      "tags": [ "English", "Competitive", "FPS"
      ],
      "stream_type": "live",
      "preview_image_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_ninja-320x180.jpg",
      "started_at": "2026-03-15T08: 30: 00Z"
    },
    "last_broadcast_title": "RANKED GRIND | !socials",
    "last_broadcast_game": "Fortnite",
    "last_broadcast_started_at": "2026-03-15T08: 30: 00Z",
    "created_at": "2011-11-20T04: 25: 47Z"
  },
  "credits_used": 1,
  "cache_hit": false,
  "timestamp": "2026-03-15T12: 00: 00+00: 00"
}

API Endpoints

4 endpoints across 4 categories.

Channel

GET /twitch/channel

Get a Twitch channel's full profile including display name, description, follower count, partner/affiliate status, profile and banner images, and current live stream info if broadcasting. Also includes last broadcast details.

Parameters

Name Type Required Description Example
login string Yes Twitch username or channel URL. Examples: "ninja", "shroud", "https://www.twitch.tv/xqc" ninja

Example Response

{
  "success": true,
  "data": {
    "id": "19571641",
    "login": "ninja",
    "display_name": "Ninja",
    "description": "Professional gamer and content creator",
    "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/ninja-profile_image.png",
    "banner_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/ninja-channel_offline_image.png",
    "primary_color": "#9147FF",
    "followers_count": 18900000,
    "is_partner": true,
    "is_affiliate": false,
    "is_live": true,
    "stream": {
      "id": "46823914560",
      "title": "RANKED GRIND | !socials",
      "viewer_count": 42150,
      "game_name": "Fortnite",
      "game_id": "33214",
      "broadcaster_login": "ninja",
      "broadcaster_display_name": "Ninja",
      "broadcaster_profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/ninja-profile_image.png",
      "tags": [ "English", "Competitive", "FPS"
      ],
      "stream_type": "live",
      "preview_image_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_ninja-320x180.jpg",
      "started_at": "2026-03-15T08: 30: 00Z"
    },
    "last_broadcast_title": "RANKED GRIND | !socials",
    "last_broadcast_game": "Fortnite",
    "last_broadcast_started_at": "2026-03-15T08: 30: 00Z",
    "created_at": "2011-11-20T04: 25: 47Z"
  },
  "credits_used": 1,
  "cache_hit": false,
  "timestamp": "2026-03-15T12: 00: 00+00: 00"
}

Streams

GET /twitch/streams

Get currently live streams on Twitch, sorted by viewer count. Optionally filter by game name. Returns stream title, viewer count, game, broadcaster info, tags, and preview images.

Parameters

Name Type Required Description Example
game string No Filter by game name (omit for top streams across all games). Examples: "Fortnite", "League of... Fortnite
limit integer No Number of streams to return (1-100) 20

Example Response

{
  "success": true,
  "data": {
    "game": "Fortnite",
    "streams": [
      {
        "id": "46823914560",
        "title": "RANKED GRIND | !socials",
        "viewer_count": 42150,
        "game_name": "Fortnite",
        "game_id": "33214",
        "broadcaster_login": "ninja",
        "broadcaster_display_name": "Ninja",
        "broadcaster_profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/ninja-profile_image.png",
        "tags": [ "English", "Competitive", "FPS"
        ],
        "stream_type": "live",
        "preview_image_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_ninja-320x180.jpg",
        "started_at": "2026-03-15T08: 30: 00Z"
      },
      {
        "id": "46823918742",
        "title": "Solo Victory Royales Only",
        "viewer_count": 15200,
        "game_name": "Fortnite",
        "game_id": "33214",
        "broadcaster_login": "tfue",
        "broadcaster_display_name": "Tfue",
        "broadcaster_profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/tfue-profile_image.png",
        "tags": [ "English", "Competitive"
        ],
        "stream_type": "live",
        "preview_image_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_tfue-320x180.jpg",
        "started_at": "2026-03-15T10: 15: 00Z"
      }
    ],
    "total_viewers": 57350
  },
  "credits_used": 1,
  "cache_hit": false,
  "timestamp": "2026-03-15T12: 00: 00+00: 00"
}

Clips

GET /twitch/clips

Get top clips from a Twitch channel, sorted by view count. Filter by time period (last 24 hours, 7 days, 30 days, or all time). Returns clip title, URL, thumbnail, view count, duration, game, and curator info.

Parameters

Name Type Required Description Example
login string Yes Twitch username or channel URL. Examples: "ninja", "shroud", "https://www.twitch.tv/xqc" shroud
period string No Time period to filter clips by. Use "24h" for last 24 hours, "7d" for last week, "30d" for last... 24h, 7d, 30d, all
limit integer No Number of clips to return (1-100) 20

Example Response

{
  "success": true,
  "data": {
    "channel": "shroud",
    "clips": [
      {
        "id": "RandomClipID123",
        "slug": "ShroudInsaneFlick-abc123def",
        "title": "INSANE flick headshot",
        "url": "https://clips.twitch.tv/ShroudInsaneFlick-abc123def",
        "thumbnail_url": "https://clips-media-assets2.twitch.tv/AT-cm%7Cabc123def-preview-480x272.jpg",
        "view_count": 2450000,
        "duration_seconds": 30,
        "game_name": "Counter-Strike 2",
        "broadcaster_login": "shroud",
        "broadcaster_display_name": "shroud",
        "curator_login": "clipfan42",
        "curator_display_name": "ClipFan42",
        "created_at": "2025-12-01T18: 45: 00Z"
      },
      {
        "id": "AnotherClipID456",
        "slug": "ShroudClutchPlay-xyz789ghi",
        "title": "1v5 clutch ace",
        "url": "https://clips.twitch.tv/ShroudClutchPlay-xyz789ghi",
        "thumbnail_url": "https://clips-media-assets2.twitch.tv/AT-cm%7Cxyz789ghi-preview-480x272.jpg",
        "view_count": 1830000,
        "duration_seconds": 45,
        "game_name": "Counter-Strike 2",
        "broadcaster_login": "shroud",
        "broadcaster_display_name": "shroud",
        "curator_login": "esportsfan99",
        "curator_display_name": "EsportsFan99",
        "created_at": "2025-11-15T22: 10: 00Z"
      }
    ],
    "total_clips": 2
  },
  "credits_used": 1,
  "cache_hit": false,
  "timestamp": "2026-03-15T12: 00: 00+00: 00"
}

Search

GET /twitch/search

Search for Twitch channels by name or keyword. Returns matching channel profiles with follower counts, partner/affiliate status, and live stream info. Results are ordered by relevance.

Parameters

Name Type Required Description Example
query string Yes Search query for channels. Can be a username, display name, or keyword. Examples: "ninja",... valorant
limit integer No Number of results to return (1-100) 20

Example Response

{
  "success": true,
  "data": {
    "query": "valorant",
    "results": [
      {
        "id": "694583540",
        "login": "valorant",
        "display_name": "VALORANT",
        "description": "Official VALORANT Twitch channel",
        "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/valorant-profile_image.png",
        "banner_image_url": null,
        "primary_color": null,
        "followers_count": 950000,
        "is_partner": true,
        "is_affiliate": false,
        "is_live": false,
        "stream": null,
        "last_broadcast_title": "VCT Masters Shanghai - Grand Finals",
        "last_broadcast_game": "VALORANT",
        "last_broadcast_started_at": "2026-03-10T16: 00: 00Z",
        "created_at": "2020-04-03T20: 00: 00Z"
      },
      {
        "id": "51496027",
        "login": "tenz",
        "display_name": "TenZ",
        "description": "Pro VALORANT player for Sentinels",
        "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/tenz-profile_image.png",
        "banner_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/tenz-channel_offline_image.png",
        "primary_color": "#FF4500",
        "followers_count": 2700000,
        "is_partner": true,
        "is_affiliate": false,
        "is_live": true,
        "stream": {
          "id": "46824001234",
          "title": "RANKED TO RADIANT | !settings",
          "viewer_count": 18500,
          "game_name": "VALORANT",
          "game_id": "516575",
          "broadcaster_login": "tenz",
          "broadcaster_display_name": "TenZ",
          "broadcaster_profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/tenz-profile_image.png",
          "tags": [ "English", "Competitive", "FPS"
          ],
          "stream_type": "live",
          "preview_image_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_tenz-320x180.jpg",
          "started_at": "2026-03-15T09: 00: 00Z"
        },
        "last_broadcast_title": "RANKED TO RADIANT | !settings",
        "last_broadcast_game": "VALORANT",
        "last_broadcast_started_at": "2026-03-15T09: 00: 00Z",
        "created_at": "2016-07-12T05: 30: 00Z"
      }
    ],
    "total_results": 2
  },
  "credits_used": 1,
  "cache_hit": false,
  "timestamp": "2026-03-15T12: 00: 00+00: 00"
}

Code Examples

Get started in seconds with your preferred language.

Terminal
curl -G "https://api.pullapi.com/twitch/channel?login=ninja" \
  -H "x-rapidapi-host: twitch-scraper-api.p.rapidapi.com" \
  -H "x-rapidapi-key: YOUR_API_KEY"

Why PullAPI

</>

No Browser Needed

HTTP-based API. No Selenium, no Puppeteer, no headless browsers to manage.

Built-in Proxy Rotation

Automatic residential proxy rotation handles anti-bot detection for you.

Cached Responses

Smart Redis caching means faster repeated queries and lower costs.

$

Pay Per Request

No monthly commitment. Free tier included. Pay only for what you use.

Use Cases

What developers build with the Twitch Scraper API.

1

Streamer Analytics

2

Content Discovery

3

Audience Research

4

Trend Monitoring

Related Scrapers

More APIs in Social Media.

Ready to scrape Twitch data?

Start with the free tier. No credit card required.

Subscribe on RapidAPI →