# Username Checker — Find a Username on 600+ Sites (OSINT) (`intelscrape/username-checker`) Actor

Username Checker: search usernames across 600+ websites and social networks (GitHub, Reddit, Twitch, Steam, Medium, Patreon…) and get every profile URL found. OSINT and brand-protection tool on the open WhatsMyName rules; uncertain results are labeled, never guessed. No login. Pay per username.

- **URL**: https://apify.com/intelscrape/username-checker.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Username Checker — Find a Username on 600+ Sites (OSINT)

![Username Checker — Find a Username on 600+ Sites (OSINT)](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/username-checker-banner.png)

🇨🇳 **用户名查询工具**：在 600 多个网站和社交平台（GitHub、Reddit、Twitch、Steam、Medium 等）上批量检测用户名，返回所有找到的个人主页链接。基于开源 WhatsMyName 规则，适用于 OSINT 与品牌保护。不确定的结果会如实标注。无需登录和 API 密钥，按用户名付费。

🇸🇬 **Penyemak Nama Pengguna**: cari satu atau banyak nama pengguna di lebih 600 laman web dan rangkaian sosial dan dapatkan setiap URL profil yang ditemui. Alat OSINT dan perlindungan jenama. Tiada log masuk, tiada kunci API.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%240.02%20per%20username-blue) ![profiles](https://img.shields.io/badge/profiles-%240.001%20each-blue) ![login](https://img.shields.io/badge/login-not%20required-brightgreen) ![sites](https://img.shields.io/badge/sites-600%2B-orange)

**Find where a username exists across 600+ sites in about 20–60 seconds, with confirmed profile URLs and honest "uncertain" labels.**

> **Honest coverage & billing:** A matching username does not mean the same person owns every account. You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is Username Checker?

Usernames are reused everywhere. **Username Checker** takes one or many usernames and checks each one against 600+ websites, from GitHub, Steam and Twitch to Patreon, Medium and niche forums, then returns a clean list of profile URLs where the username exists. It is built on the community-maintained [WhatsMyName](https://github.com/WebBreacher/WhatsMyName) detection rules (CC BY-SA 4.0), which require both the right HTTP status and a page fingerprint before calling a profile "found".

### What does it do?

- **600+ sites** across social, coding, gaming, finance, music, business, shopping, art and more
- **Bulk**: up to 200 usernames per run, each checked against every selected site
- **Strict detection**: a profile counts as found only when the status code and the page fingerprint both match the WhatsMyName rule
- **Summary row per username**: sites checked, profiles found, not found and uncertain, plus the list of sites and categories
- **Category filter**: e.g. only social, coding or gaming sites
- **Safe defaults**: adult sites and bot-protected sites are excluded unless you turn them on
- **Uncertain results on request**: see which sites timed out or blocked the check (never charged)

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies, no API keys
- **Pay per result** with a built-in cost guard; no subscription, failed items are never charged
- **Fast and light**: no browser, no residential proxy, so runs finish in seconds and stay cheap
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **Brand protection**: check whether your brand or product name is taken or impersonated across platforms
- **Username availability**: see where a handle is still free before launching a brand
- **OSINT and investigations**: map the public footprint of a handle as part of lawful research
- **Trust & safety and fraud teams**: check reused handles linked to abuse reports
- **Recruiters and community managers**: find a known contact's public developer or creator profiles (GitHub, GitLab, Dribbble, Behance)
- **Security awareness**: show employees how visible their reused usernames are

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~username-checker/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"usernames": ["torvalds"]}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/username-checker").call(run_input={"usernames": ["torvalds"]})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/username-checker with the default input and summarise the results."*

### Input examples

**One username (default)**

```json
{
  "usernames": ["torvalds"]
}
```

**Several usernames, coding and social only**

```json
{
  "usernames": ["mybrand", "mybrand_official"],
  "categories": ["social", "coding"]
}
```

**Include uncertain checks for review**

```json
{
  "usernames": ["example_handle"],
  "includeUncertain": true
}
```

### Output fields

| Field | Description |
|---|---|
| `type` | profile, uncertain or summary |
| `username` | The username checked |
| `site / category` | Site name and category from WhatsMyName |
| `profileUrl` | Link to the public profile |
| `status / httpStatus` | found (or uncertain) and the HTTP status received |
| `sitesChecked / profilesFound / notFound / uncertain` | Totals on the summary row |
| `foundOn / categoriesFound` | Sites and categories where the username was found (summary row) |
| `dataSource` | Detection rules used (WhatsMyName, CC BY-SA 4.0) |
| `checkedAt` | Time of the check (ISO) |

#### Sample output

```json
{
  "type": "profile",
  "username": "torvalds",
  "site": "GitHub (Gists)",
  "category": "coding",
  "profileUrl": "https://gist.github.com/torvalds",
  "status": "found",
  "httpStatus": 200,
  "checkedAt": "2026-10-21T03:11:04.731Z"
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run | $0.005 |
| **Username checked** | per username, all selected sites | $0.02 |
| **Profile found** | per confirmed profile URL | $0.001 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 1 username, ~90 profiles found | ≈ $0.115 |
| 1 username with few accounts (~10 found) | ≈ $0.035 |
| 100 usernames, ~15 found each | ≈ $3.51 |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### FAQ

#### Does a "found" profile prove it is the same person?

No. It proves the username exists on that site. Different people often use the same handle. Always verify before drawing conclusions.

#### Why are some sites "uncertain"?

Some sites block cloud servers, rate-limit, or changed their pages since the rule was written. Instead of guessing, those checks are labeled uncertain and are not counted or charged.

#### Which sites are checked?

The live WhatsMyName list (about 600 sites after defaults). Adult sites and Cloudflare/captcha-protected sites are excluded by default.

#### Do I need accounts on these sites?

No. Only public profile pages are requested, without login or cookies.

#### How long does it take?

Usually 20–60 seconds per username with the default 25 parallel checks.

#### Is this legal?

It reads public pages only. You are responsible for using results lawfully: no stalking, harassment, or decisions about people that require consumer-reporting compliance (e.g. FCRA).

#### Can I see the raw evidence?

Each found row includes the profile URL and HTTP status so you can open and verify it.

### Honest limits

- A matching username does not mean the same person owns every account.
- Results depend on WhatsMyName rules; when a site changes its pages, a rule can briefly misfire until the community updates it.
- From cloud servers roughly 40–50% of sites typically give no clear answer (blocks, timeouts, changed pages); these are reported as uncertain, not as found or missing. In our tests a random non-existent username returned 0 false "found" results across 611 sites.
- Public pages only; private or deleted profiles cannot be confirmed.

### Related IntelScrape bots

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro): people lookup
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper): emails, phones & socials from sites
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper): creator & influencer leads
- [PDF Text Extractor](https://apify.com/intelscrape/pdf-text-extractor): PDF URLs to clean text & metadata
- [Google Autocomplete Scraper](https://apify.com/intelscrape/google-autocomplete-scraper): keyword suggestions from Google, YouTube, Amazon & Bing
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

## `usernames` (type: `array`):

One username per line (up to 200). A leading @ is removed.

## `categories` (type: `array`):

Optional filter, e.g. social, coding, gaming, finance, music, business, shopping. Empty = all.

## `includeNsfw` (type: `boolean`):

Off by default.

## `includeProtectedSites` (type: `boolean`):

Sites behind Cloudflare/captcha often give uncertain answers from cloud servers; off by default.

## `includeUncertain` (type: `boolean`):

Also output sites that did not give a clear yes/no (timeouts, blocks). Not charged.

## `concurrency` (type: `integer`):

How many sites to check at the same time.

## Actor input object example

```json
{
  "usernames": [
    "torvalds"
  ],
  "includeNsfw": false,
  "includeProtectedSites": false,
  "includeUncertain": false,
  "concurrency": 25
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "usernames": [
        "torvalds"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/username-checker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "usernames": ["torvalds"] }

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/username-checker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "usernames": [
    "torvalds"
  ]
}' |
apify call intelscrape/username-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intelscrape/username-checker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0i8rk34SjuKHSCYAc/builds/DAkhO1rZiCVr6taW1/openapi.json
