# About.Me Phone Number Scraper - Carrier & Line Type Lookup (`parse-point/aboutme-phone-number-scraper-smart-and-efficient`) Actor

📞 About.me Phone Number Scraper extracts public numbers by keyword and location. ✅ Validates every number, detects line type (mobile, landline, VoIP) and returns carrier and country data. 🎯 Accurate About.me phone extraction.

- **URL**: https://apify.com/parse-point/aboutme-phone-number-scraper-smart-and-efficient.md
- **Developed by:** [Parse Point](https://apify.com/parse-point) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 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

### About.Me Phone Number Scraper 🔍

**About.Me Phone Number Scraper** helps marketers, recruiters, sales pros, and researchers discover phone numbers from publicly available About.Me profiles faster than manual searching. It supports About.Me data extraction with keyword targeting, location filtering, and country selection, making it a practical contact information scraper for lead generation, phone lookup, and public profile scraping at scale. 📞

### 🌟 Key Features of About.Me Phone Number Scraper

| Feature | Benefit |
|---|---|
| ✅ **Targeted Keyword Search** | Uses your keywords to find relevant About.Me profiles and surface better-fit contacts. |
| ✅ **Location Filtering** | Narrow results by location when you want more focused About.Me leads. |
| ✅ **Country Targeting** | Select the country to improve phone number extraction for your market. |
| ✅ **Bulk Extraction** | Designed for larger runs, so you can collect many results without doing it manually. |
| ✅ **Max Results Control** | Stop after a set number of phone numbers to manage run size and duration. |
| ✅ **Built-in Proxy Support** | Includes proxy support for more reliable scraping of public web data. |
| ✅ **Progress Saving** | Saves progress during a run so it can continue from where it left off. |

### 📥 Input — About.Me Phone Number Scraper Parameters

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | Yes | `["marketing","founder"]` | Search terms used to find relevant About.Me profiles. |
| `location` | String | No | `""` | Optional location filter such as a city or region. Leave empty for a broader search. |
| `country` | String | Yes | `United Kingdom (+44)` | Country targeting used to focus phone number extraction on a specific country. |
| `maxPhoneNumbers` | Integer | No | `20` | Stops the run after this many phone numbers are found. Higher values may take longer. |

### 📤 Output — What About.Me Phone Number Scraper Returns

The actor saves each result as a JSON record in your Apify dataset. 📦

```json
{
  "keyword": "marketing",
  "title": "Sarah Thompson",
  "description": "Brand strategist and digital consultant based in Manchester. Contact for partnerships and media enquiries.",
  "url": "https://about.me/sarahthompson",
  "phone_number": "+44 7700 900123",
  "country": "United Kingdom",
  "dial_code": "+44"
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The keyword that led to this result. |
| `title` | Title | text | The page title associated with the About.Me profile. |
| `description` | Description | text | The visible profile text captured for the result. |
| `url` | Url | link | Direct link to the About.Me profile. |
| `phone_number` | Phone Number | text | The phone number found in publicly available content. |
| `country` | Country | text | The selected country associated with the result. |
| `dial_code` | Dial Code | text | The dialing code for the selected country. |

### 💻 How to Use About.Me Phone Number Scraper — Step-by-Step

1. **Open the Actor** — Find **About.Me Phone Number Scraper** on Apify and open the input form.
2. **Enter Keywords** — Add the terms you want to use for About.Me contact discovery.
3. **Choose a Country** — Select the country that best matches your target audience.
4. **Set a Location** *(optional)* — Narrow the search with a city or region if needed.
5. **Set Max Phone Numbers** *(optional)* — Limit the run if you only need a specific number of results.
6. **Run the Actor** — Start the scrape and monitor progress in the logs.
7. **Export Results** — Download the dataset and use the structured phone number extraction output in your workflow.

### 💡 Best Use Cases for About.Me Phone Number Scraper

- 🎯 **Lead Generation** — Build targeted About.Me leads for outreach campaigns.
- 📣 **Contact Discovery** — Find public phone numbers for sales, partnerships, or research.
- 🤝 **Recruitment** — Locate professional contact details from public profiles.
- 🔬 **Market Research** — Analyze public profile data across keywords and countries.
- 📊 **CRM Enrichment** — Add public phone numbers to existing contact records.

### Disclaimer

This actor only accesses publicly available data on About.Me. It does not access private profiles, authenticated content, or password-protected pages. Users are responsible for complying with applicable laws, platform terms, and anti-spam rules when using this web scraping tool. It is intended for legitimate research, lead generation, and marketing use cases only. For data-removal requests, contact 📧 <helloparsepoint@gmail.com>.

### 🆘 Support & Feedback

Have a question or found an issue with the **About.Me Phone Number Scraper**? We're here to help.

- 🐞 **Bug Reports:** Send us the details so we can investigate
- ✨ **Custom Solutions & Feature Requests:** Share your use case or improvement idea
- 📧 **Email:** <helloparsepoint@gmail.com>

Your feedback helps improve the About.Me scraper for everyone.

### Complete number formats

| Field | Meaning |
| --- | --- |
| `phoneRaw` | The exact text the number was read from, before any normalisation |
| `phoneRfc3966` | The `tel:` URI form some VoIP systems expect (optional) |
| `phoneExtension` | The internal extension, when the listing published one |

`phoneRaw` is the honest column: it is never derived, so it stays trustworthy
even when parsing of everything else goes wrong, and it lets you check a
suspicious row without reopening the source page.

### Run Memory

**Skip keywords already scraped in a previous run** - the actor keeps a
persistent record of every keyword it finishes, in a named key-value store that
survives between runs. A repeat run then drops the keywords it has already
covered, so a scheduled job only pays for new ground. The same keyword aimed at
a different country or location counts as new work.

**Reset keyword history** - wipe that record before the run starts.

**Max numbers per keyword** - cap how many numbers any single keyword may
produce before moving on. `0` means no per-keyword limit.

Two columns come out of the same memory:

| Field | Meaning |
| --- | --- |
| `firstSeenAt` | The date this number was first delivered to you, across all runs |
| `isNewSinceLastRun` | `false` for a number an earlier run already returned |

These are only informative because repeats are still delivered rather than
dropped - a scraper that removes duplicates before delivery would mark every
row new and tell you nothing.

# 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.

## `onlyValidNumbers` (type: `boolean`):

Keep only numbers libphonenumber confirms are valid for their country. Invalid numbers are dropped before you are charged for them.

## `lineTypeFilter` (type: `string`):

Filter by line type. 'Exclude toll-free & premium' drops call-centre and billed-caller numbers. 'Mobile only' also keeps US/Canada numbers that libphonenumber can only describe as 'landline or mobile' - see lineTypeCertain in the output.

## `includeNumberMetadata` (type: `boolean`):

Add numberRegion, timezone and localTimeNow so you know where the number is and whether it is a reasonable hour to call.

## `includeCarrier` (type: `boolean`):

Add originalCarrier - the network the number range was issued to. A ported number still reports its original carrier, and no carrier data exists for US/Canada.

## `skipDuplicateKeywords` (type: `boolean`):

Remember every keyword this actor finishes and skip it next time. Ideal for a scheduled run over a fixed keyword list - you only pay for ground you have not covered. The same keyword aimed at a different country or location counts as new work, not a duplicate.

## `resetKeywordHistory` (type: `boolean`):

Clear the remembered keywords before this run starts, so everything is treated as new again. Use after changing your target list.

## `maxNumbersPerKeyword` (type: `integer`):

Stop collecting for a keyword once it has produced this many numbers, then move on to the next one. Keeps one broad term from consuming the whole run. Leave at 0 for no per-keyword limit.

## `includeDialerUri` (type: `boolean`):

Add the tel: URI form some VoIP and telephony systems expect. It duplicates information already in the other number columns - keep it only if your phone system asks for this exact format.

## Actor input object example

```json
{
  "keywords": [
    "coach",
    "consultant"
  ],
  "country": "United States (+1)",
  "maxPhoneNumbers": 20,
  "onlyValidNumbers": true,
  "lineTypeFilter": "exclude_junk",
  "includeNumberMetadata": true,
  "includeCarrier": false,
  "skipDuplicateKeywords": false,
  "resetKeywordHistory": false,
  "maxNumbersPerKeyword": 0,
  "includeDialerUri": 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": [
        "coach",
        "consultant"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("parse-point/aboutme-phone-number-scraper-smart-and-efficient").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": [
        "coach",
        "consultant",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("parse-point/aboutme-phone-number-scraper-smart-and-efficient").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": [
    "coach",
    "consultant"
  ]
}' |
apify call parse-point/aboutme-phone-number-scraper-smart-and-efficient --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parse-point/aboutme-phone-number-scraper-smart-and-efficient"
        }
    }
}

```

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/HFWLMx8oIs7Qi5TwL/builds/2OE6dzb95lNguUNqo/openapi.json
