Technical Guide

Instagram Followers JSON File Structure

UnfollowerSpy works by comparing usernames from two structured lists in your Instagram export. The first list contains accounts that follow you. The second list contains accounts you follow. The comparison is local: the browser reads the JSON files and builds the result without sending the archive to a server.

Typical folder path

In many exports, the useful files appear under `connections/followers_and_following/`. The follower list may be split into one or more files, such as `followers_1.json`. The following list is usually named `following.json`.

Typical entry shape

Instagram export entries commonly include a `string_list_data` array. Inside that array, the useful values are usually the username, profile link, and timestamp. UnfollowerSpy reads those fields, trims the username, skips deleted entries, and keeps a unique set of accounts.

Why the tool looks for more than one follower file

Large accounts may receive follower data split across multiple files. That is why UnfollowerSpy does not look only for a single exact file called `followers.json`. It scans JSON files whose names include `followers`, then combines the usernames it can read. This makes the parser more tolerant when Instagram creates files such as `followers_1.json` or similar numbered exports.

The following list is usually simpler because Instagram commonly stores it in `following.json`. If that file is missing, the tool cannot know which accounts you currently follow, so it cannot calculate who does not follow back.

How the comparison works

  1. Read every follower JSON file found in the ZIP.
  2. Extract each follower username into a set.
  3. Read `following.json` and extract the accounts you follow.
  4. Show accounts from following that do not exist in the follower set.

Why timestamps are shown

Instagram may include timestamps on following entries. When present, UnfollowerSpy can use them for time-based filtering. A timestamp is not proof of when someone unfollowed you. It is simply useful context from the export.

Example of the comparison logic

Imagine your followers list contains `alex`, `maya`, and `dev`. Your following list contains `alex`, `maya`, `sam`, and `nina`. The result would show `sam` and `nina` because they appear in following but not in followers. The tool is not judging those accounts or claiming they recently unfollowed you. It is only comparing two lists from the export.

This is also why the export date matters. If `sam` follows you after the export is created, that new relationship will not appear until you request another export.

What can break parsing

Privacy note

Understanding the JSON structure can make the workflow less mysterious, but the export is still private account data. Keep the ZIP secure, avoid sharing the full archive, and delete it from shared devices when you are done.

How this page was reviewed

This page describes the same structure the current browser parser expects: follower JSON files, a following JSON file, username values inside structured entries, and optional timestamps. It was written to help users understand why a valid JSON export works while a media-only archive does not.