Back to Blog
Instagram

Can You See Who Clicked Your Instagram Link? (What You Can Actually Track)

November 27, 2025
9 min read
S
By SociaVault Team
InstagramLink in BioConversion TrackingCompetitor Analysis

Let's answer the question everyone actually types into Google first, because it has a clear answer:

No — Instagram does not tell you who clicked the link in your bio. There's no list of names, no "John and 14 others visited your link," nothing like that. Instagram treats who-clicked-what as private, and that's true whether you're on a personal, creator, or business account.

If you have a creator or business account, Instagram Insights will show you an aggregate number — how many times your bio link was tapped in a given period. That's it. A count, not identities. And nobody else can see who clicked your link either, so you can stop worrying that a competitor is watching your visitors by name.

So if the real question is "can I see the actual people who clicked," the honest answer is no. But if the question underneath that is "how do I understand who's coming through my link and what's working," there's a lot you can do. Let's go through it.

What You Can Actually Track (and How)

You can't get names, but you can get a surprisingly complete picture of your link traffic if you set it up right. Three layers:

1. Click counts and trends. How many taps your link gets, and whether that's going up or down over time. Native Insights gives you the basic number; a link tool or your own analytics gives you a lot more.

2. Where the click goes and what they do next. Once someone lands on your site, your own analytics (Google Analytics, Plausible, whatever you use) can see device, rough location, which page they hit, how long they stayed, and whether they converted. This is the part most people miss — the moment the click leaves Instagram and hits your property, you can measure it properly.

3. Source attribution. With UTM parameters you can tell which channel and even which post drove the click, so "Instagram bio" traffic doesn't get lumped in with everything else.

Set up UTM tracking (5 minutes)

A UTM-tagged link tells your analytics exactly where a visitor came from. Instead of https://yourstore.com, you put this in your bio:

https://yourstore.com/?utm_source=instagram&utm_medium=bio&utm_campaign=spring_launch

Now in Google Analytics, that visit shows up under Instagram / bio / spring_launch instead of "direct" or "social." Change the utm_campaign value whenever you swap your link for a new promotion, and you can compare how each one performed.

If you don't want to dig through analytics, a link-in-bio tool (Linktree, Stan, Beacons) or a short-link service (Dub, Bitly) gives you a clean dashboard of clicks over time, top links, and rough geography. Still no names — but a much better view than Instagram's single number.

That covers your own link. The more interesting opportunity is watching everyone else's.

Here's where this gets genuinely useful for marketers. You can't see who clicked a competitor's link — but you can see what their bio link is, and when it changes. And a bio link change is one of the loudest signals in social marketing.

Think about what that single URL tells you:

  • They swapped a generic homepage link for a specific product page → they're launching something.
  • They moved to a Linktree or Stan store → they're juggling multiple offers (a course, a drop, an affiliate deal).
  • They added heavy UTM parameters or a branded short link → they're tracking a campaign aggressively, which usually means paid traffic is involved.
  • They removed the link entirely → they're in a brand-awareness phase, not a conversion push.

The bio link is the bottom of a competitor's funnel. On Instagram you get exactly one, so every change is deliberate. Monitor a handful of competitors and you'll spot product launches before they're announced anywhere else.

Instagram's public profile data includes the bio link (external_url) and the multi-link list (bio_links), so you can check it programmatically. Here's how to build a simple monitor with SociaVault.

The plan is straightforward: pull a profile, read its link, compare it to the last value you saw, and alert when it changes. Run it daily.

Step 1: Pull the profile (JavaScript)

const API_KEY = process.env.SOCIAVAULT_API_KEY;
const BASE_URL = "https://api.sociavault.com/v1";

async function getBioLink(handle) {
  const res = await fetch(
    `${BASE_URL}/scrape/instagram/profile?handle=${handle}&trim=true`,
    { headers: { "x-api-key": API_KEY } },
  );
  const json = await res.json();

  if (!json.success) {
    console.error(`Failed for @${handle}:`, json.error);
    return null;
  }

  const p = json.data; // profile object
  return {
    handle: p.username,
    link: p.external_url || null,
    bioLinks: (p.bio_links || []).map((b) => b.title),
    followers: p.edge_followed_by?.count ?? null,
  };
}

The response envelope is { success, data, credits_used, endpoint }, and the bio link lives at data.external_url. If the account uses Instagram's newer multi-link bio, those show up in data.bio_links.

Step 2: Detect changes

In production you'd store the last known link in a database (or even a JSON file). The logic is the same either way — compare and alert.

