Rumble

5 endpoints.

GET /v1/rumble/channel_videos

Channel Videos

Gets videos from a Rumble channel by handle or URL. Returns channel metadata, videos, shorts, and a numeric cursor for the next page.

Parameters

NameInTypeDescription
handlequerystringRumble channel handle. If you'd prefer to use the URL instead, use the url parameter.
urlquerystringRumble channel URL. If you'd prefer to use the handle instead, use the handle parameter.
next_cursorquerystringCursor from the previous response. This is the next page number, like 2 or 3.

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/rumble/channel_videos" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/rumble/channel_videos", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/rumble/channel_videos",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "channel": {
    "name": "Cute Cats",
    "url": "https://rumble.com/c/CuteCats223",
    "handle": "CuteCats223"
  },
  "videos": [
    {
      "id": "v6uyinv",
      "url": "https://rumble.com/v6uyinv-try-not-to-laughfunniest-dogs-and-cats-clips-2025.html",
      "title": "Try Not To LaughFunniest Dogs and Cats Clips 2025",
      "thumbnail": "https://hugh.cdn.rumble.cloud/video/fww1/7e/s8/1/7/J/u/U/7JuUy.oq1b.2-small-Try-Not-To-LaughFunniest-Do.jpg",
      "duration": "20:55",
      "published_at": "2025-06-18T05:04:11-04:00",
      "published_text": "10 months ago",
      "view_count_text": "1,150 views",
      "view_count_int": 1150,
      "type": "video"
    }
  ],
  "shorts": [],
  "next_cursor": 2
}

GET /v1/rumble/video

Video

Gets Rumble video details by URL. Returns title, description, thumbnail, channel, publish date, view count, likes, dislikes, captions, and media metadata when available.

Parameters

NameInTypeDescription
url requiredquerystringRumble video URL.

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/rumble/video?url=https://rumble.com/v79xhhm-discovery-why-glenn-wants-israel-to-sue-the-new-york-times.html" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/rumble/video?url=https://rumble.com/v79xhhm-discovery-why-glenn-wants-israel-to-sue-the-new-york-times.html", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/rumble/video?url=https://rumble.com/v79xhhm-discovery-why-glenn-wants-israel-to-sue-the-new-york-times.html",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "id": "v79xhhm",
  "numeric_id": 436271810,
  "embed_id": "v77qthe",
  "url": "https://rumble.com/v79xhhm-discovery-why-glenn-wants-israel-to-sue-the-new-york-times.html",
  "embed_url": "https://rumble.com/embed/v77qthe/",
  "title": "DISCOVERY: Why Glenn WANTS Israel to Sue The New York Times",
  "description": "Follow Glenn Greenwald's writing and other journalism at Substack, where you can become a member: https://greenwald.substack.com/ All videos now available as...",
  "thumbnail": "https://hugh.cdn.rumble.cloud/video/fwe2/2f/s8/1/k/V/p/o/kVpoA.qR4e-small-DISCOVERY-Why-Glenn-WANTS-I..jpg",
  "duration": 1678,
  "published_at": "2026-05-16T11:31:27+00:00",
  "view_count_text": "17,279 views",
  "view_count_int": 17279,
  "like_count": 145,
  "dislike_count": 3,
  "width": 1920,
  "height": 1080,
  "channel": {
    "name": "Glenn Greenwald",
    "url": "https://rumble.com/c/GGreenwald",
    "handle": "GGreenwald"
  },
  "captions": {
    "en_auto": {
      "language": "English (auto)",
      "path": "https://hugh.cdn.rumble.cloud/video/fwe2/2f/s8/11/k/V/p/o/kVpoA.fn8Si.vtt"
    }
  },
  "media": {
    "tar": {
      "240": {
        "url": "https://hugh.cdn.rumble.cloud/video/fwe2/2f/s8/2/k/V/p/o/kVpoA.oaa.tar?r_file=chunklist.m3u8&r_type=application%2Fvnd.apple.mpegurl&r_range=46677504-46694057",
        "meta": {
          "bitrate": 222,
          "size": 46704640,
          "w": 640,
          "h": 360
        }
      },
      "360": {
        "url": "https://hugh.cdn.rumble.cloud/video/fwe2/2f/s8/2/k/V/p/o/kVpoA.baa.tar?r_file=chunklist.m3u8&r_type=application%2Fvnd.apple.mpegurl&r_range=142485504-142502129",
        "meta": {
          "bitrate": 679,
          "size": 142510080,
          "w": 640,
          "h": 360
        }
      },
      "480": {
        "url": "https://hugh.cdn.rumble.cloud/video/fwe2/2f/s8/2/k/V/p/o/kVpoA.caa.tar?r_file=chunklist.m3u8&r_type=application%2Fvnd.apple.mpegurl&r_range=222280704-222297420",
        "meta": {
          "bitrate": 1059,
          "size": 222300160,
          "w": 854,
          "h": 480
        }
      },
      "720": {
        "url": "https://hugh.cdn.rumble.cloud/video/fwe2/2f/s8/2/k/V/p/o/kVpoA.gaa.tar?r_file=chunklist.m3u8&r_type=application%2Fvnd.apple.mpegurl&r_range=449539072-449555872",
        "meta": {
          "bitrate": 2142,
          "size": 449566720,
          "w": 1280,
          "h": 720
        }
      }
    },
    "timeline": {
      "180": {
        "url": "https://hugh.cdn.rumble.cloud/video/fwe2/2f/s8/2/k/V/p/o/kVpoA.Faa.mp4",
        "meta": {
          "bitrate": 11,
          "size": 2508015,
          "w": 320,
          "h": 180
        }
      }
    },
    "audio": {
      "192": {
        "url": "https://hugh.cdn.rumble.cloud/video/fwe2/2f/s8/2/k/V/p/o/kVpoA.Gaa.aac",
        "meta": {
          "bitrate": 195,
          "size": 40281235,
          "w": 0,
          "h": 0
        }
      }
    },
    "hls": {
      "auto": {
        "url": "https://rumble.com/hls-vod/77qthe/playlist.m3u8"
      }
    }
  },
  "share_url": "https://rumble.com/share/v79xhhm?src=VoG0dqZG5JZ6uoPQ0mmpV91Vkao2i8JCNcVBpMIgYffXfccYYhMCQA",
  "is_live": false
}

