# Telegram Phone Number Scraper - Verified Numbers (`scrapido/telegram-phone-number-scraper`) Actor

📞 Telegram Phone Number Scraper returns validated channel and group numbers from keyword and location search. ✅ Country code, line type and carrier per record. 📢 Built for crypto marketing & community outreach.

- **URL**: https://apify.com/scrapido/telegram-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

### Telegram Phone Number Scraper

**Telegram Phone Number Scraper** automates time-consuming manual research by helping you collect phone numbers from Telegram profiles, bios, and post content using your own keywords and country targeting. It’s an ideal **Telegram phone number scraper** for sales teams, recruiters, marketers, and researchers who need faster **Telegram contact extraction** and reliable bulk lists for outreach and analysis.

***

### What is Telegram Phone Number Scraper? 🔍

**Telegram Phone Number Scraper** is an Apify automation actor designed to help you extract phone numbers from Telegram bios, profiles, and post content at scale. Whether you’re a sales professional, recruiter, marketer, or data researcher, you can use this automated **Telegram scraping** workflow as a **Telegram contact scraper** to build leads faster than manual browsing. It also acts as a practical **Telegram OSINT phone numbers** tool when you need phone-based enrichment. Use it to run **Telegram phone number scraper** jobs with keyword sets and country filters that match your target audience.

***

### What Does Telegram Phone Number Scraper Do? ⚙️

Telegram Phone Number Scraper takes your input (keywords, optional location, and a targeted country code), searches publicly available Telegram content, and exports structured results into a dataset you can use immediately. The result is a clean set of JSON records you can integrate into lead workflows, segmentation, and research.

- 🔍 **Searches** Telegram using your keywords and country targeting to find relevant profiles and public posts
- 📞 **Extracts** phone numbers from publicly listed Telegram bios, profiles, and post content
- 🌍 **Filters** results by the selected country (dial code / country setting) and optionally by location
- 📊 **Structures** output as consistent JSON records (keyword, profile metadata, and phone details)
- 💾 **Exports** data from the Apify dataset tab as JSON for downstream processing

***

### What Would Results from Telegram Phone Number Scraper Look Like? 👀

You’ll get a dataset of phone number records like this (one JSON object per extracted phone number):

```json
{
  "keyword": "marketing",
  "title": "Marketing Leads UK",
  "description": "Top agent | DM for collaborations | +44 20 7946 0958",
  "url": "https://t.me/MarketingLeadsUK",
  "phone_number": "+442079460958",
  "country": "United Kingdom",
  "dial_code": "+44"
}
```

After the run, export your dataset (from the dataset tab) for CRM import, outreach workflows, or analysis.

***

### Capabilities of Telegram Phone Number Scraper 🛠️

| Capability | What It Means for You |
|---|---|
| ✅ **Keyword Search** | Target Telegram profiles and public posts matching your exact keywords (useful for Telegram contact list harvesting and Telegram data mining) |
| ✅ **Location Filter** | Narrow results to a specific place (city/region/country wording) while keeping global search possible by leaving it empty |
| ✅ **Country Targeting** | Focus phone extraction on a chosen country (selected via the **Country** input) so your output aligns with your outreach region |
| ✅ **Max Phone Numbers (Result Cap)** | Stop automatically after collecting a set number of phone numbers, which helps control run time and compute usage |
| ✅ **Built-in Proxy Support** | Includes proxy support to help keep large scraping tasks stable and resilient |
| ✅ **Bulk Extraction Friendly** | Designed for larger scraping tasks (use it for bulk Telegram number extraction and repeated runs) |
| ✅ **Structured Dataset Output** | Results are stored as dataset rows with consistent fields for easy filtering and export |
| ✅ **No-Code Run Experience** | Configure keywords and country in Apify Console and run—no custom code required |

***

### Launch Your First Telegram Phone Number Scraper Task 🚀

#### Required Input Fields

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | array | ✅ Yes | `["marketing","founder"]` | Keywords used to find relevant Telegram profiles, bios, and post content |
| `location` | string | No | `""` | Optional geo filter like “London” or “California”. Leave empty to search globally |
| `country` | string | ✅ Yes | `United Kingdom (+44)` | Country selection used to target phone numbers by dial code |
| `maxPhoneNumbers` | integer | No | `20` | Stop after this many phone numbers are found (higher values can extend run time) |

**Step-by-step launch guide:**

1. **Open** the actor in Apify Console
2. **Add keywords** in the `keywords` field (start with something specific like an industry + role)
3. **Pick a country** in `country` to target the right dial code
4. **Optionally set location** if you want tighter Telegram contact extraction by place
5. **Set `maxPhoneNumbers`** to control how many results you want for this run
6. **Click Start** and review progress in the logs
7. **Download** results from the **Dataset** tab (clean JSON records)

