Why Instagram Exports Come Back Incomplete
Key takeaways
- A short file with no error is the norm, not a fluke. Most exporters stop early and don't say so. The file looks fine until you count the rows.
- Free-tier caps are the first suspect. The biggest tool in this space stops at 550 followers on the free plan and only tells you after the export has run.
- Rate limiting is the second. Instagram's limit dropped from roughly 5,000 requests per hour to around 200. A fast exporter hits that ceiling in the first minute and quietly returns what it got.
- DOM-scraping tools stop where the scrolling stopped. A tool that reads rendered rows is bounded by how far the dialog was scrolled. Reading the data Instagram loads as you scroll is a different thing, and a far more complete one.
- Instagram never returns the whole list in one pass. Three exports of the same 548-follower account returned 435, 464 and 464 rows — and 523 unique people between them. One run is not a complete list.
- Pacing is not the lever. The same account exported at 3-second and 40-second intervals finished in the same place. Slowing down does not make a single pass complete.
- The fix is more than one pass, combined. Scroll the list through several times, or run the export a few times and merge the results, keeping everyone who appeared in any pass.
You run an export, it takes a while, it hands you a file, and the file has 600 rows for an account with 12,000 followers. No error. No warning. Just a short list that looks complete until you count it.
This is the single most common failure in follower-export tools, and it has three causes. Here's how to tell which one you hit.
Cause 1: a free-tier cap you weren't shown
The biggest exporter in this category — around 500,000 users — stops the free plan at 550 followers. The specific problem, repeated across its reviews, is that it doesn't tell you until after the export runs:
"Works well but up to 550 users. Doesn't say that until you waste time waiting and download it."
"Recent update horrible. 500 followers max exported. Otherwise you have to pay."
So you sit through the full wait — sometimes several minutes — and then get 550 rows and an upgrade screen. On a small account you might never notice. On a large one it looks like the tool broke.
How to tell: the row count is a suspiciously round number — 550, 500, 1,000 — and there's an upgrade prompt attached.
The fix: use a tool that shows the profile's real total and what this run will return before you start. ListLift does this on its confirm screen — you see "12,340 followers, this run returns all of them" (or "returns the first 1,000, upgrade for the rest") before you commit any time.
Cause 2: rate limiting
Instagram fetches follower lists from its servers, and it limits how fast anything can ask. That limit was tightened sharply — widely reported as a drop from 5,000 requests per hour to around 200.
A tool that pages "as fast as the network allows" burns through 200 requests in the first minute of a large export. After that, Instagram starts returning throttling responses. What happens next depends on the tool:
- A careful one backs off — waits a minute, then longer, then resumes — and the export just takes a while.
- A careless one keeps hammering, gets the account temporarily flagged, and stops with whatever it had collected. Its reviews say things like "gets stuck on started, it won't complete" and "seems to work if you don't get blocked by Instagram, set delay high, never below 200."
Even paid tiers hit this. One exporter advertises 50,000 profiles and, per a paying customer, "doesn't scrape more than 25K followers." Paying doesn't buy you past Instagram's limiter.
How to tell: the export slows down noticeably partway through, then stalls or ends. The row count is arbitrary, not round.
The fix: pacing that's built in, not a setting you have to know to change — jittered delays, a hard backoff on the first throttle response, and small page sizes. And resumability, so a run paused by a cooldown continues instead of starting over. This is what getting your account restricted is really about.
Cause 3: DOM-scraping tools that read what's drawn on screen
Some tools — and every console script — read the follower list that Instagram has drawn on screen. Instagram virtualises long lists: it keeps a window of rows in the page and discards what you've scrolled past. So the tool's collection is bounded by how far the dialog was scrolled, and it fails silently.
On a large account, that means it stops nowhere near the end. One exporter's first real run in testing returned 49 rows for an account with 4,319 followers and reported "Done."
How to tell: the row count roughly matches how long you left it running, rather than matching the follower count.
Note this is about tools reading rendered rows. It is not the same as a tool that reads the data Instagram loads while you scroll — that approach turns out to be the most complete one available, for the reason in the next section.
Cause 4: Instagram doesn't return the whole list in one pass
This is the one almost nobody names, and on a healthy account it's the one you're actually hitting.
Instagram does not hand over a complete follower list in a single run — through any method. Ask it twice and you get two overlapping but different partial lists. We measured this directly on a 548-follower account: three separate exports returned 435, 464 and 464 rows. Combined, they covered 523 unique people — far more than any single run reached.
The same pattern shows up scrolling the list by hand in Instagram's own interface. Four passes over the same account returned 376, then 464, then 490, then 495 — climbing each time, then flattening once there was nobody new left to find.
Two things follow from that. Pacing is not the lever: the same account exported at 3-second and 40-second intervals landed in the same place. And a single pass — automated or manual — is not a complete list, no matter how patient it is.
The fix: more than one pass, combined — scrolling the list through several rounds, or merging exports you've already run, keeping everyone who appeared in any pass.
One detail that matters more than it should: between rounds, close the list and reopen it. Rescrolling the same open dialog mostly re-serves the same people; a freshly opened list serves a different set. This shows up even on tiny accounts — a 47-follower account returned 42 on the first open-and-scroll, and closing and reopening filled in the rest.
The one check that catches all three
Before you trust an export, count the rows and compare to the profile's follower number.
- Within a few percent → complete. The small gap is normal (why the numbers never match exactly).
- 30–90% short → you hit one of the three above.
A tool that tells you the expected count before the run means you can do this check in advance instead of after wasting the time.
Questions this comes up with
Skip the manual work — use ListLift
The Instagram follower export tool that shows the real count before you export.