GET /v1/rumble/video_comments

Comments

Gets all top level comments for a Rumble video by URL. Returns comment text, author, createdAt, createdAtText, likeCount, dislikeCount, and replyCount when comment bodies are public. If Rumble requires sign-in to view the comments, this endpoint returns HTTP 403 with error `forbidden` and does not charge credits. This is different from a public video with no comments, which returns a successful empty comments array. Sign-in-required response example: ```json { "success": false, "": 100, "": 0, "error": "forbidden", "errorStatus": 403, "message": "Rumble requires you to sign in to view this video's comments" } ```

Parameters

NameInTypeDescription
url requiredquerystringRumble video URL.

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/rumble/video_comments?url=https://rumble.com/v792vns-the-splc-is-a-deceitful-and-poisonous-group.-but-was-their-behavior-crimina.html?e9s=rel_v2_ep" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/rumble/video_comments?url=https://rumble.com/v792vns-the-splc-is-a-deceitful-and-poisonous-group.-but-was-their-behavior-crimina.html?e9s=rel_v2_ep", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/rumble/video_comments?url=https://rumble.com/v792vns-the-splc-is-a-deceitful-and-poisonous-group.-but-was-their-behavior-crimina.html?e9s=rel_v2_ep",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "id": "v792vns",
  "numeric_id": 434843840,
  "embed_id": "v76w7nk",
  "url": "https://rumble.com/v792vns-the-splc-is-a-deceitful-and-poisonous-group.-but-was-their-behavior-crimina.html",
  "comments": [
    {
      "id": "609604348",
      "text": "This is just like Jussie Smollett but on a huger scale -- if we can't find \"white supremacy,\" well, we'll just make that sh*t up. LOLLL",
      "created_at": "2026-04-27T22:20:00.000Z",
      "created_at_text": "3 weeks ago",
      "like_count": 15,
      "dislike_count": 0,
      "reply_count": 2,
      "author": {
        "name": "robland",
        "url": "https://rumble.com/user/robland",
        "handle": "robland",
        "avatar": null
      }
    }
  ]
}

GET /v1/rumble/video_captions

Transcript

Gets a Rumble video's transcript when captions are available. If Rumble does not expose captions for the video, transcript will be null and you will not be charged. Returned native captions cost 1 credit; empty transcripts and errors cost 0 credits. This endpoint does not use AI transcription.

Parameters

NameInTypeDescription
url requiredquerystringRumble video URL.

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/rumble/video_captions?url=https://rumble.com/valm19-funny-cat-funny-cat.html" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/rumble/video_captions?url=https://rumble.com/valm19-funny-cat-funny-cat.html", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/rumble/video_captions?url=https://rumble.com/valm19-funny-cat-funny-cat.html",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "id": "v79xhhm",
  "url": "https://rumble.com/v79xhhm-discovery-why-glenn-wants-israel-to-sue-the-new-york-times.html",
  "language": "English (auto)",
  "transcript": "WEBVTT\r\n\r\n00:00:06.890 --> 00:00:11.050\r\nLet's get into these questions, and we'll try and get through as many as we can.\r\n\r\n00:00:11.190 --> 00:00:15.650\r\nT..."
}