Social Handle Checker - IG, TikTok, X, Snapchat, Twitch, Github avatar

Social Handle Checker - IG, TikTok, X, Snapchat, Twitch, Github

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Social Handle Checker - IG, TikTok, X, Snapchat, Twitch, Github

Social Handle Checker - IG, TikTok, X, Snapchat, Twitch, Github

Bulk-check username availability across 10 platforms — Instagram, TikTok, Facebook, Pinterest, YouTube, X, Threads, GitHub, Snapchat, and Twitch — in one run. Built for founders and agencies picking a brand name. Export JSON/CSV.

Pricing

from $4.99 / 1,000 results

Rating

4.6

(2)

Developer

Corentin Robert

Corentin Robert

Maintained by Community

Actor stats

1

Bookmarked

145

Total users

23

Monthly active users

7 days ago

Last modified

Share

Social Handle Checker

Bulk-check username availability across Instagram, TikTok, Facebook, Pinterest, YouTube (@handle), X (Twitter), Threads, GitHub, Snapchat, and Twitch in a single run. Input: a list of candidate handles (no @). Output: one dataset row per handle with yes / no / error / not_checked per platform — ideal when you are naming a company, product, or personal brand.

Built for: brand naming · pre-launch social audits · agency pitch research · trademark-style availability scans (informal, not legal advice)


What does this Actor do?

The Actor fans out each handle across the platforms you select (default: all ten). It uses:

PlatformMethod (summary)
Instagramwww.instagram.com/api/v1/users/web_profile_info/ — 200 = taken, 404 = free, 401 = taken (private account). 1 dedicated fresh residential IP per handle via got-scraping (Chrome TLS fingerprint). Zero warmup.
TikTokPublic profile URL + ProfilePage / status signals in HTML.
Facebookfacebook.com/{handle} — browser-like headers, www + m.facebook.com fallbacks; residential proxy on Apify to reduce HTTP 400 blocks.
PinterestPublic RSS pinterest.com/{handle}/feed.rss (200 + XML = taken; 404 = free), then HTML fallback.
YouTubeyoutube.com/@{handle} — 404 = free, channelMetadataRenderer in HTML = taken.
X (Twitter)Public oEmbed API (publish.twitter.com/oembed?url=https://twitter.com/{handle}) — 200 + embed HTML = taken, 404 = free. No JS scraping.
ThreadsSame web_profile_info endpoint as Instagram — Meta shares @username across both. Shares Instagram's residential proxy pool.
GitHubapi.github.com/users/{handle} — 200 = taken, 404 = free. Public REST API, no auth needed. Extremely reliable.
Snapchatstory.snapchat.com/@{handle} — 200 = taken, 404 = free. Static CDN page, no JS required.
Twitchtwitch.tv/{handle} — page title "{name} - Twitch" = taken, "Twitch" alone = free. No auth needed.

Instagram and Threads use got-scraping (Chrome JA3/TLS fingerprint) — no cookies or session tokens required. GitHub, Snapchat, and Twitch use public APIs with standard GET requests — no proxy needed. Some sites return login walls or soft 404s — rows may show error; verify critical names manually.

LinkedIn is intentionally not included — public /in/{slug} URLs are not the same kind of vanity “handle” game as Instagram/TikTok; naming rules and availability are a poor fit for this Actor.


What data does it extract?

ColumnMeaning
handleCandidate string tested (without @).
available_instagramyes = appears free, no = taken, error = check failed, not_checked = platform omitted from run.
available_tiktokSame scale.
available_facebookSame scale (Facebook Page-style URL).
available_pinterestSame scale.
available_youtubeSame scale (@handle).
available_twitterSame scale (X).
available_threadsSame scale (Threads — inferred via Instagram username lookup).
available_githubSame scale (GitHub username).
available_snapchatSame scale (Snapchat profile).
available_twitchSame scale (Twitch username).

Download results as JSON, CSV, Excel, or HTML from the Dataset tab.


Input

Default: all platforms. Restrict platforms to save time and egress.

{
"handles": [
{ "handle": "mybrand" },
{ "handle": "acme_corp" }
],
"platforms": ["instagram", "tiktok", "facebook", "pinterest", "youtube", "twitter", "threads", "github", "snapchat", "twitch"]
}

Instagram + TikTok only (faster on small lists):

{
"handles": ["brandname", "brand_name"],
"platforms": ["instagram", "tiktok"]
}

All input parameters

ParameterTypeDefaultDescription
handlesArrayHandles without @. Items may be strings or { "handle": "..." }.
platformsArrayAll 10Subset of: instagram, tiktok, facebook, pinterest, youtube, twitter, threads, github, snapchat, twitch.

On Apify Cloud, Instagram and Threads checks use the residential proxy group by default; no extra input is required.

API-only (not shown in the Console input form): If you start runs via the API, you can still pass instagramCookies (array of { "name", "value" }) or proxyGroups (defaults to ["RESIDENTIAL"] when omitted).


Output example

[
{
"handle": "mybrand",
"available_instagram": "yes",
"available_tiktok": "no",
"available_facebook": "yes",
"available_pinterest": "yes",
"available_youtube": "no",
"available_twitter": "yes",
"available_threads": "yes",
"available_github": "yes",
"available_snapchat": "no",
"available_twitch": "yes"
}
]

Run log (Apify Console)

While a cloud run is executing, open Storage → Key-value store → RUN_LOG for the same structured lines as the live log (banners, Mode: phases, indented progress). The default store also exposes Run log (live) in the Actor Output tab.


How to use

  1. Open the Actor Input tab on Apify Console.
  2. List the handles you want to test (one per line, without @).
  3. Optionally narrow Platforms to check.
  4. Click Start.
  5. Open the Dataset tab and download JSON/CSV when the run finishes.

Local development

$npm install

Copy input.json.example to input.json and edit handles/platforms, then:

cp input.json storage/key_value_stores/default/INPUT.json
apify run

Example input.json:

{
"handles": [{ "handle": "testbrand" }],
"platforms": ["youtube", "twitter", "tiktok"]
}

Use apify run for local tests (not npm start alone — the CLI wires Apify storage and env).


Performance and cost

ScenarioHandlesApprox. cost (No discount)
Brand smoke test5 handles~$0.05
Agency batch50 handles~$0.50
Portfolio scan1 000 handles~$10.00
Large hunt5 000 handles~$50.00

Pricing: $10.00 / 1,000 results on the Free plan. Paid Apify plans get discounts — Starter $8.70, Scale $7.50, Business $6.20 per 1,000.

Each "result" = one handle checked across all selected platforms (up to 10). The per-handle cost is fixed regardless of how many platforms you select.

ScenarioNotes
Few handlesUsually under 10 seconds.
Many handles + InstagramInstagram checks run in parallel with 1 residential IP per handle — no warmup overhead.
Rate limitsAutomatic retry on 429/590 with a fresh IP. Persistent errors shown as error in the dataset.

Use cases

  • Shortlist a brand name and see which @ handles are still free on major networks.
  • Give clients a one-click “social username matrix” before incorporation or campaign launch.
  • Periodically re-check a handle you want after a soft error (networks change HTML often).

Only publicly reachable URLs and endpoints are queried. Handles and availability signals may relate to personal data on some platforms — use results in line with GDPR and local law. This Actor is not a legal or trademark search. For scraping legality context, see Apify’s blog.


FAQ

Why is a platform error?
Rate limits, bot challenges, timeouts, or HTML changes. Retry later or test that URL manually.

Is Instagram 100% accurate?
It reflects the signup attempt response; reserved or restricted names may still fail later in real signup.

How do I get help?
Use the Issues tab on the Actor page in the Apify store. For a bespoke scraper or integration, see Support below.


Support

For bug reports and general questions, use the Issues tab on the Actor page in the Apify Console.

Need a custom script or integration? Contact corentin@outreacher.fr for bespoke scraping or automation tailored to your workflow.

Ready? Paste your handle shortlist, choose platforms, and click Start.