Instagram Post Scraper ✨ avatar

Instagram Post Scraper ✨

Pricing

from $1.50 / 1,000 posts

Go to Apify Store
Instagram Post Scraper ✨

Instagram Post Scraper ✨

Instagram Post Scraper returns Comments, replies, reels HD download links, images HD download links, carousel items, media details, like count, captions, Created at, comment details, can see insights as brand, User, Usertags, Carousel media count, Owner details, Storage mode

Pricing

from $1.50 / 1,000 posts

Rating

0.0

(0)

Developer

Premium Scraper

Premium Scraper

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

a day ago

Last modified

Share

Instagram Post Scraper pulls public post data out of Instagram and hands it back as clean, ready-to-use rows. The instagram post scraper takes what you paste in, works through it one item at a time, and writes every result straight to your dataset as it goes.

🌟 What You Get

Public post information on Instagram is what the instagram post scraper gathers, handing it back in table form — drop it into a spreadsheet, or read it over the API. No row waits for the end of the job: each is saved as soon as it is finished, so a lengthy run never leaves you empty-handed.

This instagram post scraper does one job on one platform and nothing else. You are better served by a single-purpose instagram post downloader than by a jack-of-all-trades that handles ten sites poorly, because here the fields match what Instagram genuinely publishes.

  • Only what is already public is read by the instagram post scraper, never anything behind a login.
  • Every row carries its origin along with it, so you can verify any result you like.
  • Nothing waits for the end of the run; each result is handed over the moment it turns up, ready to be used.
  • Stop a run whenever you like; whatever it had gathered by that moment stays with you.

🙋 Who This Is For

  • Marketers and researchers — bring Instagram post data into a sheet so you can spot trends there, rather than working through pages one click at a time
  • Agencies — put client reporting on Instagram post activity together without any of the manual effort
  • Analysts and data teams — set a recurring timetable that delivers Instagram post rows to a dashboard or a database
  • Creators — follow how their post content is performing and hold on to a record of their own output
  • Developers — reach it through the API and receive tidy post rows in return, leaving you no page reading of your own to look after

If you would rather read Instagram post data in a spreadsheet than in a browser tab, what you want is value from this instagram post scraper. A single pull suits it as well as a scheduled run feeding a dashboard, and the and the instagram data scraper output looks the same in both cases.

💬 What People Use It For

  • Gathering Instagram post data into a spreadsheet you can research or report from.
  • Holding a copy of your own, so the post information is still there for you if the original page is altered.
  • Following post activity as time passes with by running the instagram post scraper on a schedule.
  • Lining up a few accounts or sources next to one another in a single table.
  • Handing Instagram post rows onward to a dashboard, a database or some other tool.
  • Reviewing your own post presence, then exporting what you find for a client report.

Those are the usual ones. The instagram post scraper hands you a plain table, so anything a spreadsheet can do, it can do to these results, the next it into another instagram post extractor step included.

🏆 Why This One

Getting the data right on the first attempt is what the instagram post scraper was written for. Anyone who has been burned by any have tried a instagram post extractor that came back with half-empty rows will care about the differences below.

What comes backWhy it helps you
Complete rowsYou get every field the Instagram page puts on public view, not some cut-down handful.
Rows you can see earlyResults reach the dataset while the run is still going, not just once it wraps up.
Messages in plain EnglishWhen something is off, you are told what it is and how to put it right.
No alarming red errorsYou get an explanation, the faulty link is set aside, and the run carries on.
A storage name you chooseKeeps every run's output apart, so you can find it again later.

The instagram post scraper will not guess on your behalf. A field that was never published stays blank rather than being filled with an invention, and you are better served by an honest gap than by an instagram post export tool that quietly pads its output. Copying Instagram post details by hand holds up for five items and breaks down at fifty. The instagram post scraper lifts away the part of the job that will not scale.

The manual approachWith this tool
Visiting each page and copying every fieldOne paste of your list, and a table comes back
Typos and blank fields creep inEach row is completed the same way on every run
No way to tell when it was gatheredEach run is dated and saved for you
Doing it a second time means all that work over againSet a instagram post downloader on a schedule and it handles the repeats for you
Just you and one window at a timeWorks away quietly while you get on with other things

