Username Monitor: Availability Checker + Recurring Alerts
Pricing
from $0.50 / 1,000 platform checkeds
Username Monitor: Availability Checker + Recurring Alerts
Bulk username availability checking across GitHub, GitLab, Bluesky, Farcaster, npm, PyPI, crates.io, Docker Hub, Spotify, SoundCloud, Vimeo, YouTube, and X. Optional monitor mode alerts via webhook/Slack when a username's status changes.
Pricing
from $0.50 / 1,000 platform checkeds
Rating
0.0
(0)
Developer
Donovan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 days ago
Last modified
Categories
Share
Username Monitor
Check username availability across platforms — GitHub, GitLab, Bluesky, Farcaster, npm, PyPI, crates.io, Docker Hub, Spotify, SoundCloud, Vimeo, YouTube, and X — in one call, plus optional monitor mode: get alerted when a username's status actually changes, instead of re-checking it by hand.
Built for founders naming a product, brand-protection teams, OSINT researchers, and security teams watching for namespace/typosquat risk on package registries.
What sets this apart
Every username checker on the Apify Store does a one-shot lookup. None of them do recurring monitoring — verified against the eight closest competitors before building this (easyapi, sync-network, corent1robert, maximedupre, parsebird, maged120, dev00, goat255):
- Monitor mode. Pair with an Apify Schedule and this actor remembers the last result per username/platform, diffs against the current check, and only reports (and charges for) an actual status change — available → taken, or taken → available. Nobody else in this category does this.
- Webhook + Slack alerts, no code required. Fill in a URL, get a POST when something changes. This is deliberately the same no-code pattern the top competitors in adjacent categories (website-change-monitor actors) already ship — Apify Store buyers are a mix of developers integrating via API and non-technical users configuring alerts through the Console, not developers exclusively.
- A curated platform list, not a padded one. The highest-user-count competitor in this category (80+ platforms) is largely a copy of the classic Sherlock OSINT tool's site list — Blip.fm, Periscope, LiveLeak, MySpace, and other platforms that are dead or irrelevant in 2026. Every platform here was hit with a live test today against a known-taken and a known-free username before being included. See "What's not included" below for what got cut and why.
- A dev-namespace bundle nobody else covers. npm, PyPI, crates.io, and Docker Hub username/package availability — real typosquat and supply-chain-risk signal for security teams, and genuinely uncontested in this category.
Platforms
Includes a dedicated GitHub username checker and npm package name checker — the two most consistently searched platforms in this category — alongside 11 more.
| Platform | Signal | Notes |
|---|---|---|
github | 200 taken / 404 free | |
gitlab | 200 taken / 3xx free | GitLab redirects unknown handles rather than 404ing them |
bluesky | 200 taken / 400 free | AT Protocol's own resolveHandle endpoint, no auth |
farcaster | body-based | Always returns 200 — availability comes from whether the fname registry's transfers array is empty |
npm | 200 taken / 404 free | Checks package-name availability, the actual typosquat signal |
pypi | 200 taken / 404 free | |
crates_io | 200 taken / 404 free | Requires a descriptive User-Agent — crates.io rejects generic ones |
docker_hub | 3xx taken / 404 free | Opposite convention from GitLab — taken usernames redirect, free ones 404 |
spotify | 200 taken / 404 free | |
soundcloud | 200 taken / 404 free | |
vimeo | 200 taken / 404 free | |
youtube | 200 taken / 404 free | Checks the newer @handle format |
twitter | 200 taken / 404 free | Best-effort. X rate-limits and bot-blocks aggressively at any real volume — confirmed locally, two sequential checks were enough to trigger a 503. Don't rely on this for bulk or high-frequency monitor-mode use until it's been stress-tested further. |
What's not included, and why
- Instagram, TikTok, Twitch, Steam, Pinterest, Roblox — all tested live today and all return
200regardless of whether the username exists. They're JS-rendered SPAs that don't 404 at the HTTP level; a real check would need body-text scraping (fragile, breaks on markup changes) or an internal API endpoint that wasn't verified. Not shipping a check that looks like it works but doesn't. - Reddit, Ko-fi — both returned
403on every request tested today, taken or free. Blocked outright at the HTTP level; would needimpitor a browser to get past, which is real added cost, not free. - Discord — no public unauthenticated username-check endpoint exists. The only path is the registration flow, which is a captcha-protected multi-field POST, not something a public multi-tenant actor can safely probe.
Input
{"usernames": ["shipsatnight"],"platforms": [],"monitorMode": true,"monitorName": "brand-watch","webhookUrl": "","slackWebhookUrl": ""}
| Field | Type | Default | What it does |
|---|---|---|---|
usernames | string[] | required | With or without a leading @. Duplicates removed automatically. |
platforms | string[] | all | Which platforms to check. Omit to check everything. |
monitorMode | boolean | false | Compare this run against the last run under the same monitorName; report and alert only on changes. |
monitorName | string | "default" | Namespaces saved state so multiple monitors don't collide. |
webhookUrl | string | — | POSTed a JSON payload on any detected status change. |
slackWebhookUrl | string | — | Posts a formatted Slack message on any detected status change. |
Output
One record per username in the default dataset:
{"username": "shipsatnight","checked_at": "2026-08-04T14:00:00.000Z","platforms": [{ "platform": "github", "status": "taken", "profile_url": "https://github.com/shipsatnight" },{ "platform": "npm", "status": "available", "profile_url": null }],"changed_since_last_run": [{ "platform": "npm", "previous_status": "taken", "current_status": "available" }]}
changed_since_last_run is only present in monitor mode, and only when something actually changed. A run-level summary (usernames processed, checks/alerts charged, whether the run stopped early on a spending cap) is written to the key-value store under RUN_SUMMARY.
Monitor mode mechanics
Apify actors don't run continuously — monitor mode is a Schedule (cron, configured in the Console, no code) that re-runs this actor periodically. Each run loads the last known status per username/platform from a named key-value store (not the run-scoped default one — the default store doesn't survive between separate Schedule-triggered runs), diffs it against the current check, and only reports/charges/alerts on an actual flip. A failed check (unknown) never counts as a change in either direction, so a transient network blip doesn't fire a false alert.
Pricing
Pay-per-event: $0.00005 actor start, $0.0005 per platform successfully checked, $0.002 per alert fired in monitor mode. Failed/unknown checks aren't charged — matches the norm this category has already converged on (competitors explicitly advertise "rate-limited or unknown results are never charged").
Status
Live on the Apify Store. Delta detection and webhook delivery confirmed both locally and across real Schedule-triggered runs on the platform.