# Twitter Phone Number Scraper - Keyword Search, Verified Numbers (`scrapido/twitter-phone-number-scraper`) Actor

📞 Twitter Phone Number Scraper finds public contact numbers via keyword and location search. ✅ Validated results with country code, line type and carrier data. 📢 Built for PR outreach & social selling teams.

- **URL**: https://apify.com/scrapido/twitter-phone-number-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (community)
- **Categories:** Lead generation, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

### Twitter Phone Number Scraper

**Twitter Phone Number Scraper** helps you extract phone numbers from public Twitter profiles, bios, and post content using your keywords and country targeting—ideal for lead generation and social media phone scraping. It’s a fast **Twitter phone number extractor** for automating Twitter contact discovery at scale, powered by your filters and limits.

***

### What Does Twitter Phone Number Scraper Do? 🤖

**Twitter Phone Number Scraper** scrapes phone numbers from Twitter profiles, bios, and post content. During a run, it uses your **keywords** and optional **location** to target relevant profiles, then filters extracted numbers by the selected **country** to focus on the dial code region you care about. The output is collected into an Apify dataset with structured fields (including the profile link, extracted `phone_number`, and the matching `dial_code`). If you want to extract phone numbers from Twitter profiles without manual review, this actor streamlines Twitter data extraction so you can build leads faster.

***

### What Can Twitter Phone Number Scraper Extract? 📊

The actor collects phone number contacts it finds in Twitter profile information, along with the context you need to validate and segment the results.

| Data Type | Field Name | Description |
|---|---|---|
| Contact | `phone_number` | The extracted phone number found in the Twitter content |
| Identity | `title` | Profile name or business handle shown in the result |
| Context | `description` | Bio, summary, or profile-related text where the phone number appeared |
| Discovery | `keyword` | The keyword you provided that surfaced the profile |
| Navigation | `url` | Direct link to the Twitter profile page |

***

#### Key Features of Twitter Phone Number Scraper ⚡

- ✅ **Keyword-driven discovery:** Targets Twitter leads scraping using your provided search terms to surface relevant profiles.
- 🌍 **Location targeting:** Adds a location filter (like a city or region) to narrow results to where your audience is.
- 📞 **Country code focus:** Uses your chosen country selection to target phone numbers for a specific dialing region.
- 🔄 **Proxy-ready & reliable:** Built with Apify Proxy support to improve consistency for larger extraction tasks.
- 📊 **Structured dataset output:** Every result is saved as a labeled record you can export and analyze.
- 💾 **Incremental saving:** Results are pushed to the dataset during the run for better resilience.
- ⏱️ **Run-time controls:** Use the `maxPhoneNumbers` limit to cap the number of phone numbers collected.
- 🧾 **Clean deduplication:** Keeps results unique using phone-number normalization so you don’t re-collect the same contact repeatedly.

***

### How to Use Twitter Phone Number Scraper 🚀