***

### Solving Real Problems with Telegram Phone Number Scraper 💼

This Telegram phone number scraper is built for real workflows where time matters:

- 🎯 **Lead generation at scale** — collect phone-based leads faster than manual Telegram contact extraction
- 📣 **Audience segmentation** — bucket results by keyword and country for outreach targeting and Telegram user identification
- 🔬 **Market and OSINT research** — enrich datasets with Telegram member scraping signals and Telegram data mining inputs
- ⚙️ **Automated pipelines** — run scheduled Telegram user data scraping jobs and keep your lists updated
- 📞 **Bulk Telegram number extraction** — cap results with `maxPhoneNumbers` to match your campaign budget and timeline

***

### What Sets Telegram Phone Number Scraper Apart? 🏆

- 🎯 **Targeted by design** — you control keywords plus country targeting for more relevant Telegram phone number lookup results
- 🧩 **Clean, structured output** — each record includes keyword, profile metadata, and phone details for easy downstream use
- 🏗️ **Bulk-friendly runs** — built to support larger scraping tasks while staying practical to operate
- 🤝 **Support available** — for help and feedback, contact <scrapidocontact@gmail.com>

***

### Search Limits and Capacity 📈

- Use `maxPhoneNumbers` to cap results for the run (minimum 1, maximum 10000).
- Actual volume depends on how many Telegram profiles/public posts match your `keywords` and chosen `country`.
- For larger tasks, increase run time in **Run Options** (the input guidance notes default timeout is 3600s / 1hr).
- Dataset size isn’t limited—you can export as much as you collect in the dataset tab.

***

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

Telegram Phone Number Scraper collects information only from **publicly available sources** (publicly listed Telegram bios, profiles, and post content). It does not access private profiles or restricted data. Users must comply with applicable laws and each platform’s Terms of Service, including privacy and anti-spam requirements. For compliance or data-removal questions, contact <scrapidocontact@gmail.com>.

***

### Ending Note ✉️

Stop losing hours to manual Telegram number enumeration. **Telegram Phone Number Scraper** gives you a structured dataset of phone numbers from public Telegram sources using your keywords and country targeting—ready for analysis, enrichment, and outreach workflows.

***

### FAQ — Telegram Phone Number Scraper ❓

#### How Does the Telegram Phone Number Scraper Work?

You provide keywords (and choose a target country), and the actor scrapes publicly available Telegram content for matching profiles and public bios/posts. It extracts phone numbers and saves each match as a dataset row with fields like `keyword`, `title`, `description`, `url`, `phone_number`, `country`, and `dial_code`.

#### What Types of Telegram Profiles Can I Target?

The actor is intended to extract phone numbers from Telegram profiles, bios, and post content when phone numbers are publicly listed. Results are stored only for extracted phone numbers that match your country targeting.

#### How Did the Telegram Phone Number Scraper Perform in Our Tests?

Performance and yield depend on keyword specificity and how often phone numbers are publicly shown for the targeted country. If your results are fewer than expected, the actor guidance recommends trying broader keywords or different country settings.

#### Why Scrape Telegram Instead of Building a List Manually?

Telegram phone number scraper runs can save significant time compared to manual browsing. It also produces clean, consistent dataset output you can export and use in CRM and outreach workflows.

#### How Much Does Telegram Phone Number Scraper Cost?

Pricing depends on your Apify plan and how the actor is executed in your account. If you’re on a free plan, the actor enforces a maximum of 100 phone numbers. You can use `maxPhoneNumbers` to control the size of each run.

#### Top Benefits of the Telegram Phone Number Scraper

Key benefits include automated bulk extraction, keyword- and country-targeted phone number results, structured dataset output, and practical controls like `maxPhoneNumbers` to manage run scope.

#### What Are the Disadvantages of Scraping Telegram?

Not every Telegram profile or public post includes a phone number, so yield can vary. If your results are below expectations, try broader keywords and adjust country targeting to find more publicly listed contacts.

#### How to Choose the Best Telegram Phone Number Scraper

For Telegram contact list harvesting use cases, focus on targeting controls (keywords, country), structured dataset output for easy export, and stable execution. For questions about setup or improvements, reach out at <scrapidocontact@gmail.com>.

***

### 🆘 Support & Feedback

Need help running Telegram Phone Number Scraper, improving your keywords, or troubleshooting results? Contact 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": [
    "contact",
    "channel"
  ],
  "country": "India (+91)",
  "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": [
        "contact",
        "channel"
    ],
    "phoneTypes": [
        "Mobile"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/telegram-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": [
        "contact",
        "channel",
    ],
    "phoneTypes": ["Mobile"],
}

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/telegram-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/Qd5aukWCKfuTPAD1l/builds/YeGnwq1KlN0SfH1nq/openapi.json
