Instagram posts scraper for public profiles, no login: each profile's newest posts and reels back to its first post, or single posts by URL. Rows carry caption, hashtags, likes, comments, reel plays, carousels, location, tagged users and collab flags. Excel, CSV or API, scheduled; pay per post.
Profiles read from the logged out posts tab (doc 29483846714553007, paging 28904005159232689 by the profile's node id): Instagram has refused the timeline door (doc 28142289515441884) on every exit since 2026-10-25, so profile runs delivered the profile row and no posts (PENDING 635). The tab gives 12 lean posts a call; each post kept is read once with the post query (the post URL mode's door) and built by the same row builder. Posts newer than an end date are skipped by their media id time without a read when that time is more than a day after the end date (an id time ran up to 27.7 s after the publication on 1 of 269 real posts; nearer ones are read, and so are posts whose id decodes before 2011-09-24, the ids of posts older than Instagram's id epoch); known and repeated posts are placed without a read when the walk has no date bound and no row filter, except page one's first four posts when one of its first three is read (the pinned rule below).
What differs on post rows read from profiles: isPaidPartnership null and sponsors empty (the post query does not carry them), viewCount null (so a non reel video passes minViews only through a play count), commentsDisabled from the visitor flag only, isPinned inferred from the post's place on page one, no jump to an end date (jumpedToEndDate stays false). A start date never ends a walk on one of the first three posts of page one. For the pinned flag, page one is read up to its fourth post whenever one of its first three is read (at most three posts are pinned), so a run asking fewer than four posts per profile reads up to four on page one (the extra reads are unpaid work, never charged). About 3.4 s a post (200 posts in 688 s, run JfaDAIhf1pTMQDTKK).
Additive: summary counters gridPostReads, gridPostsUnreadable; coverage fields postReads, unreadable. A post the post query does not show logged out is left out free and counts toward the depth.
0.1 (2026-10-11)
First build: profile rows, the newest posts and reels of public profiles (back to the first post on request) with reel play counts, posts by URL with their first comments, dates, type, likes, comments, plays, collab and pinned filters, a cross run memory. No login.