# Bulk Social Handle Checker — Instagram, TikTok & X (`seemuapps/social-handle-status-checker`) Actor

Check thousands of Instagram, TikTok and X handles at once — active, private, renamed or deleted — with live follower counts, bios and verification status.

- **URL**: https://apify.com/seemuapps/social-handle-status-checker.md
- **Developed by:** [Andrew](https://apify.com/seemuapps) (community)
- **Categories:** Social media, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 handle checkeds

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Bulk Social Handle Checker — Instagram, TikTok & X

Check thousands of social handles in one run. Paste a list of usernames or profile URLs and get back, for every one: does it still exist, is it public or private, and what are its follower counts right now.

Influencer lists and CRM records go stale fast — accounts get deleted, renamed, or flipped to private, and the follower count you recorded six months ago is fiction. This actor re-verifies the whole list in a single pass.

### What you get

Every record is one handle:

- **`status`** — `active`, `private`, `not_found`, or `error`
- **`exists`** — a plain boolean for quick filtering
- **`isPrivate`** — whether the account is private or protected
- **`username`** — the account's *current* username as the platform reports it, which reveals renames
- **Live counts** — followers, following, and post count at check time
- **Profile** — display name, bio, verification status, profile picture, and any external link in the bio
- **`userId`** — the stable numeric platform ID, which survives a username change
- **`checkedAt`** — an exact UTC timestamp for every row, so you can prove when a list was last verified

### Supported platforms

Instagram, TikTok, and X (Twitter) — all three can be mixed freely in a single run.

### Use cases

- **Influencer list hygiene** — re-verify a creator list before a campaign, and catch the accounts that vanished
- **CRM and lead enrichment** — confirm the social handles on your contact records still resolve, and refresh follower counts
- **Campaign monitoring** — track follower growth across a roster of creators by re-running on a schedule and comparing exports
- **Fraud and impersonation checks** — confirm whether a handle exists and is verified before paying or partnering
- **Username availability sweeps** — bulk-check whether a set of handles is taken across all three platforms at once
- **Deleted account detection** — find which accounts in a historical dataset are gone

### How to use

1. Paste usernames or profile URLs into **Handles**, one per line
   - Bare usernames (`natgeo`, `@nasa`) are checked against the **Default platform**
   - Full profile URLs (`https://www.tiktok.com/@nasa`, `https://x.com/nasa`) are detected automatically
2. Pick the **Default platform** for bare usernames
3. Run the actor — results appear in the **Dataset** tab

Sort or filter the dataset by `status` to isolate the dead handles, or by `followerCount` to rank a roster.

### Output format

Each dataset record:

```json
{
  "inputHandle": "https://x.com/nasa",
  "platform": "x",
  "username": "NASA",
  "status": "active",
  "exists": true,
  "isPrivate": false,
  "isVerified": true,
  "userId": "11348282",
  "displayName": "NASA",
  "bio": "Making the seemingly impossible, possible. ✨",
  "followerCount": 92278246,
  "followingCount": 119,
  "postCount": 74335,
  "profileUrl": "https://x.com/NASA",
  "profilePicUrl": "https://pbs.twimg.com/profile_images/…",
  "externalUrl": "https://t.co/9NkQJKAVks",
  "checkedAt": "2026-08-14T00:26:41.484Z",
  "error": null
}
```

Export to JSON, CSV, Excel or Google Sheets directly from the Apify console.

### Notes

- Every handle produces a record, including ones that fail — a handle is never silently dropped from your export, so input and output row counts always line up.
- The `username` field returns what the platform reports today. If it differs from your `inputHandle`, the account has been renamed.
- Private accounts still return follower and post counts, since those are public on all three platforms even when the content is not.

# Actor input Schema

## `handles` (type: `array`):

Usernames or profile URLs to check, one per line. Bare usernames use the Default platform below; full profile URLs are detected automatically, so Instagram, TikTok and X can be mixed freely in one run.

## `platform` (type: `string`):

Which platform to check bare usernames against. Entries given as full profile URLs ignore this and use their own platform.

## `delayMs` (type: `integer`):

Optional pause between individual checks, in milliseconds. Leave at 0 for the fastest run.

## Actor input object example

```json
{
  "handles": [
    "natgeo",
    "https://www.tiktok.com/@nasa",
    "https://x.com/nasa"
  ],
  "platform": "instagram",
  "delayMs": 0
}
```

# Actor output Schema

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

One handle per record. Fields: inputHandle, platform, username, status (active/private/not\_found/error), exists, isPrivate, isVerified, userId, displayName, bio, followerCount, followingCount, postCount, profileUrl, profilePicUrl, externalUrl, checkedAt, error.

# 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 = {
    "handles": [
        "natgeo",
        "https://www.tiktok.com/@nasa",
        "https://x.com/nasa"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("seemuapps/social-handle-status-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 = { "handles": [
        "natgeo",
        "https://www.tiktok.com/@nasa",
        "https://x.com/nasa",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("seemuapps/social-handle-status-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 '{
  "handles": [
    "natgeo",
    "https://www.tiktok.com/@nasa",
    "https://x.com/nasa"
  ]
}' |
apify call seemuapps/social-handle-status-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,seemuapps/social-handle-status-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/wQPssZZzBa3ZPIdrk/builds/WhZUc8lHuOBkW6TWF/openapi.json