The larger your list, the more you feel the difference. Across ten items a instagram post extractor hands you back an afternoon; across a thousand it decides whether the work happens at all or simply never gets done.

🎛️ Your Settings, Explained

Every setting the instagram post scraper offers has a place in this list. Nothing has been kept back, and no entry here points to a setting the actor has since removed.

OptionControl typeStarting valueIts purpose
Instagram Username(s)text listeverythingEnter one or more Instagram usernames such as nba, natgeo, or cristiano.
Instagram Profile, Direct Post URLslink listeverythingAdd one or more Instagram profile or direct post URLs.
Posts Per Profilenumber box10How many timeline posts to return for each profile input.
RegiondropdownUSChoose the Region used for this run for public Instagram requests.
Skip Pinned PoststoggleoffTurn on to skip pinned timeline posts completely.
Extract Posts That Are Newer Thantext boxnot setOnly keep profile timeline posts created on or after this date.
Include CommentstoggleoffTurn on to collect public comments for each returned post.
Comments Limit Per Postnumber box20Maximum number of comments to return per post when comment collection is enabled.
Include Comment RepliestoggleoffTurn on to check each returned comment for public replies.
Replies Limit Per Commentnumber box10Maximum number of direct replies to collect for each collected comment or nested reply parent when reply collection is enabled.
Store Photos in Storage (Permanent Image Links)toggleoffIf ON, each photo is saved to Permanent Cloud Storage and a permanent, non-expiring download URL is added to the row. Charged per photo saved.
Store Video in Storage (Permanent Download Links)toggleoffIf ON, each video is saved to Permanent Cloud Storage and a permanent, non-expiring download URL is added to the row. Charged per video saved.
Custom Storage Name / Prefixtext boxnot setEnter a custom Cloud Storage Name / Prefix (e.g. Cristiano or my-store_1). ⚠️ RULES: Only letters (a-z, A-Z), numbers (0-9), hyphens (-) and underscores (_), max 63 characters. Leave empty to use default storage.
Only these kinds of posttext listeverythingLeave empty for every kind. Pick one or more to narrow the run — useful when a page mixes reels, videos and photos and you only want one of them. Every row also carries a post_type field naming its kind.
Kinds of post to returndropdownAllLeave it on All to get every kind, which is what a first run should do. Pick one or more to narrow it — useful when a page mixes reels, videos and photos and you only want one of them. Every row also carries a post_type field naming its kind.

Filling in every box is optional. Defaults are enough to get the instagram post scraper going, and each setting is there to tighten or loosen the results. Leave a box blank and to let the instagram post downloader will cover the lot.

📦 What Lands in Your Dataset

You get one row per item back from the instagram post scraper. Every row carries the fields listed here.

FieldTypeWhat you will find in it
post_typetextPost classification: reel, image, or carousel.
carousel_post_typetextCarousel subtype: carousel_only_image, carousel_only_reel, or carousel_image_and_reel (null for single reel/image).
carousel_media_countnumberTotal number of slides in a carousel album.
carousel_photo_countnumberNumber of genuine photo slides in the carousel album.
carousel_video_countnumberNumber of video/reel slides in the carousel album.
primary_image_urltextDirect link to the highest resolution photo (or 1st photo slide in carousels).
image_urlslistList of direct high-resolution photo URLs (photo slides only; video cover thumbnails excluded).
primary_video_url_hdtextDirect link to the highest-bitrate HD MP4 video stream (or 1st video slide in carousels).
video_urls_hdlistList of direct HD MP4 video stream URLs (1 per video slide in carousels).
media_detailsobjectComprehensive media container with summary, detailed photos array (dimensions, resolution, URLs), videos array (HD links, audio flag, video versions), and ordered all_media sequence.
kvs_video_download_urltextPermanent, non-expiring direct MP4 video download link in Permanent Cloud Storage.
kvs_music_download_urltextPermanent, non-expiring companion MP3 audio track download link in Permanent Cloud Storage.
kvs_photo_download_urltextPermanent, non-expiring direct JPEG photo download link in Permanent Cloud Storage.
storage_modeobjectComplete cloud storage metadata with store names, IDs, and full saved_videos and saved_photos arrays.
carousel_itemslistComplete list of slides in a carousel post with individual media IDs, resolutions, and links.
captiontextCaption text taken straight from the post, unchanged.
caption_dataobjectFull structured caption object with user tags, hashtags, and mentions.
caption_is_editedon / offTrue if the post caption has been edited.
like_countnumberLike count just as it stood when the scrape ran.
comment_countnumberPublic comment count at the time of the scrape.
share_countnumberReshare/share count when publicly available.
view_countnumberPublic view / play count for reels and videos.
video_durationnumberVideo duration in seconds.
created_attextUTC timestamp of post creation (ISO 8601).
taken_atnumberUnix timestamp of when the post was published.
shortcodetextUnique shortcode identifier (e.g. DbW4UlRF4mc).
post_urltextDirect public URL of the Instagram post.
profile_urltextDirect public URL of the author's profile.
userobjectAuthor profile details (username, full name, profile picture, verified status, follower count).
comment_detailsobjectCollected public comments, nested reply trees, and author details (when comment collection is ON).
accessibility_captiontextAccessibility caption and AI image description.
music_infoobjectOriginal audio and licensed soundtrack metadata.
is_pinnedon / offTrue if the post is pinned at the top of the profile grid.
is_videoon / offTrue if the post contains video/reel content.
has_audioon / offTrue if the video contains an audio track.

