Instagram Carousel Scraper โ€“ Media Export avatar

Instagram Carousel Scraper โ€“ Media Export

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Instagram Carousel Scraper โ€“ Media Export

Instagram Carousel Scraper โ€“ Media Export

Extract every image and video from public Instagram carousels by URL. Get ordered slides, captions, engagement, authors, tags, locations, and media variants.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

ScrapingMonkey

ScrapingMonkey

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Categories

Share

Extract every image and video from public Instagram carousel posts by URL. Instagram Carousel Scraper returns ordered carousel slides together with caption, engagement, author, location, tagged users, coauthors, sponsors, and post-level metadata.

Submit full Instagram post URLs and receive one structured dataset row per carousel. The Actor requires no Instagram login or cookies and records an explicit failed row for invalid, unavailable, or non-carousel inputs.

At a glanceDetails
๐Ÿ“ฅ InputFull Instagram carousel URLs such as https://www.instagram.com/p/SHORTCODE/
๐Ÿ“ค OutputPost metadata plus every carousel image and video in its original order
๐Ÿ” Login requiredNo
โšก ProcessingUp to 5 URLs concurrently, with automatic retries
๐Ÿ’พ DeliveryApify dataset for JSON, CSV, Excel, XML, API, and integrations

Instagram carousels can combine images and videos in one post. This Actor keeps the entire carousel together as one result while exposing a structured items array with slide position, media URLs, dimensions, counts, accessibility text, video duration, and tags.

Post-level output includes:

  • Carousel ID, PK, shortcode, canonical URL, product type, and media type
  • Caption text, caption ID, publication time, translation state, and edit state
  • Like, comment, view, Facebook, and repost counts when public
  • Author profile, location, coauthors, sponsors, and tagged users
  • Cover image variants and dimensions
  • Every carousel child in order, including image and video variants
  • Visibility, commenting, paid-partnership, count-hiding, and resharing flags
  1. Copy the full URL of a public Instagram carousel.
  2. Add one or more URLs to inputList.
  3. Start the Actor.
  4. Open the dataset and inspect the items array.
  5. Export the row or send it to your storage and analytics tools.
{
"inputList": [
"https://www.instagram.com/p/DcVY5dZm_Pv/",
"https://www.instagram.com/p/ANOTHER_CODE/"
]
}

Bare shortcodes are not accepted. A Reel URL or a single-image post URL is not silently treated as a carousel; it is saved as failed.

The main row contains the post. Repeating entities are represented as arrays so slide order and relationships remain intact.

Field groupIncluded data
Identityid, pk, code, url, type, product_type, media_type
CaptionText, ID, timestamps, translation availability, edit status
EngagementLikes, comments, views, Facebook counts, reposts
MediaCover URL, variants, dimensions, item count, ordered items
ContextAuthor, location, tagged users, coauthors, sponsors
FlagsComments disabled, counts hidden, partnership, resharing

Complete representative success item:

{
"input": "https://www.instagram.com/p/DcVY5dZm_Pv/",
"status": "success",
"cover_url": "https://instagram.example/carousel-cover.jpg",
"url": "https://www.instagram.com/p/DcVY5dZm_Pv/",
"id": "1234567890123456789_13460080",
"pk": "1234567890123456789",
"code": "DcVY5dZm_Pv",
"type": "carousel",
"product_type": "carousel_container",
"media_type": 8,
"caption": "A carousel caption",
"caption_id": "987654321",
"caption_timestamp": 1754006400,
"caption_published_at": "2025-08-01T00:00:00Z",
"caption_has_translation": false,
"caption_is_edited": false,
"published_at": "2025-08-01T00:00:00Z",
"timestamp": 1754006400,
"like_count": 12500,
"comment_count": 213,
"view_count": null,
"facebook_like_count": 0,
"facebook_comment_count": 0,
"repost_count": 18,
"width": 1080,
"height": 1350,
"accessibility_caption": "Two athletes outdoors",
"comments_disabled": false,
"commenting_disabled_for_viewer": false,
"counts_hidden": false,
"is_paid_partnership": false,
"can_reshare": true,
"author": {
"profile_picture_url": "https://instagram.example/author.jpg",
"profile_picture_url_hd": "https://instagram.example/author-hd.jpg",
"username": "nike",
"name": "Nike",
"id": "13460080",
"pk": "13460080",
"profile_url": "https://www.instagram.com/nike/",
"is_verified": true,
"is_private": false
},
"location": {
"id": "1001",
"pk": "1001",
"name": "New York",
"short_name": "New York",
"address": "New York, NY",
"city": "New York",
"latitude": 40.7128,
"longitude": -74.006
},
"cover_versions": [
{
"url": "https://instagram.example/carousel-cover-1080.jpg",
"width": 1080,
"height": 1350
}
],
"items_count": 2,
"items": [
{
"position": 1,
"id": "1234567890123456790_13460080",
"pk": "1234567890123456790",
"code": "DcVY5dZm_Pv",
"type": "image",
"media_type": 1,
"image_url": "https://instagram.example/slide-1.jpg",
"video_url": null,
"video_duration": null,
"width": 1080,
"height": 1350,
"accessibility_caption": "First carousel image",
"image_versions": [
{
"url": "https://instagram.example/slide-1-1080.jpg",
"width": 1080,
"height": 1350
}
],
"video_versions": [],
"product_type": "carousel_item",
"timestamp": 1754006400,
"published_at": "2025-08-01T00:00:00Z",
"like_count": null,
"tagged_users": [
{
"id": "2002",
"pk": "2002",
"username": "examplecreator",
"name": "Example Creator",
"profile_url": "https://www.instagram.com/examplecreator/",
"profile_picture_url": "https://instagram.example/tagged.jpg",
"is_verified": false,
"position": [0.42, 0.61]
}
]
},
{
"position": 2,
"id": "1234567890123456791_13460080",
"pk": "1234567890123456791",
"code": "DcVY5dZm_Pv",
"type": "video",
"media_type": 2,
"image_url": "https://instagram.example/slide-2-cover.jpg",
"video_url": "https://instagram.example/slide-2.mp4",
"video_duration": 8.4,
"width": 1080,
"height": 1350,
"accessibility_caption": null,
"image_versions": [
{
"url": "https://instagram.example/slide-2-cover-1080.jpg",
"width": 1080,
"height": 1350
}
],
"video_versions": [
{
"url": "https://instagram.example/slide-2-1080.mp4",
"width": 1080,
"height": 1350,
"type": 101
}
],
"product_type": "carousel_item",
"timestamp": 1754006400,
"published_at": "2025-08-01T00:00:00Z",
"like_count": null,
"tagged_users": []
}
],
"tagged_users": [],
"coauthors": [
{
"id": "3003",
"pk": "3003",
"username": "partnerbrand",
"name": "Partner Brand",
"profile_url": "https://www.instagram.com/partnerbrand/",
"profile_picture_url": "https://instagram.example/coauthor.jpg",
"is_verified": true
}
],
"sponsors": [
{
"id": "4004",
"pk": "4004",
"username": "sponsorbrand",
"name": "Sponsor Brand",
"profile_url": "https://www.instagram.com/sponsorbrand/",
"is_verified": true
}
]
}

