Social Handles · Bulk Availability
Pricing
from $3.10 / 1,000 handle checkeds
Social Handles · Bulk Availability
See if your brand names are still free on Instagram, TikTok, X, YouTube, GitHub and 5 more — in one run. One row per handle, export-ready. No login. Free plan: 20 handles.
Pricing
from $3.10 / 1,000 handle checkeds
Rating
4.6
(2)
Developer
Corentin Robert
Maintained by CommunityActor stats
1
Bookmarked
234
Total users
22
Monthly active users
21 hours ago
Last modified
Categories
Share
Social Handle Checker
See if your brand names are still free on Instagram, TikTok, Facebook, Pinterest, YouTube, X, Threads, GitHub, Snapchat, Twitch, Reddit, Bluesky, Telegram, GitLab, and SoundCloud — in one run. One dataset row per handle (yes / no / error / not_checked), plus a profile URL when taken.
No login. No API key. No account on any of those networks.
Free plan: 20 handles per run. Paid: unlimited (your PPE budget).
Who is this for?
| You are… | Typical goal | Suggested setup |
|---|---|---|
| Founder / product lead | Shortlist a company or product name | All 15 platforms, 3–10 candidates |
| Brand / naming agency | Client pitch appendix | 5 names, all platforms — see Examples |
| DTC / creator launch | Check IG + TikTok first | Restrict Platforms to Instagram + TikTok |
| Devtools / gaming brand | GitHub, Snapchat, Twitch | Subset those three platforms |
| Trademark researcher | Informal availability scan | Full matrix, then verify critical names manually |
What you get by default: one row per handle with yes/no per selected network. This is not a legal or trademark search.
When to narrow: pick Launch (Instagram + TikTok) for a first pass. Use All 15 for a client matrix. Use Fast when you do not need Instagram or Threads.
Quick start
- Open the Actor Input tab on Apify Console.
- List the handles you want to test (one per line, without
@). - Leave Coverage on Launch (Instagram + TikTok), or switch to All 15 / Fast.
- Click Start.
- Download JSON/CSV from the Dataset tab.
Standby lookup (HTTP)
Console Start is unchanged: fill Input, run, download the dataset.
Need one brand name (or a few) in n8n, Make, or your own app? Use the Standby tab hostname. Authenticate with Authorization: Bearer <APIFY_TOKEN> (or ?token=).
| Method | Path | Request | Response |
|---|---|---|---|
GET / POST | /lookup | handle or handles (max 5). coverage default launch (Instagram + TikTok). Optional platforms when coverage=custom | { items, count, failed, budgetExhausted, cap } |
GET | / | Header x-apify-container-server-readiness-probe | OK |
Hard cap: 5 handles per request. Bulk checks belong on Start. Same PPE as a dataset row (one event per handle, not per network). First byte timeout: 5 minutes.
curl -H "Authorization: Bearer $APIFY_TOKEN" \"https://<user>--social-handle-checker.apify.actor/lookup?handle=mybrand"
curl -H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"handles":["mybrand","acme"],"coverage":"launch"}' \"https://<user>--social-handle-checker.apify.actor/lookup"
{ "items": [{ "handle": "octocat", "available_github": "no", "url_github": "https://github.com/octocat" }], "count": 1, "cap": 5 }
Standby memory 512 MB, idle 60 s (Console → Actor → Standby).
Ready-made examples (published tasks)
| Example | Best for |
|---|---|
| Check startup names across 10 social platforms | Founders — full matrix |
| Agency pitch — client handle availability scan | Agency naming appendix |
| Instagram and TikTok handle check only | Faster launch-channel check |
| Check GitHub Snapchat and Twitch usernames | Dev / creator handles |
| Check brand names on X and YouTube | X + YouTube only |
| Facebook, Pinterest and Threads | Meta-adjacent trio |
| Creator alias on 10 platforms | Stage name matrix |
| Fintech brand across socials | Legal / brand shortlist |
| TikTok and YouTube only | Video-first launch |
| Rebrand scan, 10 platforms | Agency rebrand |
| Instagram and Threads | Same @ on both |
| GitHub and X usernames | Dev-brand pair |
What does this Actor do?
Each handle is checked on the networks in your Coverage preset (or a custom list). You get yes (looks free), no (taken), error, or not_checked.
| Coverage | Networks |
|---|---|
| Launch | Instagram, TikTok |
| All 15 | Instagram, TikTok, Facebook, Pinterest, YouTube, X, Threads, GitHub, Snapchat, Twitch, Reddit, Bluesky, Telegram, GitLab, SoundCloud |
| Fast | GitHub, YouTube, X, Snapchat, Twitch, Reddit, Bluesky, Telegram, GitLab, SoundCloud |
| Custom | The list you pick |
This is not a legal or trademark search. LinkedIn is not included — /in/{slug} is not the same vanity-handle game as Instagram/TikTok.
Some networks return login walls or ambiguous pages — those cells show error. Verify critical names by opening the profile URL yourself.
What data does it extract?
| Column | Meaning |
|---|---|
handle | Candidate string tested (without @). |
available_{platform} | yes = appears free, no = taken, error = check failed, not_checked = omitted from this run. |
url_{platform} | Public profile URL when that network is no. Empty when free, error, or not checked. |
confidence_{platform} | high or low for a yes/no result. Empty on error / not checked. Facebook and Twitch are always low (HTML heuristics). GitHub, Snapchat, X oEmbed, etc. are high. |
Download results as JSON, CSV, Excel, or HTML from the Dataset tab.
Input
Console Coverage defaults to Launch (Instagram + TikTok). Saved tasks that only set platforms (no coverage) keep that list.
{"handles": ["mybrand", "acme_corp"],"coverage": "launch"}
All 15 networks:
{"handles": ["brandname", "brand_name"],"coverage": "all"}
Custom list:
{"handles": ["brandname"],"coverage": "custom","platforms": ["youtube", "twitter", "github"]}
All input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
handles | Array | — | Handles without @. Strings or { "handle": "..." }. Free plan: 20 / run. |
coverage | String | Console: launch | launch · all · fast · custom. Omit on API to keep legacy platforms behavior. |
platforms | Array | All 15 if omitted and no coverage | Used when coverage is custom, or when coverage is omitted (API / old tasks). |
API-only (not on the Console form): instagramCookies ({ "name", "value" }[]), proxyGroups.
Output example
[{"handle": "mybrand","available_instagram": "yes","url_instagram": "","confidence_instagram": "high","available_tiktok": "no","url_tiktok": "https://www.tiktok.com/@mybrand","confidence_tiktok": "high","available_facebook": "yes","url_facebook": "","confidence_facebook": "low","available_pinterest": "yes","url_pinterest": "","confidence_pinterest": "high","available_youtube": "no","url_youtube": "https://www.youtube.com/@mybrand","confidence_youtube": "high","available_twitter": "yes","url_twitter": "","confidence_twitter": "high","available_threads": "yes","url_threads": "","confidence_threads": "high","available_github": "yes","url_github": "","confidence_github": "high","available_snapchat": "no","url_snapchat": "https://story.snapchat.com/@mybrand","confidence_snapchat": "high","available_twitch": "yes","url_twitch": "","confidence_twitch": "low","available_reddit": "yes","url_reddit": "","confidence_reddit": "high","available_bluesky": "yes","url_bluesky": "","confidence_bluesky": "high","available_telegram": "no","url_telegram": "https://t.me/mybrand","confidence_telegram": "high","available_gitlab": "yes","url_gitlab": "","confidence_gitlab": "high","available_soundcloud": "yes","url_soundcloud": "","confidence_soundcloud": "high"}]
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.
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.jsonapify 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).
How much does it cost to check social handles?
From 15 September 2026 one handle is $0.006 on Free (Bronze $0.00528 · Silver $0.00456 · Gold $0.00372). Until then, the table below is what you are billed.
| Scenario | FREE until / from 15 Sep | Bronze until / from | Silver until / from | Gold until / from |
|---|---|---|---|---|
| 20 handles (Try / free cap) | $0.10 / $0.12 | $0.09 / $0.11 | $0.08 / $0.09 | $0.06 / $0.07 |
| 100 handles (paid) | $0.50 / $0.60 | $0.44 / $0.53 | $0.38 / $0.46 | $0.31 / $0.37 |
| 1,000 handles (paid) | $5.00 / $6.00 | $4.40 / $5.28 | $3.80 / $4.56 | $3.10 / $3.72 |
Free plan: 20 handles / run. Paid: unlimited (set a max charge per run if you want a spend cap). Gold / Platinum / Diamond stay one price for all three paid gold-and-up tiers.
Each billed result is one handle (one dataset row), not one network. Launch (IG + TikTok) and All 15 cost the same — Coverage only changes runtime and how complete the row is. No Actor-start fee.
| Scenario | Notes |
|---|---|
| Launch, few names | Usually under 10 seconds. |
| All 15 + Instagram | Instagram / Threads are slower on the cloud. |
| Ambiguous pages | Shown as error — retry or open the profile yourself. |
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).
Is it legal to scrape social handle availability?
This Actor only queries publicly reachable profile URLs and public APIs. Handles and availability signals may relate to personal data — use results in line with GDPR and local law. This is not a legal or trademark search. See Apify’s overview.
Also available
Instagram Username Availability Checker — Instagram-only bulk check when you do not need the 10-platform matrix.
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.
Does Standby replace Start?
No. Start = bulk dataset (all Coverage options). Standby = small JSON lookup (max 5 handles, default Launch). First HTTP byte timeout is 5 minutes.
Internals
How each network is probed (for operators). Buyers can ignore this.
| Platform | Signal |
|---|---|
| Instagram / Threads | Public profile-info lookup; private accounts count as taken. Same username space on both. |
| TikTok | Public profile page markers in HTML. |
Public profile URL, mobile fallback if needed. Dataset confidence_facebook is low. | |
| Public RSS, then HTML. | |
| YouTube | youtube.com/@handle page. |
| X | Public oEmbed for twitter.com/{handle}. |
| GitHub | Public users API. |
| Snapchat | Public story CDN page. |
| Twitch | Public channel page title. Dataset confidence_twitch is low. |
Public user/{handle}/about.json (residential proxy on Apify Cloud). User namespace, not r/ subreddits. | |
| Bluesky | Public ATProto resolveHandle (handle.bsky.social unless you pass a full domain). |
| Telegram | Public t.me/{handle} (View vs Contact). |
| GitLab | Public users API ?username=. |
| SoundCloud | Public profile URL, HTTP 200 vs 404. |
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, pick Launch or All 15, and click Start.