Instagram Reposts Scraper avatar

Instagram Reposts Scraper

Pricing

from $1.35 / 1,000 reposted posts

Go to Apify Store
Instagram Reposts Scraper

Instagram Reposts Scraper

Collect available reposts from public Instagram profiles. Get one structured row per saved repost with its post link, reposting profile, available media, caption, and public engagement details, plus original creator data.

Pricing

from $1.35 / 1,000 reposted posts

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

📌 See What Instagram Profiles Repost

For social media researchers, marketers, and developers, this Actor collects available outbound reposts from public Instagram profiles. It returns one saved row for each first eligible repost it finds, with the reposting profile, post link, original creator, repost evidence, and available media, caption, and public engagement details. Use it to see what an account shares and trace each post back to its original creator.

📦 Instagram Repost Rows

Review the profile that shared a post, the reposted post itself, the original creator, public engagement when available, a continuation point, and public evidence from the Reposts tab. Source media links are returned when available. The Actor does not download or store media files.

▶️ Collect Public Instagram Reposts

Run steps

  1. Add one or more Instagram profile handles, numeric account IDs, or profile URLs.
  2. Use the same identifier type for every item in one run.
  3. Set Maximum reposts per profile if you want a cap. Leave it empty to return all available reposts until the source is exhausted.
  4. Paste a continuation point from an earlier run when you want to continue that collection, then start the run.
  5. Open the reposts link in the run output to review the dataset.

The Actor saves the first eligible occurrence of a source post immediately. If the same source post appears again through another submitted profile identifier, later matches are ignored. The saved row describes only the first match.

⚙️ Input

Use one run for profile identifiers of the same kind. The required profileIdentifiers field accepts handles, numeric account IDs, or profile URLs.

Input fields

FieldTypeWhat it does
profileIdentifiersArray of stringsRequired. Profiles to read. Enter handles, numeric account IDs, or profile URLs, and use one identifier type for every item in the run.
maxItemsIntegerOptional cap on reposts for each profile. Leave it empty to return all available reposts until the source is exhausted.
continuationPointStringOptional point returned by an earlier run. Paste it into the next run and keep the same profile identifiers to continue the collection.

Leaving maxItems empty returns all available reposts until the source is exhausted.

Example input

This is the public input from a successful current-beta default-input run.

{
"profileIdentifiers": [
"worldstar"
],
"maxItems": 10
}

🧾 Output

Run output

FieldTypeWhat it does
repostsString linkOpens the collected Instagram reposts in the default dataset overview.

Each dataset row uses one shape. repostingProfile, post, originalCreator, and repostEvidence are required. Other fields and nested values appear when Instagram provides them.

Dataset row

FieldTypeWhat it does
repostingProfileObjectPublic Instagram profile that shared the repost.
repostingProfile.idStringStable Instagram account ID for the reposting profile.
repostingProfile.usernameStringHandle for the reposting profile, without @.
repostingProfile.displayNameStringName shown for the reposting profile.
repostingProfile.profileUrlURL stringMain public URL for the reposting profile.
repostingProfile.isVerifiedBooleanWhether Instagram marks the reposting profile as verified.
repostingProfile.isPrivateBooleanWhether Instagram marks the reposting profile as private.
postObjectInstagram post that appears in the selected profile's repost history.
post.idStringStable Instagram ID for the reposted post.
post.urlURL stringMain public URL for the reposted post.
post.mediaTypeStringMedia kind reported by Instagram, such as IMAGE, VIDEO, or CAROUSEL_ALBUM.
post.captionStringOriginal caption for the reposted post.
post.publishedAtDate-time stringPublication time for the reposted post.
post.hashtagsArray of stringsHashtags found in the caption.
post.hashtags[]StringHashtag from the caption.
post.mentionsArray of stringsHandles mentioned in the caption.
post.mentions[]StringInstagram handle mentioned in the caption.
post.taggedAccountsArray of objectsInstagram accounts tagged in the post.
post.taggedAccounts[]ObjectOne tagged Instagram account.
post.taggedAccounts[].idStringStable Instagram ID for the tagged account.
post.taggedAccounts[].usernameStringHandle for the tagged account, without @.
post.taggedAccounts[].displayNameStringName shown for the tagged account.
post.taggedAccounts[].profileUrlURL stringMain public URL for the tagged account.
post.taggedAccounts[].isVerifiedBooleanWhether Instagram marks the tagged account as verified.
post.taggedAccounts[].isPrivateBooleanWhether Instagram marks the tagged account as private.
post.mediaObjectSource media links and carousel details for the post.
post.media.imageUrlURL stringDirect source URL for the post image.
post.media.videoUrlURL stringDirect source URL for the post video.
post.media.previewUrlURL stringDirect source URL for a preview image or video frame.
post.media.durationSecondsNumberMedia duration in seconds.
post.media.carouselItemsArray of objectsMedia items in a carousel, in source order.
post.media.carouselItems[]ObjectOne media item from the carousel.
post.media.carouselItems[].mediaTypeStringMedia kind reported for the carousel item.
post.media.carouselItems[].imageUrlURL stringDirect source URL for the carousel image.
post.media.carouselItems[].videoUrlURL stringDirect source URL for the carousel video.
post.media.carouselItems[].previewUrlURL stringDirect source URL for the carousel item's preview.
post.media.carouselItems[].durationSecondsNumberDuration of the carousel video in seconds.
post.audioBooleanWhether the source reports that the post has audio.
post.locationObjectPublic location attached to the post.
post.location.nameStringName shown for the location.
post.location.latitudeNumberLatitude reported for the location.
post.location.longitudeNumberLongitude reported for the location.
originalCreatorObjectOriginal creator linked to the repost.
originalCreator.idStringStable Instagram account ID for the original creator.
originalCreator.usernameStringHandle for the original creator, without @.
originalCreator.displayNameStringName shown for the original creator.
originalCreator.profileUrlURL stringMain public URL for the original creator.
originalCreator.isVerifiedBooleanWhether Instagram marks the original creator as verified.
originalCreator.isPrivateBooleanWhether Instagram marks the original creator as private.
engagementObjectPublic engagement counts for the post when Instagram provides them.
engagement.likesIntegerPublic like count for the post.
engagement.commentsIntegerPublic comment count for the post.
continuationPointStringPoint to paste into the next run to continue the profile's collection.
repostEvidenceObjectPublic evidence that links the post to the selected profile's repost history.
repostEvidence.sourceSurfaceStringPublic Instagram surface that supplied the repost evidence.
repostEvidence.sourceLabelStringPublic label that identifies the relationship as a repost.

