Instagram Reposts Scraper - Collabs & Credits avatar

Instagram Reposts Scraper - Collabs & Credits

Pricing

from $4.00 / 1,000 repost or collab rows

Go to Apify Store
Instagram Reposts Scraper - Collabs & Credits

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

14 days ago

Last modified

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 includeNonReposts when you need every inspected post tagged with isRepost.
  • 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

FieldTypeWhat it controls
usernamesarrayHandles, @handles, or profile URLs. Prefill ["natgeo"]. Empty if you only pass postUrls.
postUrlsarrayDirect /p/ or /reel/ URLs or bare shortcodes. Combine with usernames or use alone.
maxPostsPerProfileintegerMatching rows saved per username after filtering. Default 12, range 1–100.
maxTotalItemsintegerRun-wide row cap and spend guard. Default 500, range 1–100000.
includeNonRepostsbooleanDefault false keeps only collabs and caption credits. True saves every inspected post, still billed per row.
providerOrderstringscrapecreators-first (default), sociavault-first, or a -only pin. You never supply an API key.
includeRawDatabooleanAttach 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

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.

EventPrice
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 includeNonReposts false 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.outcome is VALID_EMPTY before 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.