A failed row uses the same top-level schema. It keeps input, sets status to failed, and returns every other field as null. This ensures invalid links remain visible in exports without inventing partial carousel data.

Instagram CDN media URLs can expire. Download media you are authorized to retain instead of treating the returned URL as permanent storage.

Input requirements โš™๏ธ

ParameterTypeRequiredRules
inputListarray of stringsYesAt least one full Instagram post URL pointing to a carousel

The URL must use a supported Instagram post path and contain a valid shortcode. Invalid strings are saved as failed without a network request. Duplicate post URLs or shortcodes are deduplicated by the request queue.

Creative and campaign analysis

Keep every slide in order while comparing captions, formats, partnerships, tags, and engagement.

Media archiving

Collect authorized image and video URLs plus dimensions and accessibility captions for downstream storage.

Product and catalog research

Transform multi-image launches, lookbooks, tutorials, and product collections into structured records.

Brand and creator monitoring

Track coauthors, tagged profiles, sponsors, and visible engagement on selected public carousel posts.

AI and analytics pipelines

Send ordered media arrays and metadata to classification, moderation, computer-vision, or reporting workflows.

Pricing and result counting ๐Ÿ’ฐ

See the Actor's Pricing tab for the active charging model and rate. Store pricing may change, so this README does not promise a fixed amount.

Under dataset-item pricing, one submitted unique carousel produces one saved row:

  • A parsed carousel saves one success result, regardless of its number of slides.
  • An invalid, unavailable, restricted, deleted, or non-carousel URL saves one failed result.
  • Automatic retries do not create separate rows.

This means a ten-slide carousel is still one dataset item containing ten ordered objects in items.

Replace $ACTOR_ID with the Actor ID from its API tab and $APIFY_TOKEN with your token.

curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputList":["https://www.instagram.com/p/DcVY5dZm_Pv/"]}'

Connect runs to schedules, webhooks, Make, Zapier, Google Sheets, cloud storage, or custom applications. The default dataset provides machine-readable results after the run.

Reliability, retries, and failures โš ๏ธ

The Actor processes up to five URLs concurrently. Temporary timeouts, throttling, blocked redirects, selected HTTP errors, and transport failures are retried automatically up to the configured attempt limit. Permanent validation errors and confirmed non-carousel responses become failed rows.

One bad URL does not stop the rest of a batch. A whole Actor run can still fail when startup cannot complete, Apify storage is unavailable, or a result cannot be saved safely.

Public availability is controlled by Instagram. Private, deleted, age-restricted, login-gated, region-restricted, or recently changed posts may not be accessible. Instagram can also change response structures without notice.

Frequently asked questions โ“

It returns every item exposed in the public carousel response, preserving the source order in items.

Can I submit a Reel URL?

No. A Reel is intentionally rejected by this carousel-specific Actor. Use the Reel Details Actor instead.

Is each slide billed as a separate result?

Under dataset-item pricing, no. The carousel is one row and its slides are nested inside items.

Does it download the media files?

No. It returns public image and video URLs plus metadata. Downloading and storing those files is a separate action.

Why are some fields null?

Instagram does not expose every optional count, location, tag, or accessibility field for every post.

Can I export nested items to JSON?

Yes. JSON preserves the nested structure best. Tabular formats may serialize nested arrays or require later normalization.

For a reproducible issue, provide the support channel with the run ID, approximate time, and a safe public carousel URL. Never publish tokens or proxy credentials.

Use public content lawfully. Respect privacy, copyright, data-protection, contractual, and platform requirements, especially before storing or redistributing media.