Username Monitor: Availability Checker + Recurring Alerts avatar

Username Monitor: Availability Checker + Recurring Alerts

Pricing

from $0.50 / 1,000 platform checkeds

Go to Apify Store
Username Monitor: Availability Checker + Recurring Alerts

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

Donovan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Username Monitor

Bulk username availability checking across GitHub, GitLab, Bluesky, Farcaster, npm, PyPI, crates.io, Docker Hub, Spotify, SoundCloud, Vimeo, YouTube, and X — 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

PlatformSignalNotes
github200 taken / 404 free
gitlab200 taken / 3xx freeGitLab redirects unknown handles rather than 404ing them
bluesky200 taken / 400 freeAT Protocol's own resolveHandle endpoint, no auth
farcasterbody-basedAlways returns 200 — availability comes from whether the fname registry's transfers array is empty
npm200 taken / 404 freeChecks package-name availability, the actual typosquat signal
pypi200 taken / 404 free
crates_io200 taken / 404 freeRequires a descriptive User-Agent — crates.io rejects generic ones
docker_hub3xx taken / 404 freeOpposite convention from GitLab — taken usernames redirect, free ones 404
spotify200 taken / 404 free
soundcloud200 taken / 404 free
vimeo200 taken / 404 free
youtube200 taken / 404 freeChecks the newer @handle format
twitter200 taken / 404 freeBest-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 200 regardless 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 403 on every request tested today, taken or free. Blocked outright at the HTTP level; would need impit or 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": ""
}
FieldTypeDefaultWhat it does
usernamesstring[]requiredWith or without a leading @. Duplicates removed automatically.
platformsstring[]allWhich platforms to check. Omit to check everything.
monitorModebooleanfalseCompare this run against the last run under the same monitorName; report and alert only on changes.
monitorNamestring"default"Namespaces saved state so multiple monitors don't collide.
webhookUrlstringPOSTed a JSON payload on any detected status change.
slackWebhookUrlstringPosts 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

Built and locally verified — delta detection and webhook delivery confirmed across simulated status-flip test runs. Not yet pushed, monetized, or published to the Apify Store.