From the dataset tab you can take your the instagram post scraper results away as CSV, Excel, JSON or XML, or read them directly through the API. Where Instagram publishes nothing for an item, that field stays empty, and you will never find a guess in its place.

A media address published by Instagram is signed and expires after a few hours — export rows today and those links will stop loading tomorrow. Turn on Storage options (storePhotos and/or storeVideo) and every asset is downloaded and saved to Permanent Cloud Storage at a permanent address that never expires.

  • Reels & Videos (storeVideo: true): Downloads highest-bitrate HD MP4 video streams and automatically extracts progressive companion MP3 audio tracks using FFmpeg, injecting permanent kvs_video_download_url and kvs_music_download_url.
  • Photos & Albums (storePhotos: true): Downloads full-resolution JPEG photos for single posts and all slides in carousel albums, injecting permanent kvs_photo_download_url and storage_mode.saved_photos.
  • Carousel Mixed Posts: When carousels contain both photos and videos, enabling both options saves every individual slide with full resolution into permanent cloud storage.
FieldTypeWhat you will find in it
kvs_video_download_urltextPermanent non-expiring HD video download link (.mp4) in Cloud Storage.
kvs_music_download_urltextPermanent non-expiring companion audio download link (.mp3) in Cloud Storage.
kvs_photo_download_urltextPermanent non-expiring photo download link (.jpg) in Cloud Storage.
storage_modeobjectFull storage record including store name, store ID, saved_videos[], and saved_photos[].

Choosing a name for your storage. Give your run a custom store name in keyValueStorePrefix (e.g. Cristiano or brand_campaign) and all media will be organized under that store. Leave it empty to use the default unnamed storage.

🧾 Costs and Limits of the Instagram Post Scraper

Billing follows the rows the instagram post scraper genuinely hands over, so a result with nothing in it is free. Throw a broad list at it without worry, and the actor will establish which entries are real.

  • Apply a maximum cost per run if a sizeable job calls for a firm upper limit.
  • Once the ceiling is reached the run closes down neatly, and everything gathered before that point is kept.
  • You are only ever billed for rows that actually arrived, which keeps the cost of a instagram post extractor run easy for you to forecast.
  • A limit in the settings trims the work before the run even begins, and that is the cheaper way to stay in control.
  • Stopping a run does not spoil it; it still counts as successful, and the rows remain yours.

With a ceiling on the whole run plus the caps you set for each one, you can size a instagram post export tool job right down or right up and still know exactly what you are in for.

▶️ Running It

  1. Launch the instagram post scraper and put whatever it should cover into the box at the top.
  2. Fine-tune whichever of the settings listed above you need, or move straight on without touching any of them.
  3. Hit Start and follow the log — it keeps you posted on progress from beginning to end.
  4. Head to the Dataset tab once the first rows start showing up.
  5. Take the results away in CSV, Excel, JSON or XML form, or fetch them through the API.

Start with a handful of items and the first run will show whether quickly whether the instagram post scraper delivers what you expect. Happy with that? Then go big, because the instagram post export tool acts no differently at scale.