1. **Find the Actor** — Search **Twitter Phone Number Scraper** on [Apify Store](https://apify.com/store)
2. **Open Input** — In Apify Console, go to the **Input** tab
3. **Add `keywords`** — Enter phrases you want to target on Twitter (e.g., roles or interests)
4. **Pick `country`** — Select the country dial code region you want phone numbers from
5. **(Optional) Set `location`** — Add a city/state/region filter or leave it empty for global targeting
6. **Set `maxPhoneNumbers`** — Control how many results you want to collect (default is 20)
7. **Run & export** — Monitor progress in logs and download from the **Dataset** tab

*No coding required. This is a practical Twitter public data collection workflow for marketers and researchers.*

***

### Twitter Phone Number Scraper Output Format 📦

The actor saves results to your Apify dataset in structured JSON format, ready for export or downstream workflows.

#### ⬇️ Input Example

```json
{
  "keywords": [
    "marketing",
    "founder"
  ],
  "location": "London",
  "country": "United Kingdom (+44)",
  "maxPhoneNumbers": 20
}
```

#### ⬆️ Output Example

```json
[
  {
    "keyword": "marketing",
    "title": "Emily Carter",
    "description": "Growth marketer. Workshops & consulting. Contact: https://twitter.com/emilycarter",
    "url": "https://twitter.com/emilycarter",
    "phone_number": "+447700900123",
    "country": "United Kingdom",
    "dial_code": "+44"
  }
]
```

#### Output Fields

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | Search term used to surface this profile |
| `title` | Title | text | Profile name or business handle |
| `description` | Description | text | Twitter bio/summary text associated with the result |
| `url` | Url | link | Link to the Twitter profile page |
| `phone_number` | Phone Number | text | Extracted phone number value |
| `country` | Country | text | Target country name used for extraction |
| `dial_code` | Dial Code | text | Dial code for the selected target country |

***

### 🎯 Use Cases of Twitter Phone Number Scraper

- **Lead generation Twitter workflows:** Quickly build social media phone scraping lists by targeting specific keyword themes and a dial-code region.
- **Targeted outreach lists:** Use Twitter account scraping results to enrich prospecting pools with phone contacts alongside context (keyword + profile link).
- **OSINT phone number lookup research:** Collect publicly available phone information for investigative or research projects with reproducible filters.
- **Market and niche profiling:** Identify where certain roles or industries cluster by keyword and location, then follow up using collected contacts.
- **Bulk enrichment:** Export results and merge them into CRM or spreadsheets for segmentation and prioritization.

***

### How Much Will Twitter Phone Number Scraper Cost You? 💰

Pricing in Apify is typically based on pay-per-result/event charging, meaning you’re charged for the results the actor outputs (phone numbers) rather than just for starting a run. To keep spending predictable, use `maxPhoneNumbers` to cap collection per run. If you’re testing, start with a smaller limit (default is 20) and increase only when you’re happy with yield.

***

### Is It Legal to Scrape Twitter? ⚖️

The actor collects data from **publicly available sources** and does not access private or password-protected content. While scraping public web data is commonly used for research and outreach, legality can depend on your jurisdiction and the platform’s Terms of Service. You’re responsible for compliance with applicable privacy and anti-spam regulations (for example, GDPR/CCPA) and for using extracted phone numbers responsibly. If you have concerns or need help regarding data removal, contact <scrapidocontact@gmail.com>.

***

### Twitter Phone Number Scraper Input Parameters 📋

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["marketing","founder"]` | Enter keywords to target relevant Twitter profiles for extraction |
| `location` | String | No | `""` | Filter by location (e.g., “London”, “California”). Leave empty for global search |
| `country` | String | ✅ Yes | `United Kingdom (+44)` | Select the country to target for phone numbers (dial code region) |
| `maxPhoneNumbers` | Integer | No | `20` | Stop scraping after this many phone numbers are found. Higher limits extend the scraping duration |

***

### During the Actor Run ⏱️

You’ll see live progress in the Apify Console as it processes your provided keywords. Results are pushed incrementally to the dataset, so you can check the **Dataset** tab while the run is still active. If fewer results than expected appear, try broader keywords or adjust the country/location targeting.

***

### Final Note ✉️

Start extracting Twitter phone numbers in minutes—configure keywords, pick a country, set a limit, and export your dataset. Need help or a custom workflow? Email <scrapidocontact@gmail.com>.

***

### FAQ — Twitter Phone Number Scraper ❓

#### How does the Twitter Phone Number Scraper find phone numbers?

The actor uses your provided `keywords` (and optional `location`) to target relevant Twitter profiles, bios, and post content, then extracts phone numbers that are publicly present in that content. Results are filtered based on your selected `country` dialing region.

#### What types of Twitter profiles can I scrape?

You can scrape information from public Twitter profiles where phone numbers are visibly present in bios, profiles, or post content. If a profile doesn’t provide publicly listed phone number data, it won’t contribute results.

#### What did your tests show about the Twitter Phone Number Scraper?

Result volume depends on how many profiles matching your keywords contain public phone numbers in the targeted country region. Using more specific keywords and selecting the right country dial code generally improves relevance and yield.

#### Why scrape Twitter for phone numbers?

Twitter can be a strong source of publicly listed professional contact details. Instead of manually checking profiles, this actor automates Twitter contact discovery by applying your keyword and country targeting and exporting structured results.

#### How much does it cost to use the Twitter Phone Number Scraper?

Apify pricing is result-based, so costs scale with the number of extracted phone numbers produced. You can control this directly by setting `maxPhoneNumbers` to cap the number of results per run.

#### How does the Twitter Phone Number Scraper help my business?

It helps you build a cleaner outreach list faster by combining extracted phone numbers with context like the matching `keyword`, `title`, and the profile `url`. That structure makes it easier to import into CRMs and prioritize leads.

#### What are the challenges of using a Twitter phone number scraper?

Not every Twitter profile includes a publicly visible phone number, so yields can vary by niche and keyword selection. If results are fewer than expected, broadening keywords or changing the country selection usually helps.

#### How do I choose the right Twitter phone number scraper settings?

Start with a focused keyword list that matches your audience, then select the correct `country` dial code. If you’re targeting a specific market, add a `location`. Finally, use `maxPhoneNumbers` to keep test runs controlled before scaling up.

***

### 🆘 Support & Feedback

Have feedback or need support for the Twitter Phone Number Scraper?

You can reach the team at <scrapidocontact@gmail.com>.

### Multiple Phone Type

**Phone Types** replaces the old single Number Type choice: select as many kinds
of line as you want and the run collects all of them.

| Type | Kept when the number is |
| --- | --- |
| Mobile | A confirmed mobile |
| Landline | A confirmed fixed line |
| Toll-Free | A freephone number |
| VoIP | An internet-telephony number |
| Premium-Rate | A premium-rate number |
| Shared-Cost | A shared-cost number |

Leave it empty for every type. Each number is checked against its *real* line
type before being kept, so the filter is enforced rather than merely requested.
Numbers on ranges where mobile and landline genuinely cannot be told apart (the
US, Canada and Mexico) are kept rather than silently dropped - discarding them
would quietly lose good leads.

### Outreach links

| Field | Meaning |
| --- | --- |
| `telLink` | A clickable `tel:` link, so a row can be dialled straight from a spreadsheet or CRM |
| `whatsappLink` | A `wa.me` chat link, or empty for a confirmed landline or a number that failed validation |
| `whatsappCapable` | Whether the number is on a line WhatsApp can run on |

`whatsappCapable` is a plain yes/no you can filter on. It never claims the
person actually uses WhatsApp - only that the number is of a kind that could.
Switch the links off with **Include WhatsApp links**; the capability flag is
still reported.

# Actor input Schema

## `keywords` (type: `array`):

Enter keywords to search for (e.g., 'Target Keyword').

## `location` (type: `string`):

Filter by location (e.g., 'London', 'California'). Leave empty for global search.

## `country` (type: `string`):

Select the country to target for phone numbers.

## `maxPhoneNumbers` (type: `integer`):

Stop scraping after this many phone numbers are found. Setting a higher limit extends the scraping duration.

## `numberType` (type: `string`):

Restrict results to a specific line type, classified offline via libphonenumber. Any keeps every valid match.

## `phoneTypes` (type: `array`):

Which kinds of line to collect. Pick as many as you like - each number is checked against its real line type before it is kept. Leave empty for every type. Numbers on ranges where mobile and landline cannot be told apart (the US, Canada and Mexico) are always kept rather than silently dropped.

## `includeWhatsappLinks` (type: `boolean`):

Add a ready-made wa.me chat link for numbers on a line WhatsApp can run on. The link means the number is in a form WhatsApp accepts - not proof that an account exists.

## Actor input object example

```json
{
  "keywords": [
    "marketing",
    "founder"
  ],
  "country": "United Kingdom (+44)",
  "maxPhoneNumbers": 20,
  "numberType": "Any",
  "phoneTypes": [
    "Mobile"
  ],
  "includeWhatsappLinks": true
}
```

# Actor output Schema

## `dataset` (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 = {
    "keywords": [
        "marketing",
        "founder"
    ],
    "phoneTypes": [
        "Mobile"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/twitter-phone-number-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 = {
    "keywords": [
        "marketing",
        "founder",
    ],
    "phoneTypes": ["Mobile"],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapido/twitter-phone-number-scraper").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 '{
  "keywords": [
    "marketing",
    "founder"
  ],
  "phoneTypes": [
    "Mobile"
  ]
}' |
apify call scrapido/twitter-phone-number-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/twitter-phone-number-scraper"
        }
    }
}

```

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/Sw7LozYjGE1EyX9je/builds/LdltDGa6DI0QzmnwD/openapi.json
