Introducing the Instagram APIRead more →

Instagram Username Availability API. Send a handle or profile link.

Free or taken, with suggested alternatives. We handle the proxies, blocks and platform changes.

Instagram Username Availability API at a glance

Checks whether an Instagram username can be registered now, the way the sign-up form does, from a username or profile link. When it can't, you get why (taken or reserved, or against Instagram's username rules, in Instagram's words) and the free usernames the form suggests instead, in its order.

GET /v1/instagram/username

Read the API reference
  • 1 credit per request, $0.75–$1.97 per 1,000 requests
  • 8 typed fields null when unknown
  • handle is all it needs, e.g. socialtap
  • 100 credits free when you sign up, no card, so you can build before you spend

Send one request. Get 8 fields back.

Copy the request in your language, or hand it to your agent. Sign up for an API key and your first 100 credits are free.

$ npm install socialtap
handle = socialtap
GET /v1/instagram/usernameTry in
const params = new URLSearchParams({
  handle: "socialtap",
});
const res = await fetch(`https://socialtap.dev/v1/instagram/username?${params}`, {
  headers: { "x-api-key": process.env.SOCIALTAP_API_KEY ?? "" },
});
const body = await res.json();
if (!res.ok) throw new Error(`${body.error.code}: ${body.error.message}`);
const { data, meta } = body;
console.log(data, meta.credits_charged);
200 OK · GET https://socialtap.dev/v1/instagram/usernameLong arrays and strings are shortened here. Real responses are complete.Docs

What you send and what comes back.

The response reference lists every field, its type and when it is null. See the full schema.

  • Null means unknown

    A field Instagram doesn't show is null, never zero or an empty string, so a real zero always means zero.

  • What it accepts

    The Instagram username to check, with or without the @ (socialtap, @socialtap), or a profile link (instagram.com/socialtap).

  • What comes back

    Whether a username is free to register on a platform, why not if it's taken, and the free alternatives its sign-up form suggests.

platformstring
Platform whose sign-up checked the username.
idstring
The username checked, as its identifier: the same value as username (a name, free or taken, has no other ID in a sign-up check).
usernamestring
The username checked, without @, in the platform's canonical form (lowercase where usernames are case-insensitive).
urlstring
The profile page at this username: the account's page when it is taken, the page it would have once registered (until then the platform answers it as not found); null when that address is one of the platform's own pages (instagram.com/explore/), not an account's.
is_availableboolean
True when the platform would let someone register the username now; false when it is taken, reserved or breaks the platform's username rules (reason and message say which); null when the platform did not say.
reasonstring
Why the username is not available: taken = registered to an account or reserved by the platform (platforms don't tell the two apart); invalid = breaks the platform's username rules (length, characters). Null when it is available or the platform gave no reason. New values may be added.
messagestring
The platform's own explanation when the username is not available, as its sign-up form shows it (English); null when it is available.
suggestionsstring[]
Free usernames the platform's sign-up form proposes for this one, in its order; [] when it proposes none (platforms suggest nothing for short, protected or brand names). Free when proposed: someone can take one at any time.

What teams build with the Instagram Username Availability API.

  • Find a free handle for a new brand

  • Check a name across platforms before launch

  • Suggest free usernames during sign-up

  • Watch for a wanted handle to free up

Good to know before you build.

  • Suggestions are free when Instagram proposes them, but anyone can take one at any time, so check again before relying on it.
  • Instagram suggests no alternatives for short, protected or brand names (nike, instagram), so suggestions is empty.
  • taken covers both registered names and names Instagram reserves, without telling them apart.

1 credit per request. Failed requests are free.

Buy credits once and spend them on any endpoint, on any platform.

SourcePrice per successful requestPer 1,000 requests
Platform API api1 credit$0.75–$1.97
  • Cache hits are free.
  • Credits from packs and top-ups never expire.
  • A monthly plan's credits are spent first, and what is left of them ends at each renewal.
  • Prices exclude tax: sales tax is added at checkout where it applies.
  • Outside the US, plans and packs are sold to businesses: checkout asks for your VAT, GST or other business tax ID.

Questions about the Instagram Username Availability API.

More in the API reference.

Does this tell me whether an account exists?
Not directly. A taken name may belong to an account or be reserved by Instagram. The Instagram Profile API fetches the account at a name.
Does it register or hold the name?
No. It asks Instagram's logged-out sign-up checks the same questions the form asks while someone types, and submits nothing.
How much does the Instagram Username Availability API cost?
A request costs 1 credit. SocialTap credits cost $0.75–$1.97 per 1,000, depending on the plan or pack.

Try it on an account you know.

Paste its handle or link in the playground, or copy the request into your code.

100free credits
  • No credit card
  • Failed requests are free
  • Works on all 218 endpoints
Start for free Read the docs