async function checkForChange(handle, store) {
  const current = await getBioLink(handle);
  if (!current) return;

  const previous = store[handle];
  if (current.link !== previous) {
    console.log(`🚨 @${handle} changed their bio link`);
    console.log(`   was: ${previous || "(none)"}`);
    console.log(`   now: ${current.link || "(none)"}`);
    store[handle] = current.link; // persist this
    // → send yourself a Slack/email alert here
  } else {
    console.log(`✓ @${handle} unchanged`);
  }
}

A raw URL is data; the type of URL is insight. A quick classifier turns "they changed their link" into "they're running a sales campaign":

function classifyLink(url) {
  if (!url) return "No link — brand awareness mode";
  if (/linktr\.ee|stan\.store|beacons\.ai/.test(url))
    return "Multi-offer (link hub)";
  if (/youtube\.com|youtu\.be/.test(url)) return "Pushing a new video";
  if (/\/products?\/|shopify|\/shop/.test(url)) return "Direct product sale";
  if (/utm_|bit\.ly|dub\.sh/.test(url)) return "Tracked campaign (likely paid)";
  return "Custom landing page";
}

The same thing in Python

If your stack is Python, the logic is identical:

import os
import requests

API_KEY = os.environ["SOCIAVAULT_API_KEY"]
BASE_URL = "https://api.sociavault.com/v1"

def get_bio_link(handle):
    res = requests.get(
        f"{BASE_URL}/scrape/instagram/profile",
        params={"handle": handle, "trim": "true"},
        headers={"x-api-key": API_KEY},
    )
    data = res.json()
    if not data.get("success"):
        print(f"Failed for @{handle}: {data.get('error')}")
        return None

    p = data["data"]
    return {
        "handle": p["username"],
        "link": p.get("external_url"),
        "followers": (p.get("edge_followed_by") or {}).get("count"),
    }

# Compare against your stored value and alert on change
print(get_bio_link("gymshark"))

Schedule either version with a cron job or a serverless function once a day, point it at 10–20 competitors, and you've got an early-warning system for launches that costs a credit per profile per check.

Putting It Together: Reverse-Engineering a Launch

The bio link is most powerful combined with other signals. A competitor launch usually looks like this in sequence:

  1. They start posting Stories teasing "something coming." (Watch with Instagram Story analytics.)
  2. Their posting frequency ticks up.
  3. Their bio link switches from homepage to a specific product or pre-order page.
  4. The link sprouts UTM parameters — they're now driving (and tracking) paid traffic.

Each of those alone is a maybe. Together they're a launch you saw coming a week early. If you want the broader toolkit for pulling Instagram data at scale, see our guide to the Instagram posts scraper API and the honest rundown of Instagram API alternatives.

Frequently Asked Questions

No. Instagram does not show you the identities of people who clicked your bio link. On a creator or business account, Insights shows an aggregate count of link taps, but never who tapped. There is no feature, app, or third-party tool that can legitimately reveal the names of people who clicked your link — that would violate Instagram's privacy rules.

Yes, in aggregate. Creator and business accounts can see the number of bio-link taps in Instagram Insights for a given time window. For richer data — sources, devices, conversions — add UTM parameters to your link and check your own website analytics, or route the link through a link-in-bio or short-link tool.

Use a UTM-tagged URL in your bio and read the traffic in Google Analytics (or your analytics tool of choice), and/or route the link through a service like Dub, Bitly, or a link-in-bio platform. That gives you click counts, traffic sources, geography, and conversion tracking — everything except the identities of individual visitors, which no tool can provide.

No. You can never see who clicked another account's link — that data is private to that account owner, and even they only get an aggregate count. What you can see publicly is what a competitor's bio link is and when they change it, which is a strong signal of campaign and launch activity.

Pull their public profile on a schedule (daily works well) and compare the external_url field against the last value you stored, alerting when it changes. You can do this with a few lines of code using an Instagram profile endpoint like SociaVault's, as shown above. A link change usually signals a new product, promotion, or campaign.

Reading publicly visible profile information — including the bio link that anyone can see by visiting the profile — is standard competitive research. You're not accessing anything private or restricted. The boundary is the same as everywhere else in social data: public information only, never private accounts, messages, or owner-only analytics.

The Bottom Line

You can't see who clicked your Instagram link, and neither can anyone else — that's by design. But "who" was probably never the useful question. With UTM tags and your own analytics you can measure how much your link works and what converts, and by monitoring competitors' bio links you can catch their launches before they're public.

Want to set up that competitor monitor? Start free with SociaVault — you get 50 credits to track your first batch of profiles, no card required.

Found this helpful?

Share it with others who might benefit

Ready to Try SociaVault?

Start extracting social media data with our powerful API. No credit card required.