Example row from a successful current-beta run

This genuine row is shortened to keep the example small. It keeps real values for the main fields and uses the JSON string "..." for large media URLs and omitted tagged-account details.

{
"repostingProfile": {
"id": "17841400760725320",
"username": "worldstar",
"displayName": "WorldStar Hip Hop / WSHH",
"profileUrl": "https://www.instagram.com/worldstar/",
"isVerified": true,
"isPrivate": false
},
"post": {
"id": "3981705893938794159",
"url": "https://www.instagram.com/p/DdB3GogTQ6v/",
"mediaType": "VIDEO",
"caption": "Step inside Polymarket HQ.\n\nLivetrade every touchdown with instant buy & sell on the @Polymarket app.\n\nUse code KING50 to get a $50 new user bonus.",
"publishedAt": "2026-09-08T14:06:59.000Z",
"mentions": [
"Polymarket"
],
"taggedAccounts": [
"..."
],
"media": {
"videoUrl": "...",
"previewUrl": "...",
"durationSeconds": 60.060059
},
"audio": true
},
"originalCreator": {
"id": "17841448463927417",
"username": "polymarket",
"displayName": "Polymarket",
"profileUrl": "https://www.instagram.com/polymarket/",
"isVerified": true,
"isPrivate": false
},
"engagement": {
"likes": 55770,
"comments": 1180
},
"continuationPoint": "QVFENTAxNGFPVkZzczFodEo2UGpSdV9EbC1hVHNBNWNQeGVqM18zeHBXVXAzNFFneEo5c0dLbV9kcGFtcG9zM2pHRHFySmVQaUZ6dUNTN1d6WHdoNTJCNw==",
"repostEvidence": {
"sourceSurface": "Reposts tab",
"sourceLabel": "Original creator"
}
}

💳 Pricing

What you pay for

This Actor uses pay-per-event pricing. One event is charged for each successfully saved reposted post. A smaller maxItems value can reduce the number of saved repost events. The current rate is shown in the Pricing tab.

🔌 Integrations

Video guide

Open the dataset link in the run output to review or export the saved rows through Apify.

❓ FAQ

Which profile does a saved repost belong to?

Use repostingProfile to see the public profile whose Reposts tab supplied the first saved occurrence. originalCreator identifies the account tied to the reposted post.

What happens when the same post appears again?

Only the first eligible occurrence is saved. Later matches from another submitted profile identifier are ignored, and the saved row describes that first match.

How do I continue a collection?

Paste the returned continuationPoint into the next run and keep the same profileIdentifiers. Use it when you want to continue from the returned position.

Can I submit more than one profile?

Yes. Submit one or more handles, numeric account IDs, or profile URLs, but use the same identifier type for every item in the run. maxItems applies to each profile.

Does the Actor download media files?

No. It returns source image, video, and preview links when available. Those links are the delivery, so download them yourself if you need files.

Can I read private profiles or regular posts?

No. It is for publicly accessible profile repost history. Private profiles and ordinary profile posts are outside the Actor's scope.

Can I filter by date, media type, creator, or engagement?

No. The Actor collects the available repost history and does not offer those filters.

Can I find every account that reposted one post?

No. It follows selected profiles and returns what they reposted. It does not search for every account that reposted a specified post.

📝 Changelog

v0.0 (25-09-2026)

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré