# WhatsApp Number Validator (Single and Bulk) (`api_factory/whatsapp-number-validator-single-and-bulk`) Actor

📞 WhatsApp: +447984004914
📧 E-mail: contact@apifactory.pro

Instantly check and validate WhatsApp phone numbers programmatically. Verify active accounts in bulk, clean lead lists, and prevent fraud.

Fast, accurate, and built for seamless integration into your CRMs, apps, and automated workflows.

- **URL**: https://apify.com/api\_factory/whatsapp-number-validator-single-and-bulk.md
- **Developed by:** [Michael Hunter](https://apify.com/api_factory) (community)
- **Categories:** Lead generation, Integrations, Other
- **Stats:** 1,110 total users, 211 monthly users, 100.0% runs succeeded, 7 bookmarks
- **User rating**: 3.27 out of 5 stars

## Pricing

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

## WhatsApp Number Validator

Check whether phone numbers are registered on WhatsApp.

The Actor supports both **single-number validation** and **bulk validation**, making it suitable for CRM cleaning, lead validation, contact-list verification, and messaging workflows.

🚀 NEED **BULK VALIDATION**? Visit https://apifactory.pro/whatsapp-number-validator.aspx

### Features

- Validate whether a phone number is registered on WhatsApp
- Single-number validation
- Bulk validation
- Fast real-time API through Apify Standby
- International phone number support
- Simple JSON input and output
- Suitable for Make, Zapier, n8n, custom applications, and other API integrations

### Single number validation

Use the `/validate` endpoint.

#### Endpoint

```text
POST /validate
```

#### Request

```json
{
  "phone_number": "447984004914"
}
```

Phone numbers should be provided in international format. The leading `+` is optional.

#### Example response

Registered number:

```json
{
  "phone": "+447984004914",
  "hasWhatsapp": true,
  "status": "valid"
}
```

Unregistered number:

```json
{
  "phone": "+447984004914",
  "hasWhatsapp": false,
  "status": "invalid"
}
```

### Bulk validation

Use the `/bulk` endpoint to validate multiple phone numbers in one request.

#### Endpoint

```text
POST /bulk
```

#### Request

```json
{
  "phone_numbers": [
    "447748188019",
    "447999999999",
    "447999999977"
  ]
}
```

#### Example response

```json
[
  {
    "phone_number": "447748188019",
    "status": "invalid"
  },
  {
    "phone_number": "447999999999",
    "status": "invalid"
  },
  {
    "phone_number": "447999999977",
    "status": "valid"
  }
]
```

Each phone number returned by the bulk endpoint counts as one validation result.

### Calling the API

This Actor supports Apify Standby, so requests can be processed as a real-time API without waiting for a new Actor run to start for every lookup.

#### Single validation with cURL

```bash
curl -X POST \
  "https://api-factory--whatsapp-number-validator.apify.actor/validate" \
  -H "Authorization: Bearer YOUR_APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "447984004914"
  }'
```

#### Bulk validation with cURL

```bash
curl -X POST \
  "https://api-factory--whatsapp-number-validator.apify.actor/bulk" \
  -H "Authorization: Bearer YOUR_APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_numbers": [
      "447748188019",
      "447999999999",
      "447999999977"
    ]
  }'
```

Replace `YOUR_APIFY_API_TOKEN` with your Apify API token.

You can also explore and test the available API methods from the Actor's **Endpoints** tab in Apify.

### Running from the Apify Console

You can also run the Actor normally from the Apify Console.

Enter a phone number:

```text
447984004914
```

and start the Actor.

The validation result will be available in the Actor dataset.

### Result values

| Status | Meaning |
|---|---|
| `valid` | The phone number is registered on WhatsApp |
| `invalid` | The phone number is not registered on WhatsApp |
| `error` | The validation could not be completed |

### Pricing

This Actor uses pay-per-result pricing.

For bulk requests, **each phone number validated counts as one result**, rather than the whole bulk request counting as a single result.

See the Actor's current Apify pricing section for the latest price per result.

Free Apify accounts may be subject to additional usage limits.

### Common use cases

- CRM contact cleaning
- Lead validation
- Checking WhatsApp availability before messaging
- Customer database verification
- Reducing failed WhatsApp delivery attempts
- Contact-list enrichment
- Automated Make, Zapier, n8n, and API workflows
- Bulk phone-number verification

### Input format

Use international phone numbers including the country code.

Examples:

```text
447984004914
+447984004914
14155552671
5511999999999
```

Do not rely on local-format numbers without a country code.

### Important notes

WhatsApp registration status can change at any time if a user registers, unregisters, or changes their phone number.

The service returns the registration status available at the time the validation is performed.

### Support

If you encounter an issue, please open an issue through the Actor's Apify page and include:

- The endpoint used
- The HTTP status code
- The response received
- A sample phone number where appropriate

Do not include your Apify API token or other credentials in support requests.

# Actor input Schema

## `phone_number` (type: `string`):

Enter number in international format without '+', e.g. 447984004914

## Actor input object example

```json
{
  "phone_number": "447984004914"
}
```

# Actor output Schema

## `results` (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 = {
    "phone_number": "447984004914"
};

// Run the Actor and wait for it to finish
const run = await client.actor("api_factory/whatsapp-number-validator-single-and-bulk").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 = { "phone_number": "447984004914" }

# Run the Actor and wait for it to finish
run = client.actor("api_factory/whatsapp-number-validator-single-and-bulk").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 '{
  "phone_number": "447984004914"
}' |
apify call api_factory/whatsapp-number-validator-single-and-bulk --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,api_factory/whatsapp-number-validator-single-and-bulk"
        }
    }
}

```

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/0JQtOaYzS6S7b5QTf/builds/OVksPp8d9x130mQ8b/openapi.json