🧳 Before Your First Run

  • Give your list a quick look to be sure it covers what you intend. The instagram post scraper will explain anything it cannot use, though a tidy list will finish sooner.
  • Work out first whether you need the full picture or only a sample, then set your limits to suit.
  • Choose a storage name if you expect to run this again.
  • Put a ceiling on what any one run may cost when the job is a big one, and a instagram data scraper job holds no surprises.
  • Kick off with a small test. That settles quickly whether to confirm the instagram post scraper returns what you want.

Once those five are behind you, the instagram post downloader is set up for proper work, and none of it needs your attention on later runs. Give the instagram post scraper a target and it has everything it needs. Paste that target in, click Start, and rows begin landing in your dataset well before the run has finished.

  1. Drop your list into the first field.
  2. Press Start.
  3. Switch to the Dataset tab while rows come in.

Beyond this, the page is all refinement. The defaults mean chosen so the instagram post scraper does the right thing with no configuring at all, and a instagram post downloader you never adjust will still return complete rows.

Should something not make sense to you, or should the instagram post extractor hand back results you were not expecting, your quickest path to an answer is the support section further down.

🎚️ Picking the Right Settings

Sensible defaults come built into the instagram post scraper, so the quickest way in is to paste your input and hit Start. Once you want a firmer hand on the results, the settings below are the ones that shift the outcome most.

Limits. Any limit you set is a trade: completeness on one hand, time and cost on the other. A small ceiling has limit on the instagram post scraper return a quick sample; a larger one fills in the whole picture. Try small first, look the rows over, and then go bigger.

Toggles. What each toggle does is add a further set of fields, or a further step. Skip it and off makes the instagram post scraper finishes sooner; use it and the results carry more detail. Nothing is ever enabled that you did not ask for.

Storage name. Naming the storage for a particular run keeps its files walled off from everything else you have collected, which really helps if you reach for the instagram post downloader often and want last week's results sitting somewhere other than today's.

Region. Wherever that setting is on offer, your choice of region governs which variant of a page gets read. If the haul looks thinner than you expected, moving to a different region is normally the quickest thing to try with a instagram post extractor.

💎 Getting More From It

  • Paste it in just as it is. The instagram post scraper takes whatever you hand over and explains anything it cannot work with, so tidying your list beforehand is not something you need to do.
  • Re-run rather than retry by hand. When a source drops out for a moment, simply starting the instagram data scraper over again will normally sort it for you.
  • Work in smaller batches. A handful of modest runs is far easier to review than one giant one, and every run holds on to its own dataset.
  • Compare across time. Put the same instagram post scraper on a schedule and it will show you what changed, something one export on its own can never do.
  • Export early. Rows land in storage the moment they are collected, so feel free to pull data out of a instagram post downloader run while it is still going.
  • Open narrow, then broaden. A brief run proves the instagram post scraper is set up exactly as you want.
  • Give storage a name. Assign each run a storage name of its own, and its files will never mix with another run's.
  • Set it on a timer. Let it go automatically, and each pass adds a new dataset with the time it was taken.
  • Keep an eye on the log. The instagram post scraper reports each thing it is doing, so even a slow run can be seen making progress.
  • Give each run a maximum cost whenever a large job needs a firm ceiling.

Most people take the instagram data scraper output straight on into a spreadsheet or a database, and since the column names never shift from one run to the next, an import you set up once will carry on working.

📶 Bigger Jobs

The instagram post scraper was designed for repeat use rather than a single outing. Rows appear while the run is still going, so a big job is useful to you before it ends, and a job that stops early is never a write-off.

  1. Begin with a tiny run. Two or three are plenty to prove items confirm the instagram post scraper is configured just as you meant.
  2. Cap the spend. Attach a maximum cost to each run and a sizeable job holds no surprises.
  3. Put it on a schedule. Every scheduled run leaves its own dataset behind, so your history grows on its own.
  4. Collect by API. Bring each dataset directly across into whatever system you work in, taken from the instagram post export tool output.
  5. Keep an eye on the log. Progress keeps updating throughout, so a lengthy run never leaves you wondering whether it has stalled.

You are only charged for what the instagram post scraper actually returns, so a run that turns up nothing costs you nothing. That makes it perfectly safe to aim at a wide list and let it work out what really exists.

💷 What It Costs

