Instagram Reposts Scraper - Collabs & Credits
Pricing
from $4.00 / 1,000 repost or collab rows
Instagram Reposts Scraper - Collabs & Credits
Scrape public Instagram collabs and caption-credited reposts from profile pages or post URLs. Returns coauthors, credited handles, captions, and media URLs. No login. MCP-ready. $0.004 per row.
Pricing
from $4.00 / 1,000 repost or collab rows
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
14 days ago
Last modified
Categories
Share
Instagram Reposts Scraper
Scan public Instagram profiles or post URLs and return collab posts plus caption-credited shares as one dataset row each. You get coauthors, credited handles, captions, like/comment counts, and canonical post URLs without Instagram login, cookies, or a browser. The actor is provider-backed (ScrapeCreators first, SociaVault fallback) and MCP-ready.
Best fit for this Actor
- You already have public handles or post URLs and need collab coauthors or caption-credit signals, not a login-gated Reposts tab.
- Default mode saves only matching collabs and credited posts; turn on
includeNonRepostswhen you need every inspected post tagged withisRepost. - For profile bios, follower counts, reels-only feeds, or story highlights, route to the matching Instagram sibling actors below.
Find collab partners on a brand profile
A partnership manager tracking National Geographic wants every recent collab. They pass usernames: ["natgeo"] with maxPostsPerProfile: 12. The actor inspects recent public posts, keeps rows where Instagram lists another coauthor_producers username (Disney, Hulu, Nat Geo Animals) or where the caption says repost / via @user / credit, and returns postUrl, coauthorUsernames, matchedSignals, and takenAt. They then feed those coauthor handles into the Instagram Profile Scraper for follower counts before outreach.
Quick start input
{"usernames": ["natgeo"],"maxPostsPerProfile": 12,"maxTotalItems": 50,"includeNonReposts": false,"providerOrder": "scrapecreators-first"}
This scans the latest public posts on @natgeo, saves collab and caption-credited rows only, and stops at 12 matches or 50 total rows. Direct post URLs work the same way:
{"postUrls": ["https://www.instagram.com/p/DLDXI0fylTC/"],"includeNonReposts": true}
Input reference
| Field | Type | What it controls |
|---|---|---|
usernames | array | Handles, @handles, or profile URLs. Prefill ["natgeo"]. Empty if you only pass postUrls. |
postUrls | array | Direct /p/ or /reel/ URLs or bare shortcodes. Combine with usernames or use alone. |
maxPostsPerProfile | integer | Matching rows saved per username after filtering. Default 12, range 1–100. |
maxTotalItems | integer | Run-wide row cap and spend guard. Default 500, range 1–100000. |
includeNonReposts | boolean | Default false keeps only collabs and caption credits. True saves every inspected post, still billed per row. |
providerOrder | string | scrapecreators-first (default), sociavault-first, or a -only pin. You never supply an API key. |
includeRawData | boolean | Attach the raw provider item under raw. Default false. |
What data you receive
One dataset item is one public post that matched (or, with includeNonReposts, one inspected post). Null fields are omitted.
{"sourceProfile": "natgeo","sourceProfileUrl": "https://www.instagram.com/natgeo/","postId": "3650123456789012345","shortcode": "DLDXI0fylTC","postUrl": "https://www.instagram.com/p/DLDXI0fylTC/","caption": "A collab film with our partners.","isRepost": true,"isCollab": true,"isCaptionCredit": false,"matchedSignals": ["collab"],"creditedUsernames": [],"coauthorUsernames": ["hulu"],"ownerUsername": "natgeo","likeCount": 12000,"commentCount": 340,"isVideo": false,"takenAt": "2026-08-01T12:00:00.000Z","provider": "scrapecreators","scrapedAt": "2026-08-18T12:00:00.000Z","sourceUrl": "https://www.instagram.com/natgeo/"}
takenAt and scrapedAt are ISO 8601 timestamps. Instagram does not expose a public no-login Reposts tab; this actor flags collabs (coauthor_producers) and caption-credit language, which is the public-visible equivalent.
Use through the API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('khadinakbar/instagram-reposts-scraper').call({usernames: ['natgeo'],maxPostsPerProfile: 12,maxTotalItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Equivalent curl:
curl "https://api.apify.com/v2/acts/khadinakbar~instagram-reposts-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"usernames":["natgeo"],"maxPostsPerProfile":12,"maxTotalItems":50}'
Use with AI agents through Apify MCP
Scrape public Instagram collabs and caption-credited posts for one or more handles or post URLs. Use it when you need coauthors, credited @handles, captions, and post URLs from public posts; route to a sibling actor for profiles, reels, highlights, or comments. Return one row per matching post plus RUN_SUMMARY. Cap with maxPostsPerProfile and maxTotalItems. Costs $0.004 per saved row plus a $0.00005 start, plus platform usage.
Inspect the terminal outcome (COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT, UPSTREAM_FAILED, CONFIG_ERROR), read the default dataset, keep postUrl as provenance, and respect the caps. Current MCP setup: https://mcp.apify.com.
Connect the workflow
- Feed
sourceProfileorcoauthorUsernamesinto the Instagram Profile Scraper when you need follower counts and bios for the same accounts. - Use the Instagram Posts Scraper when you need a full recent-post feed rather than collab/credit filtering.
- Use the Instagram Reels Scraper when the starting point is reels-only media.
- Use the Instagram Highlights Scraper when the starting point is story highlight trays rather than feed posts.
Pricing
This Actor uses Pay per event plus Apify platform usage. Open the live Pricing tab for current event details, and use Apify's run cost controls to keep the workflow aligned with your budget.
| Event | Price |
|---|---|
| Actor start | $0.00005 |
Saved row (repost-found) | $0.004 |
Every persisted row is billed, including original posts when includeNonReposts is true. Empty matches (VALID_EMPTY) and invalid input (INVALID_INPUT) leave the per-row event uncharged. The opening status message shows the approximate maximum event cost from your input caps; platform usage (compute) is additional.
Best results
- Pass exact public handles or
/p/or/reel/URLs; hashtag and highlight URLs are out of scope. - Keep
includeNonRepostsfalse unless you truly need a full recent-post scan — that mode bills every inspected row. - Cap spend with
maxTotalItems; start with 3–12 posts per profile while you confirm yield on a handle. - Treat a profile with no collabs or caption credits as a valid empty result: confirm
RUN_SUMMARY.outcomeisVALID_EMPTYbefore retrying. - Instagram CDN thumbnails expire; copy them promptly if you need the files.
Builder's note
I built this actor because Instagram's consumer app has a Reposts tab, while public HTML and the no-login provider APIs surface collabs and caption credits instead. I found National Geographic posts carrying coauthor_producers (Hulu, Disney, Nat Geo Animals) on ScrapeCreators /v1/instagram/user/posts and SociaVault /v1/scrape/instagram/posts, with caption-only credit language (via @user, repost) on other accounts. In my testing SociaVault sometimes returns items as an object map rather than an array, so the normalizer always runs Object.values before scoring signals. The public-visible product is therefore collabs + caption credits.
Responsible use
Use this actor only for public Instagram content you are allowed to access and process. You are responsible for complying with Instagram's Terms of Service, privacy laws, data protection rules, and any platform or jurisdiction-specific requirements. This actor does not access private accounts, login-gated Reposts tabs, or cookie-based sessions.