DEV Community

Cover image for I Built a Tool to Find Out Who's Not Following You Back on Instagram (And It Lives in the Browser Console)
Stanley Owen
Stanley Owen

Posted on

I Built a Tool to Find Out Who's Not Following You Back on Instagram (And It Lives in the Browser Console)

You know that moment when you realize you've been following someone on Instagram for two years, and they've never once followed you back? Yeah. That moment.

I wanted a clean, fast way to find every account like that without downloading some sketchy third-party app, handing over my Instagram password to a stranger's server, or paying $9.99/month for something that should take 30 lines of JavaScript.

So I built iTrace.


What Is iTrace?

iTrace is an open-source Instagram followback checker. You point it at your account, it compares who you follow vs. who follows you, and gives you a clean list of everyone not following back, with a built-in search and one-click unfollow.

No login. No password. No backend server storing your data. Just you, your browser, and a script.

It has two modes depending on how paranoid/comfortable you are:

  • Online mode — runs a script directly in your Instagram browser console, fetches everything live from Instagram's own API
  • Offline mode — works entirely from the JSON files Instagram lets you export from your account settings, zero network calls

The iTrace homepage showing the two mode buttons


The Part That's Actually Kind of Cool

The online mode doesn't redirect you anywhere. It doesn't open a new tab. You paste a script into your Instagram DevTools console, hit Enter, and a floating overlay panel appears directly on top of Instagram.com.

It looks like this:

The iTrace overlay injected on top of instagram.com

The overlay shows your full list of non-followers, lets you search by username, select multiple accounts, and unfollow them in bulk — all without ever leaving Instagram. When you're done, click the ✕ and it's gone.

The script fetches data through Instagram's internal API (the same endpoints their own app uses), paginates through your entire following and followers list, then does the comparison client-side. All data stays in your browser tab.


How the Script Works

Instagram's web app exposes its own API at /api/v1/friendships/. The script calls the followers and following endpoints, paginates through every page, then does a simple Set difference to find who's not following back:

const followersSet = new Set(followers);
const notFollowBack = following.filter(u => !followersSet.has(u));
Enter fullscreen mode Exit fullscreen mode

That's really the core of it. Everything else is rate-limiting logic and UI. To avoid triggering Instagram's rate limits and bans, the script has configurable delays between requests, you can tune how long it waits between API calls and how long it pauses after every 5 cycles. The defaults are conservative enough that it should work fine on large accounts without getting blocked.

The delay settings panel in iTrace Online mode


The Offline Mode (For the Extra Cautious)

If you'd rather not run anything live against Instagram's API, offline mode works entirely from the data export Instagram gives you.

Here's how: go to Accounts Center → Info and permissions, request a JSON export scoped to "Followers and following", download the zip, and upload the two JSON files to iTrace. That's it — the comparison runs locally in your browser, no requests go out anywhere.

The offline file upload UI with both files selected

Instagram's export format has changed a few times over the years, so I wrote a parser that handles all the variants I've seen — flat arrays, nested string_list_data objects, relationships_following wrappers, the works.


The Results View

Once you have your data (either mode), you get a results section with three stat cards showing how many you follow, how many follow you back, and the gap, then a searchable list of every account not following back.

The results panel with stats and the non-follower list

Clicking a username opens their Instagram profile in a new tab. iTrace remembers which profiles you've already visited (stored in localStorage) and shows a small checkmark so you don't lose track.

Tech Stack

  • React + Vite — for the iTrace web app UI
  • Vanilla JS — for the injected Instagram overlay (zero dependencies, runs anywhere)
  • No backend, no database, no accounts

Try It

The tool is live and free to use:

👉 itrace.stanleyowen.com

The full source is on GitHub if you want to poke around, fork it, or improve it:

👉 github.com/stanleyowen/iTrace


If you find it useful, a ⭐ on GitHub goes a long way. And if you build something on top of it or have ideas, open an issue and I'd love to see where this goes.

Now go find out who's been ghosting you since 2021 👻

Top comments (0)