Every row starts with a post_type field naming exactly what it is, so a mixed timeline never arrives as one undifferentiated pile:

  • Reel — a short vertical video
  • Video — an ordinary video post
  • Image — a single photo
  • Carousel — one post holding several photos or videos

The same names drive the kind filter, so a run can be narrowed to one of them.

Being straight about the limits. These are not missing features — the source does not publish them, and a column that is always empty is worse than no column:

Applies toNot availableWhy
Every kindView and play countsInstagram does not publish them on this source. Likes and comment counts are returned in full.
Every kindWho liked, by nameOnly the totals are public.
Every kindShared / reposted markerInstagram has no reshare-to-feed, so there is no such post kind to report.

🧺 Keeping Your Results Tidy

Every run of the instagram post scraper puts its results in a separate dataset, so one run never wipes out another. Keep to a handful of habits and the runs can accumulate without becoming a nuisance.

  • Label each run's storage with something that describes what it covered, and your instagram post export tool archive will still make sense to you later.
  • Send it directly to CSV or Excel if someone will be reading it.
  • Where a program is going to read the results, take them as JSON through the API, which is how the instagram data scraper is most often wired up.
  • Hold on to the source field. It is what allows a row to be verified months down the line.
  • Put a date on your exports. The instagram post scraper captures what was public at that moment, and public data keeps moving.

If this is something you come back to regularly, you will spare yourself effort by connecting a spreadsheet or a database to the instagram post downloader output a single time and letting it refresh itself, rather than exporting by hand each round.

🔎 A Real Example

Rows from the instagram post scraper hands over turn up in the order they were found. Load them into a spreadsheet and the layout is plain: a line per item, a column per field, ready to sort or filter without any cleanup beforehand.

  • Stable columns. You get an identical set of fields every time, which means an import you saved earlier, or a instagram post export tool pipeline you built, will not break on you.
  • Every row is checkable. The address a row came from travels alongside it, so if a result looks odd you can open it and confirm it yourself.
  • Honest gaps. If Instagram has published nothing, the field arrives empty. The instagram post scraper will not invent a value just to make a row look finished.
  • Repeats are merged. Entries that show up more than once are folded together, so listing the same item twice will not cost you twice.

Roll those together and what makes the instagram post scraper stops being a one-time export and starts being a source you can rely on. Columns that drift between runs make instagram data scraper useless to any automation.

🚧 What It Will Not Do

  • Whatever the instagram post scraper hands back was already published in public before it got there. No private material, no pages sitting behind a login, no account required of you.
  • What comes back reflects what a source has actually made public. Where a source is sparse or newly created, you will see fewer rows, and you are told as much rather than having the list padded out.
  • Missing values are never guessed at by the instagram post scraper. An empty field simply means the platform published nothing there.
  • Nothing protected is worked around, and you only ever receive what any visitor who is not signed in could view.
  • How you put the results to work is your call and your responsibility: GDPR, CAN-SPAM, CCPA, PECR and whichever local rules cover your situation all still apply.

🩹 Messy Input

Plenty of tools throw away an entire run because one entry was bad. The instagram post scraper takes a gentler approach: your entries are all checked before any collecting begins, and anything it cannot use gets its own line in the report, telling you the reason, what that box will accept, and what it will not.

The entry you pastedHow it gets handled
A link that belongs to some other siteYou are told which site it points to; that one is left out and the rest go ahead
Plain wording typed into a link boxYou are told a link is needed, with an example to follow
An empty linePassed over without fuss, and noted in the summary
Nothing at all worth keepingYou are given the reason, and the run still ends successfully rather than in red

That behaviour is why is why a instagram post downloader run is safe to put on a schedule. A single dead link among two hundred costs you that one link, never the whole run, and the instagram post scraper always names the entry involved.

Should the source shift underneath you or the connection drop partway through, the instagram post scraper stops with a brief note, holds on to every row already gathered, and still closes as a successful run. By contrast, instagram post extractor that crashed outright would take the rows you have already paid for with it.

🔧 If Something Goes Wrong

The same few causes are behind most problems. Whichever one it is, the instagram post scraper spells it out in the log, and the remedies are below.

Your run completed with an empty result. In most cases the input you gave pointed somewhere private, or somewhere that has since disappeared. The instagram post scraper lists every skipped entry alongside the reason, so your log names the culprit for you. Try opening the address while signed out of the site: if it is not visible to you, it is not visible to neither can a instagram post downloader.

