Instagram · Guide

How to get Instagram channel reels

TL;DR
To get Instagram channel reels, sign up for a free Captapi key, then send one GET request to /v1/instagram/channel-reels with your input. You get clean JSON back in seconds for ~6 credits (0.3/result) per call — no OAuth, scraping or platform SDKs. Get the latest Reels from any public Instagram profile — video URL, caption, views, likes, comments, and duration for each Reel, with cursor pagination for older ones.

How to get Instagram channel reels (step by step)

  1. 1

    Get a free API key

    Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.

  2. 2

    Call the Instagram Channel Reels API

    Send an authenticated GET request to /v1/instagram/channel-reels with your input. No OAuth, no scraping setup.

  3. 3

    Read the JSON response

    Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.

Code example

curl "https://api.captapi.com/v1/instagram/channel-reels?url=https%3A%2F%2Fwww.instagram.com%2Fcristiano%2F" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

What the response looks like

{
  "success": true,
  "data": {
    "url": "https://www.instagram.com/cristiano/",
    "totalReturned": 3,
    "reels": [
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/reel/DabKed0MBRm/",
        "id": "3934784773501752422",
        "postType": "Video",
        "productType": "clips",
        "caption": "Por todos. Por 𝗣𝗢𝗥𝗧𝗨𝗚𝗔𝗟. 🎗️🇵🇹 #VaiDarPortugal \n\nFor everyone. For 𝗣𝗢𝗥𝗧𝗨𝗚𝗔𝗟. 🎗️🇵🇹 #ItsPortugalTime",
        "description": "Por todos. Por 𝗣𝗢𝗥𝗧𝗨𝗚𝗔𝗟. 🎗️🇵🇹 #VaiDarPortugal \n\nFor everyone. For 𝗣𝗢𝗥𝗧𝗨𝗚𝗔𝗟. 🎗️🇵🇹 #ItsPortugalTime",
        "publishedAt": "2026-07-05T20:23:34Z",
        "durationSeconds": 43.4,
        "thumbnailUrl": "https://scontent-ham3-1.cdninstagram.com/v/t51.82787-15/735415699_18606606883054533_8185581534148167588_n.jpg?...",
        "videoUrl": "https://scontent-ham3-1.cdninstagram.com/o1/v/t2/f2/m86/AQOZ-XzJOT5OaiKkSWI8_rvZDNemAlRbnj6HkrsVPoqI0ansFYZltF-y2953cxfuv-jSg-XuNO3kEar8H03wckE8XaOx3OK8T3-4KMM.mp4?...",
        "author": {
          "username": "portugal",
          "displayName": "Portugal",
          "url": "https://instagram.com/portugal",
          "verified": true,
          "profileImage": "https://scontent-ham3-1.cdninstagram.com/v/t51.82787-19/655235091_18574607485054533_3430348023607180141_n.jpg?..."
        },
        "engagement": {
          "views": 130177231,
          "likes": 6373324,
          "comments": 257545
        },
        "hashtags": [
          "VaiDarPortugal",
          "ItsPortugalTime"
        ],
        "mentions": []
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/reel/DaU63nnAkoo/",
        "id": "3933027283400542760",
        "postType": "Video",
        "productType": "clips",
        "caption": "Toronto ❤️",
        "description": "Toronto ❤️",
        "publishedAt": "2026-07-03T10:18:59Z",
        "durationSeconds": 46.333,
        "thumbnailUrl": "https://scontent-ham3-1.cdninstagram.com/v/t51.82787-15/731058572_18747860116056421_8724303327878739257_n.jpg?...",
        "videoUrl": "https://scontent-ham3-1.cdninstagram.com/o1/v/t2/f2/m86/AQNreyyq7N-5e2XVjCTkh7BFZ0wKTqOpSD3ZllobCy3C3rRiPuA_64qi66ngwZ-jwgG-66Q57v2G1V3Rvr21y-HGUbMJLY21NY_M8vk.mp4?...",
        "author": {
          "username": "cristiano",
          "displayName": "Cristiano Ronaldo",
          "url": "https://instagram.com/cristiano",
          "verified": true,
          "profileImage": "https://scontent-ham3-1.cdninstagram.com/v/t51.2885-19/472007201_1142000150877579_994350541752907763_n.jpg?...",
          "followers": 676417576
        },
        "engagement": {
          "views": 191553390,
          "likes": 17537560,
          "comments": 341631
        },
        "hashtags": [],
        "mentions": []
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/reel/DaSz9gXgFla/",
        "id": "3932433951662037338",
        "postType": "Video",
        "productType": "clips",
        "caption": "Before the awards.\nBefore the leagues.\nBefore the globe wore 7.\n\nFrom a small island in the Atlantic to the world stage, @Cristiano shattered records along the way — proving that where you start doesn't determine where you finish.",
        "description": "Before the awards.\nBefore the leagues.\nBefore the globe wore 7.\n\nFrom a small island in the Atlantic to the world stage, @Cristiano shattered records along the way — proving that where you start doesn't determine where you finish.",
        "publishedAt": "2026-07-02T14:31:49Z",
        "durationSeconds": 30.037,
        "thumbnailUrl": "https://scontent-ham3-1.cdninstagram.com/v/t51.82787-15/730475969_18608185318016159_1358384897120211657_n.jpg?...",
        "videoUrl": "https://scontent-ham3-1.cdninstagram.com/o1/v/t2/f2/m86/AQNsM4Cz3wiCY9HbNolCc-oVALHL50LiQGdb_f2isa618TZUlDdGGH0I3Qsw1450pwkL_aY6PiYy_3r221K5nHutIHQ78p8-NvuDaG0.mp4?...",
        "author": {
          "username": "whoop",
          "displayName": "WHOOP",
          "url": "https://instagram.com/whoop",
          "verified": true,
          "profileImage": "https://scontent-ham3-1.cdninstagram.com/v/t51.82787-19/712306922_18597675370016159_2436545821614461300_n.jpg?..."
        },
        "engagement": {
          "views": 103164783,
          "likes": 5014316,
          "comments": 30005
        },
        "hashtags": [],
        "mentions": [
          "Cristiano"
        ]
      }
    ],
    "nextCursor": "3885465807534181465_173560420",
    "hasMore": true
  }
}

Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.

Request parameters

NameTypeRequiredDescription
urlstring YesInstagram profile URL, @handle, or username, e.g. https://instagram.com/username/. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
limitintegerNoMax items to return (default 20, max 200). Billed per result.
cursorstringNoPagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (e.g. 3937158245004702478_12281817). A null nextCursor means the end of the list.
cachebooleanNoSet true to serve from the 24h response cache. Default false — always fetch fresh data.

Frequently asked questions

What does the Instagram Channel Reels API do?

The Instagram Channel Reels API lets you list items in bulk with metadata from a public Instagram channel reels using one GET request to /v1/instagram/channel-reels. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Instagram Channel Reels API cost?

At the default limit this endpoint costs 6 credits (0.3 per result). Billing scales with how many results you request. Pass cache=true to serve from the 24h shared cache (0 credits on hit); default is always fresh. Failed or empty results are never charged.

Do I need a Instagram API key or OAuth?

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.

Is the Instagram Channel Reels API suitable for production use?

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h shared cache (0 credits on hit); default is always fresh. Use it for analytics, monitoring, and content automation.

Ready to get Instagram channel reels?

Start free with 100 credits — no credit card required.

Get your free API key