Scraperize
Instagram

Instagram User Reels API

To get a profile's Reels with view counts from Instagram, call GET /v1/instagram/user/reels?userId=… with your API key. You get clean JSON back.

GET/v1/instagram/user/reels
curl "https://api.scraperize.com/v1/instagram/user/reels?userId=787132" \
  -H "x-api-key: YOUR_API_KEY"
Cost
1 credit / call
Only successful calls are charged. Errors are free.
Pagination
Cursor
Pass the returned cursor to get the next page.
Caching
0 credits
Set cache_max_age to reuse a recent result for free.
Rate limit
Per team / minute
Over the limit: 429 with a Retry-After header.

Parameters

userIdOptional
The Instagram user id (numeric pk), e.g. 787132. Pass this or handle.
handleOptional
The Instagram username, e.g. natgeo (an @handle or profile URL also works). Pass this or userId.
cursorOptional
The cursor from a previous response (same account) to fetch the next page. Omit for the first page.
cache_max_ageOptional
Optional. Return a cached result if one this age or newer exists — served for 0 credits with meta.cached=true and meta.cachedAt. Otherwise a fresh scrape runs (1 credit) and refreshes the cache. Omit to always scrape fresh.One of 5 values.

Send your key in the x-api-key header. Full API reference

Example response

200 OK · application/json
{
  "data": {
    "user": {
      "id": "787132",
      "handle": "natgeo",
      "fullName": "National Geographic",
      "isVerified": true,
      "profilePicUrl": "https://instagram.fmad26-1.fna.fbcdn.net/v/t51.82787-19/683576066_18653628823019133_9051036240972105113_n.jpg?stp=dst-jp…",
      "url": "https://www.instagram.com/natgeo/",
      "profilePicUrlHd": "https://instagram.fmad26-1.fna.fbcdn.net/v/t51.82787-19/683576066_18653628823019133_9051036240972105113_n.jpg?efg=eyJ2ZW…",
      "isPrivate": false
    },
    "reels": [
      {
        "id": "4003599702326174344",
        "code": "DePpLegAuKI",
        "url": "https://www.instagram.com/reel/DePpLegAuKI/",
        "postType": "video",
        "productType": "clips",
        "isReel": true,
        "owner": {
          "id": "787132",
          "handle": "natgeo",
          "fullName": "National Geographic",
          "isVerified": true,
          "profilePicUrl": "https://instagram.fmad26-1.fna.fbcdn.net/v/t51.82787-19/683576066_18653628823019133_9051036240972105113_n.jpg?stp=dst-jp…",
          "url": "https://www.instagram.com/natgeo/"
        },
        "caption": "Many orphaned giant anteater pups in Brazil are still nursing when their mothers are killed in road collisions. At rehab…",
        "captionIsEdited": false,
        "hashtags": [],
        "mentions": [
          "fernando.faciole"
        ],
        "takenAt": "2026-10-08T19:05:31.000Z",
        "likeCount": 66833,
        "commentCount": 234,
        "likeAndViewCountsHidden": false,
        "isPinned": false,
        "isPaidPartnership": false,
        "width": 1080,
        "height": 1920,
        "imageUrl": "https://instagram.fmad26-1.fna.fbcdn.net/v/t51.82787-15/839913705_18705672832019133_6199658414569469270_n.jpg?stp=dst-jp…",
        "videoUrl": "https://instagram.fmad25-1.fna.fbcdn.net/o1/v/t2/f2/m86/AQNeQcVPUc6Q79ehc_Emag_zdCCgJchkrR3eofjReM16iHBjJpxKWFOeghoCB3KP…",
        "videoVersions": [
          {
            "type": 101,
            "url": "https://instagram.fmad25-1.fna.fbcdn.net/o1/v/t2/f2/m86/AQNeQcVPUc6Q79ehc_Emag_zdCCgJchkrR3eofjReM16iHBjJpxKWFOeghoCB3KP…",
            "width": 720,
            "height": 1280
          }
        ],
        "videoDurationSeconds": 9.259,
        "hasAudio": true,
        "thumbnailUrl": "https://instagram.fmad26-1.fna.fbcdn.net/v/t51.82787-15/839913705_18705672832019133_6199658414569469270_n.jpg?stp=c0.420…",
        "accessibilityCaption": null,
        "aiLabel": null,
        "location": null,
        "audio": {
          "type": "original_sounds",
          "id": "28892386943719393",
          "title": "Original audio",
          "artist": "natgeo",
          "artistHandle": "natgeo",
          "coverUrl": null,
          "isExplicit": false,
          "isTrending": false
        },
        "coauthors": [],
        "sponsors": [],
        "taggedUsers": [],
        "carouselCount": null,
        "carouselItems": [],
        "playCount": 1607358,
        "partial": false
      }
    ],
    "count": 12,
    "cursor": "eyJoIjoiaWQ6Nzg3MTMyIiwiYyI6IkFRSFRENkR4Ylp5TkRQMTlnR3FHLVdPM096UHFnWmF6NnBFVlJXSHJVSmczNjdJY1JRSUlRSnFSUzB1aGNPQ2NsUTlF…",
    "hasMore": true,
    "fetchedAt": "2026-10-09T12:23:05.571Z"
  },
  "meta": {
    "requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
    "creditsCharged": 1,
    "creditsRemaining": 4999,
    "cached": false
  }
}

A real response, shortened to one item per list.

FAQ

Instagram User Reels API questions

How much does the Instagram User Reels API cost?

1 credit per successful call. Errors and cached results are free, and new accounts start with 100 free credits, no card required. See pricing.

Do I need a Instagram account or API key?

No. You only need a Scraperize API key, sent in the x-api-key header. Scraperize returns publicly available data. No Instagram login or developer app is needed.

How fresh is the data?

Each call fetches the data live. To trade freshness for cost, pass cache_max_age (e.g. 1h, 1d) to get a recent cached result instantly for 0 credits.

How do I get more results?

Each response includes a cursor. Send it back as the cursor parameter with the same other parameters to get the next page. It is null on the last page.

Where are the full parameters and response fields?

In the API reference, with every parameter, field and error.

Try the Instagram User Reels API

Grab your key and 100 free credits, no card required, and run this call in minutes.