Pull public Instagram Reels data with REST calls: the reels of a handle, a keyword search, the current trending reels, or all reels that use one audio track. Each call returns JSON with view and like counts, so you can spot what works without scrolling the app.
| Endpoint | What it returns | Credits/call | USD/call (Freelance plan) |
|---|---|---|---|
/v1/instagram/user_reels | Reels | 1 | $0.0017 |
/v1/instagram/reels_search_plus | Search Reels | 1 | $0.0017 |
/v1/instagram/reels_trending | Trending Reels | 1 | $0.0017 |
/v1/instagram/audio_reels | Get Reels By Audio Id | 1 | $0.0017 |
/v1/instagram/user_reelsReels 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
user_id | string | no | Instagram user id. Use this for faster response times. |
handle | string | no | Instagram handle. Use user_id for faster response times. |
require_play_counts | boolean | no | Only the literal query value 'true' enables this check. It requires a numeric, nonnegative play_count on every returned Reel, in both full responses (items[].me |
trim | boolean | no | Set to true for a trimmed down version of the response |
max_id | string | no | Max id to get more reels. Get 'max_id' from previous response. |
Sample response (trimmed):
{
"items": [
{
"id": "3641924023820356866_21393171",
"code": "DKKtpqaxg0C",
"taken_at": 1748371310,
"created_at": "2025-05-27T18:41:50.000Z",
"caption": {
"bit_flags": 0,
"created_at": 1748371312,
"created_at_utc": 1748371312,
"did_report_as_spam": false,
"is_ranked_comment": false,
"pk": "18079986955772842",
"share_enabled": false,
"content_type": "comment",
"media_id": "3641924023820356866",
"status": "Active",
"type": 1,
"user_id": "21393171",
"strong_id": "18079986955772842",
"text": "Summer brings out all the girlies, soda, and global warming!!!🤗☀️\n\n#states #utah #idaho #california #oregon #newyork #minnesota #arizona #alaska #girlies #ja...",
"user": {
"pk": "21393171",
"pk_id": "21393171",
"id": "21393171",
"full_name": "Jane Williamson",
"is_private": false,
"is_unpublished": false,
"strong_id": "21393171",
"fbid_v2": "17841400515130334",
"username": "jane",
"is_verified": true,
"profile_pic_id": "3583980709961915639_21393171",
"profile_pic_url": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-19/482782944_496357423346018_5818268903424754264_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_ht=scontent-lga3-2.cd..."
},
"is_covered": false,
"private_reply_status": 0
},
"view_count": 1685367,
"ig_play_count": 1685367,
"c/v1/instagram/reels_search_plusSearch Reels 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | yes | The keyword to search for |
date_posted | string | no | Google-indexed date window. Recent hour/day filters are not supported because Google does not index Instagram reels reliably enough in those windows. |
page | number | no | The page number to return. Must be between 1 and 11; page 12 or greater returns a 400 response. |
/v1/instagram/reels_trendingTrending Reels 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
trim | string | no |
/v1/instagram/audio_reelsGet Reels By Audio Id 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
audio_id | string | yes | The audio id from the Instagram audio page URL. |
next_cursor | string | no | Pagination cursor returned by Instagram from the previous response. |
curl -H "X-Scapi-Key: $SCAPI_KEY" "https://api.scrapall.bipsport.com/scapi/v1/instagram/user_reels"import os, requests
r = requests.get("https://api.scrapall.bipsport.com/scapi/v1/instagram/user_reels",
headers={"X-Scapi-Key": os.environ["SCAPI_KEY"]})
print(r.json())No. These endpoints only read public reels data. Publishing is done with the official Instagram Graph API on your own account.
Yes. The audio reels endpoint takes an audio id and returns reels that use it, see the parameters on this page.
No. One Scrapall API key header is enough; there is no Meta app review or Instagram login on your side.
Open the Buy page, pick the Freelance plan and pay in USDT on TRC20 or ERC20. The key is shown once, right after the payment is confirmed on-chain.
The cost table on this page lists credits per call for each endpoint. The Freelance plan is $45 for 27,000 credits per 30 days.
Full reference: all instagram endpoints.