# X (Twitter) User Search Scraper - Find Accounts by Keyword (`seemuapps/x-user-search-scraper`) Actor

Search X (Twitter) for user profiles matching any keyword or phrase and export bios, follower counts, and verification status to a dataset.

- **URL**: https://apify.com/seemuapps/x-user-search-scraper.md
- **Developed by:** [Andrew](https://apify.com/seemuapps) (community)
- **Categories:** Social media, Lead generation, Developer tools
- **Stats:** 4 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 user results

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

## X (Twitter) User Search Scraper - Find Accounts by Keyword

Search X (Twitter) for user profiles matching any keyword or phrase and export bios, follower counts, and verification status to a dataset. No login required.

### What you get

- Username, display name, user ID, bio, and location for each matching account
- Follower count, following count, tweet count, and media count
- Blue verification status and verified type
- Profile picture and cover photo URLs
- Pinned tweet IDs and account creation date
- Cursor-based pagination - fetch thousands of matching accounts across multiple runs

### Free tier vs. paid

Free runs are capped at **25 users per run**, up to **3 runs per day**, with a 30-minute wait between runs, to help cover data costs. Upgrade to any paid plan on the actor's pricing page to honor your `Max Users` setting in full with no wait.

### Use cases

- Lead generation - find prospects whose bio matches your target job title, industry, or niche
- Audience research - discover who is talking about a topic or product
- Influencer discovery - surface accounts in a niche by keyword before checking follower counts
- Competitor follower mining - search for keywords common among a competitor's audience
- Sales prospecting by bio keyword - e.g. "founder", "recruiter", "marketing agency"

### How to use

1. Enter a **Search query** - a keyword or phrase to match against usernames, display names, and bios
2. Set **Max Users** (default 100; 0 for unlimited)
3. Run the actor - one matching user per row in the **Dataset** tab
4. To fetch the next page, open the **Key-value store** tab → copy the `NEXT_PAGE_ID` value → paste it into **Page ID** on your next run

### Output format

One user per dataset row - perfect for direct CSV, Excel, or Google Sheets export:

```json
{
  "searchQuery": "startup founder",
  "username": "example",
  "userId": "123456789",
  "name": "Example User",
  "description": "Bio text…",
  "location": "San Francisco",
  "isBlueVerified": true,
  "followersCount": 12345,
  "followingCount": 678,
  "tweetsCount": 9999,
  "createdAt": "Mon Jan 01 12:00:00 +0000 2020",
  "profilePicture": "https://pbs.twimg.com/...",
  "profileUrl": "https://x.com/example"
}
```

### Pagination

Each run returns up to **Max Users**. If more matching accounts exist, the actor saves a resume cursor to the default **Key-value store** under the key `NEXT_PAGE_ID`.

1. Open the **Key-value store** tab on the run page
2. Copy the value of `NEXT_PAGE_ID`
3. Start a new run with the same **Search query** and paste the cursor into **Page ID**

When `NEXT_PAGE_ID` is `null`, the search results are fully exhausted.

### Input options

| Field | Type | Description |
|-------|------|-------------|
| Search query | string | Keyword or phrase to match against usernames, names, and bios (required) |
| Max Users | integer | Cap on results - default 100, 0 for unlimited |
| Page ID | string | `NEXT_PAGE_ID` from the previous run's Key-value store |

### Related X (Twitter) actors

Part of a complete X (Twitter) toolkit - explore the rest of the suite:

- [X (Twitter) Profile Scraper](https://apify.com/seemuapps/x-profile-scraper) - Public profile data - bio, counts, links
- [X (Twitter) User Tweets Scraper](https://apify.com/seemuapps/x-user-tweets-by-username) - Full timeline of any account by username
- [X (Twitter) Tweet Scraper](https://apify.com/seemuapps/x-tweet-scraper) - Search and export tweets by query, hashtag, user
- [X (Twitter) Tweet Replies Scraper](https://apify.com/seemuapps/x-tweet-replies-scraper) - Every reply under a post for sentiment analysis
- [X (Twitter) Quote Tweets Scraper](https://apify.com/seemuapps/x-quote-tweets-scraper) - Every quote tweet of a post, with engagement
- [X (Twitter) Followers & Following Scraper](https://apify.com/seemuapps/x-followers-following-scraper) - Full followers and following lists, no login
- [X (Twitter) List Members Scraper](https://apify.com/seemuapps/x-list-members-scraper) - Members or followers of any public list
- [X (Twitter) Active Hours Analyzer](https://apify.com/seemuapps/x-active-hours-analyzer) - Posting heatmap, peak hours, and time zone
- [X (Twitter) Retweeters Scraper](https://apify.com/seemuapps/x-tweet-retweeters-scraper) - Find every account that retweeted a post
- [X (Twitter) User Mentions Scraper](https://apify.com/seemuapps/x-user-mentions-scraper) - Brand and keyword monitoring across mentions
- [X (Twitter) Trends Scraper](https://apify.com/seemuapps/x-trends-scraper) - Trending topics and hashtags by location
- [X (Twitter) Article to Markdown Scraper](https://apify.com/seemuapps/x-article-to-markdown-scraper) - Long form Articles as clean Markdown
- [X (Twitter) MCP Server](https://apify.com/seemuapps/x-mcp) - All X tools for AI agents via MCP

# Actor input Schema

## `query` (type: `string`):

Keyword or phrase to search for across X (Twitter) usernames, display names, and bios.

## `maxItems` (type: `integer`):

Maximum number of matching users to return. Set 0 for unlimited.

## `pageId` (type: `string`):

Optional. Paste NEXT\_PAGE\_ID from a previous run's Key-value store to resume from where that run left off.

## Actor input object example

```json
{
  "query": "marketing agency founder",
  "maxItems": 100
}
```

# Actor output Schema

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

One row per matching user: username, userId, name, description, location, isBlueVerified, follower/following/tweet counts, profile URLs, etc.

## `nextPageId` (type: `string`):

NEXT\_PAGE\_ID record in the default key-value store. Paste into Page ID on the next run to resume; null when the list is exhausted.

# 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 = {
    "query": "marketing agency founder"
};

// Run the Actor and wait for it to finish
const run = await client.actor("seemuapps/x-user-search-scraper").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 = { "query": "marketing agency founder" }

# Run the Actor and wait for it to finish
run = client.actor("seemuapps/x-user-search-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "query": "marketing agency founder"
}' |
apify call seemuapps/x-user-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=seemuapps/x-user-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/QQzKczWq0UlvJnNye/builds/ncbI3IrQjA7WlIXQw/openapi.json
