What’s in your Instagram data download

Updated

When you request your data from Instagram, you get a zip file named something like instagram-yourname-2026-10-30-AbCdEf.zip. Inside are folders of JSON files: plain text in a structured format that programs can read. Here’s what each part means, and which parts FollowBackCheck.app uses. Everything below is read in your browser; your file is processed on your device and never uploaded to our servers.

The folder layout

The exact folders depend on what you ticked when you made the request. A download with “Followers and following” and “Messages” looks roughly like this. Older downloads put messages/ at the top level instead of under your_instagram_activity/, and some zips wrap everything in one more folder; FollowBackCheck.app finds the files wherever they are.

instagram-yourname-2026-10-30-AbCdEf.zip
├── connections/
│   └── followers_and_following/
│       ├── followers_1.json          people who follow you
│       ├── followers_2.json          (big accounts: more parts)
│       ├── following.json            people you follow
│       ├── close_friends.json
│       ├── pending_follow_requests.json
│       ├── recent_follow_requests.json
│       ├── recently_unfollowed_profiles.json
│       ├── blocked_profiles.json
│       ├── removed_suggestions.json
│       ├── restricted_profiles.json
│       └── following_hashtags.json
├── your_instagram_activity/
│   └── messages/
│       └── inbox/
│           └── anaexample_1234567890/
│               ├── message_1.json    newest messages
│               ├── message_2.json    older messages (long chats)
│               ├── photos/
│               ├── videos/
│               └── audio/
├── personal_information/
└── ... (more folders for whatever else you selected)

followers_1.json: who follows you

A list of everyone following you at the moment the download was made. Each entry has a link to the profile, the username and a timestamp: the moment they started following you, written as a Unix timestamp (seconds since 1 January 1970). Accounts with many followers get several files, followers_1.json, followers_2.json and so on, which need to be read together.

[
  {
    "title": "",
    "media_list_data": [],
    "string_list_data": [
      {
        "href": "https://www.instagram.com/someone.example",
        "value": "someone.example",
        "timestamp": 1714568400
      }
    ]
  }
]

following.json: who you follow

The accounts you follow, wrapped in a relationships_following list. The timestamp is when you followed them, which is why FollowBackCheck.app can show “you followed them on…” next to each account that doesn’t follow you back. Instagram has changed this file over time: older downloads put the username in value, newer ones put it in title and use links like instagram.com/_u/username. We read all three.

{
  "relationships_following": [
    {
      "title": "someone.example",
      "string_list_data": [
        {
          "href": "https://www.instagram.com/_u/someone.example",
          "timestamp": 1714568400
        }
      ]
    }
  ]
}

The other files in followers_and_following

FileWhat it lists
close_friends.jsonYour Close Friends list for stories.
pending_follow_requests.jsonRequests you sent to private accounts that haven’t accepted yet.
recent_follow_requests.jsonFollow requests you sent recently, accepted or not.
recently_unfollowed_profiles.jsonAccounts you unfollowed recently (not people who unfollowed you).
blocked_profiles.jsonAccounts you blocked, with the date.
removed_suggestions.json“Suggested for you” accounts you dismissed.
restricted_profiles.json, hide_story_from.json, following_hashtags.jsonRestricted accounts, people hidden from your stories, hashtags you follow. Not used by the tool.

Note what’s not there: there is no list of people who unfollowed you. Instagram only gives the current state. To find unfollowers you need two downloads from different dates; see who unfollowed me.

messages/inbox: your DMs

Each conversation gets its own folder, named after the other person or group plus a number. Inside, message_1.json holds the newest messages; long chats continue in message_2.json, message_3.json and so on. Photos, videos and voice messages sit next to them in photos/, videos/ and audio/, and each message points at its file with a uri.

  • participants: the names of everyone in the chat. Groups have three or more.
  • sender_name and timestamp_ms: who sent each message and when, in milliseconds.
  • content: the text. Shared posts appear as a share with a link; calls as call_duration.
  • reactions: emoji reactions and who left them.
  • “Instagram User”: the name shown for accounts that have since been deleted or deactivated.
{
  "participants": [{ "name": "Ana Example" }, { "name": "You" }],
  "messages": [
    {
      "sender_name": "Ana Example",
      "timestamp_ms": 1714568400000,
      "content": "Bun\u00c4\u0083! \u00f0\u009f\u0098\u0082",
      "reactions": [{ "reaction": "\u00e2\u009d\u00a4", "actor": "You" }]
    }
  ],
  "title": "Ana Example",
  "thread_path": "inbox/anaexample_1234567890"
}

Why emoji and accents look garbled

Look at the content above: “Bună! 😂” is stored as BunÄ\u0083! ð\u009f\u0098\u0082. Meta writes each byte of the UTF-8 text as a separate character, so opening the file in a text editor shows things like “Bună! 😂”. FollowBackCheck.app reverses this, so names, messages and reactions show correctly, including emoji and letters like ă, â, î, ș and ț.

Is it safe to share this file?

Treat it like your phone: it contains your private messages and your contacts’ names. Don’t upload it to websites that send it to a server. FollowBackCheck.app is built so the file never leaves your device: the page reads it with your browser’s own file access and does the work in a background thread on your computer or phone.