Skip to content
DMpop

is_user_follow_business

Do they follow?Ask the API.

Yes, the Instagram API can check: Meta's User Profile API returns is_user_follow_business, true or false, for an Instagram-scoped ID. It only answers after the person has messaged you (or tapped an icebreaker or menu). After a comment alone you get “User consent is required”. And a brand-new follow can read false for a short while.

Updated

Meta · User Profile API
curl "https://graph.instagram.com/v27.0/<IGSID>?fields=is_user_follow_business,username" \  -H "Authorization: Bearer <INSTAGRAM_USER_ACCESS_TOKEN>"# After the person has messaged you{ "is_user_follow_business": true, "username": "...", "id": "<IGSID>" }# After a comment only# "User consent is required to access user profile."

Instagram API: check if a user follows you

The field.And its siblings.

One GET on the person's Instagram-scoped ID (IGSID), the ID you get as sender.id in a messages webhook. Ask only for the fields you need.

Instagram User Profile API fields
FieldTypeWhat it tells you
is_user_follow_businessbooleanWhether the Instagram user follows your account (true) or not (false).
is_business_follow_userbooleanWhether your account follows the Instagram user.
usernamestringThe user's Instagram username.
namestringThe user's name. Can be null.
profile_picURLProfile picture URL. Can be null, and the URL expires in a few days.
follower_countintHow many followers the user has.
is_verified_userbooleanWhether the user has a verified Instagram account.

What it needs

  • Instagram Login: instagram_business_basic and instagram_business_manage_messages, and a token from someone who can manage the account's messages.
  • Advanced Access if you serve accounts you don't own or manage.
  • The person's IGSID. Instagram user IDs and usernames don't work here.

Where it's documented

The User Profile API for Instagram Login, and the Messenger Platform version for the Facebook Login setup (Page token, plus pages_manage_metadata, pages_read_engagement and pages_show_list). Both list the same fields and the same consent rule. Checked 9 November 2026.

Instagram follow status delay for new follows

Just followed.Still says false.

A follow gate asks people to follow, then tap. Most tap within seconds, which is exactly when Instagram may not have caught up. Meta doesn't document a delay, but we see one. In one measurement noted in DMpop's code, a follow still read false 17 seconds after it happened and true by about 68 seconds.

Reject on the first false and you turn away the very people who did what you asked, then tell them to follow an account they already follow.

How DMpop re-checks

  • A false after the “I'm following” tap isn't final. DMpop looks again 20 seconds later, then 40 seconds after that.
  • Several quick taps collapse into one re-check, not a pile of calls.
  • Still false after the last check: the person gets the “follow me first” message again, with the button, so they can tap once they've followed.
  • A tap on an opening message's button isn't a claim to follow, so a false there gets the follow prompt straight away.
  • No answer at all (null: an error or a missing field) after a tap: DMpop sends the link. It fails open, so a real follower is never stuck.

Those delays are DMpop's defaults, not Meta numbers.

Node 18+ · check, then re-check
// Ask Instagram whether this IGSID follows the account.// true / false, or null when Instagram gives no answer// (no consent yet, a block, or any error).async function follows(igsid, token) {  const url = `https://graph.instagram.com/v27.0/${igsid}?fields=is_user_follow_business`;  try {    const res = await fetch(url, { headers: { Authorization: `Bearer ${token}` } });    if (!res.ok) return null;    const data = await res.json();    return typeof data.is_user_follow_business === "boolean"      ? data.is_user_follow_business      : null;  } catch {    return null;  }}// After an "I'm following" tap: a fresh follow can read false// for a while, so look again before saying no.const RECHECK_DELAYS_MS = [20_000, 40_000]; // DMpop's defaultsconst sleep = (ms) => new Promise((r) => setTimeout(r, ms));async function confirmFollow(igsid, token) {  let result = await follows(igsid, token);  for (const delay of RECHECK_DELAYS_MS) {    if (result !== false) break;    await sleep(delay); // in production: a delayed queue job    result = await follows(igsid, token);  }  return result; // true, false, or null}

Instagram follow to get the link, built on the API

The whole gate,step by step.

  1. Comment. The person comments the keyword. Unless they've messaged you before, there's no consent yet, so the check can't answer. Treat that as “not confirmed”.
  2. Private reply with a button. Either an opening message or the “follow me first” prompt. One message, within 7 days of the comment.
  3. Tap. A messaging_postbacks webhook arrives. The chat is open and the profile API answers.
  4. Check. true: send the link. false: re-check after a short wait. Still false: send the prompt again.
  5. Log it. Record who was turned away, so you can see whether the gate costs you more than it brings.

That's DMpop's follow gate. Switch it on in a campaign, or set requireFollow: true through the REST API or the MCP server. The creator's side of it, with message examples, is on follow to get the link.

Questions

Follow check questions,answered.

Can the Instagram API check if a user follows me?

Yes. Meta's User Profile API has an is_user_follow_business field: GET /<IGSID>?fields=is_user_follow_business returns true if that Instagram user follows your professional account and false if not. It works on the Instagram API with Instagram Login (graph.instagram.com) and the Facebook Login messaging setup.

Why do I get 'User consent is required to access user profile'?

The person hasn't given consent yet. Meta sets consent only when an Instagram user sends a message to your account, or clicks an icebreaker or the persistent menu. If they've only commented, you get this error. A comment-to-DM flow usually sends a private reply with a button first, and checks the follow after the tap.

Why does is_user_follow_business say false right after someone follows?

Instagram doesn't reflect a brand-new follow straight away. In one measurement noted in DMpop's code, a follow still read false 17 seconds after it happened and true by about 68 seconds. Meta doesn't document this delay, so re-check a false result after a short wait before telling someone they don't follow.

Which permissions does the follow check need?

With Instagram Login: instagram_business_basic and instagram_business_manage_messages, with an Instagram user token from someone who can manage the account's messages. Advanced Access if you serve accounts you don't own. With the Facebook Login setup: instagram_basic, instagram_manage_messages, pages_manage_metadata, pages_read_engagement and pages_show_list, with a Page token.

Can I check whether a commenter follows me before sending the private reply?

Not reliably. A comment alone doesn't give consent, so the call returns the consent error, not an answer. Send the private reply first (with a button), then check when they tap.

Can I check followers for any Instagram user?

No. The field is about a person who's in a conversation with your account, looked up by their Instagram-scoped ID (IGSID), after they've given consent. It isn't a way to look up follower lists, and if the person has blocked your account you can't see their information at all.

Follow gate on every plan

Check the follow.Let the DM pop.

DMpop's follow gate checks is_user_follow_business and re-checks new follows for you. Turn it on from the app, the API or MCP. Free sends 1,000 DMs a month; paid plans start at ₹99.