You expected more rows than you received. Look at the limit in your settings first — that is normally the answer. Raise it, rerun, and if the total still falls short, the source simply does not publish as much as you thought; and the instagram post scraper shows what genuinely exists instead of inflating the count.

Some of your entries were passed over. Consider it is the instagram post scraper protecting your run. Each entry that was passed over appears in the report with the fault and with what that box expects. Put those right and send just them through again, since a instagram post extractor run is inexpensive while the list stays short.

Your run ended sooner than planned. This points to one of two things: your cost limit was hit, or the source stopped responding. Either way you get told in ordinary words, and whatever had already been gathered is safely stored. A second pass with the instagram post export tool normally finishes the job.

This week's results differ from last week's. Public data does not sit still. The instagram post scraper captures what was published at the moment of the run, which is precisely why running a instagram data scraper on a schedule serves you better than one export taken once.

🤔 Questions People Ask

Does the Instagram Post Scraper need a Instagram login or password?

No. Pages that are already public are all the instagram post scraper ever reads, so there is no account or password to supply and you will never be asked for one.

How big a list can results can the instagram post scraper return?

However many the source has made public. If you would rather a run wrapped up sooner, or you want the spend to stay predictable, put a cap in the limit settings.

What if the link you paste is the wrong sort?

You are told which entry was at fault and what that box will accept, and the instagram post scraper skips that one alone. Everything else keeps going, and the run still finishes successfully.

Can the export the instagram post scraper results go into Excel or CSV?

Yes. Each run builds up a dataset, and from there the results come out as CSV, Excel, JSON or XML, or straight through the API.

What if a run comes to a halt midway?

Whatever had been collected by then is already safe. Because the instagram post scraper saves each row the moment it appears, a run that stops early still leaves you with data you can use, plus a message telling you what went on.

Is there a way to run the instagram post scraper automatically?

Yes. Set a schedule and every run leaves behind a dataset of its own, so a history builds up for you with no further effort.

Does the data from the instagram post scraper give accurate data?

What you receive mirrors whatever Instagram had on display the moment the run took place. Nothing gets made up on your behalf; where a field is not published, you get a blank back instead of an estimate.

🔤 Plain-Word Glossary

TermHow we use it here
RunOne execution of the instagram post scraper, with its own dataset and log.
DatasetWhere the results collect as a table, ready to take away as a file or pull in through the API.
RowA single item, with everything known about it kept on one line.
FieldAny single column making up a row, a title or an address for instance.
StorageFiles that come down during a run are held here, on an account belonging to you.
Storage nameA name you pick that keeps the files from one instagram post downloader run apart from the rest.
LimitThe point at which a run stops taking on more, so both time and cost stay in hand.
ScheduleA timer you set that starts the instagram post extractor on your behalf and holds on to each result.

Nothing here is unique to this particular actor; the platform leans on the same vocabulary right across its tools, so whatever you pick up now carries straight over to the next instagram post export tool you decide to run.

🛡️ Your Data

  • Reading public pages and writing rows into your dataset is all the instagram post scraper does. Nothing more.
  • The list you paste serves that one run only, and nothing is retained afterwards.
  • Downloads sit in storage that belongs to your account alone, reached by links with no sign-in details attached.
  • You will never be asked to hand over an account, a password or a personal login for the instagram data scraper.
  • Ownership of the results sits with you: take them elsewhere, wipe them, or leave them where they are indefinitely.

The data goes three places with path for the instagram post scraper and no further: in from you, out of public pages, into your dataset. A demand for your account credentials would put instagram post downloader outside that path, and this one never makes such a demand.

If the instagram post scraper has earned its place for you, the ones below handle neighbouring jobs. Each is built around its own source instead of stretching to cover everything poorly.

Browse everything at apify.com/premiumscraper.

✉️ Get in Touch

Questions about the instagram post scraper, a bug, or a filter you would like added? Email premiumscraper@gmail.com and you will get a reply.

Where the instagram post scraper did not give you what you expected, pass along the run ID, since that alone is usually enough to work out what happened.

Feature requests are welcome. You can reach the team at premiumscraper@gmail.com for anything at all — a question before you buy, or a source you would like covered next.