WhatsApp Phone Number Validator | Bulk Verification API (2025) avatar
WhatsApp Phone Number Validator | Bulk Verification API (2025)

Pricing

Pay per event

Go to Apify Store
WhatsApp Phone Number Validator | Bulk Verification API (2025)

WhatsApp Phone Number Validator | Bulk Verification API (2025)

Check if phone numbers have WhatsApp. Bulk validate up to 10,000 numbers per run from CSV, Excel, or direct input. Returns yes/no for each number. Used by marketing teams, sales reps, and lead gen agencies to clean contact lists before WhatsApp campaigns.

Pricing

Pay per event

Rating

0.0

(0)

Developer

ClearPath

ClearPath

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

4

Monthly active users

a day ago

Last modified

Share

WhatsApp number validation API - Verify up to 10,000 phone numbers per run and instantly know which ones have active WhatsApp accounts.

Demo

Stop wasting money on invalid WhatsApp contacts. This actor checks any phone number against WhatsApp's registration database and returns a simple yes/no for each number. Perfect for cleaning contact lists, validating leads, or building WhatsApp marketing campaigns.

  • Bulk processing - Validate up to 10,000 numbers per run
  • Multiple input formats - Direct input, CSV, or Excel files
  • Smart parsing - Auto-detects phone columns and normalizes formats
  • Global coverage - Works with phone numbers from any country
  • No WhatsApp account needed - Fully automated validation

Use Cases

Marketing Teams

Clean lists before WhatsApp campaigns. Stop paying for messages to invalid numbers.

Sales Teams

Prioritize leads with active WhatsApp. Add WhatsApp status to CRM records.

Lead Gen Agencies

Validate purchased or scraped lists before selling. Ensure deliverability.

E-commerce

Identify customers who can receive WhatsApp order updates and support.

Developers

Bulk enrichment via API. Connect with Zapier, Make, n8n for automation.


Pricing

Apify PlanPer NumberPer 1,000
Free10 numbers free-
No subscription$0.003$3.00
Bronze$0.0025$2.50
Silver$0.002$2.00
Gold$0.001$1.00

Examples

NumbersNo subscriptionBronzeSilverGold
100$0.30$0.25$0.20$0.10
1,000$3.00$2.50$2.00$1.00
10,000$30.00$25.00$20.00$10.00

Duplicates are auto-removed — you only pay for unique numbers.


Quick Start

Basic - Direct Input

{
"phoneNumbers": [
"+1234567890",
"+4915123456789",
"+447911123456"
]
}

From CSV File

{
"csvFile": "https://example.com/contacts.csv"
}

From Excel File

{
"csvFile": "https://example.com/contacts.xlsx"
}

Combined Input

{
"phoneNumbers": ["+1234567890"],
"csvFile": "https://example.com/more-contacts.csv"
}

Input Parameters

ParameterTypeRequiredDescription
phoneNumbersarrayNo*List of phone numbers with country code (e.g., +1234567890). Max 10,000.
csvFilestringNo*URL or Apify Key-Value store key to CSV or Excel (.xlsx) file with phone numbers
defaultCountryCodestringNoCountry code to prepend to numbers without a + prefix (e.g., 91 for India, 1 for US)
onlyWhatsappUsersbooleanNoOnly output numbers that have WhatsApp (default: false)

*At least one of phoneNumbers or csvFile is required.

Phone Number Formats

The actor accepts phone numbers in various formats and normalizes them automatically:

+1234567890E.164 (preferred)
1234567890 ✅ Without plus
+1 234 567 890 ✅ With spaces
+1-234-567-890 ✅ With dashes
(123) 456-7890US format

Numbers Without Country Code

If your CSV contains local numbers without country code prefix (e.g., 9876543210 instead of +919876543210), use the defaultCountryCode field:

{
"csvFile": "https://example.com/indian-contacts.csv",
"defaultCountryCode": "91"
}
Your CSVDefault Country CodeResult
987654321091+919876543210 (India) ✅
55512345671+15551234567 (US) ✅
+44791112345691+447911123456 (unchanged) ✅

Numbers that already have a + prefix are not modified.

CSV/Excel File Requirements

  • Supported formats: .csv, .xlsx
  • Delimiters: Comma, semicolon, tab, pipe (auto-detected)
  • Column detection: Automatically finds phone columns including:
    • Standard: phone, mobile, cell, tel, telephone, whatsapp
    • Variations: phone number, mobile number, cell phone, contact number
    • CRM exports: mobile phone, direct phone, work phone, personal phone, primary phone
    • International: telefon, telefono, téléphone, celular, handy
  • Fallback: Uses first column if no phone column detected

Output

Each validated number returns:

FieldTypeDescription
phoneNumberstringPhone number in E.164 format
originalInputstringOriginal input as provided
countryCodestringDetected country code (e.g., US, DE, GB)
isValidFormatbooleanWhether the phone number has a valid format (7-15 digits)
hasWhatsappbooleantrue if number has WhatsApp, false otherwise
checkedAtstringISO 8601 timestamp of validation

Output Example

[
{
"phoneNumber": "+1234567890",
"originalInput": "+1234567890",
"countryCode": "US",
"isValidFormat": true,
"hasWhatsapp": true,
"checkedAt": "2025-01-15T10:30:00.000Z"
},
{
"phoneNumber": "+4915123456789",
"originalInput": "+49 151 23456789",
"countryCode": "DE",
"isValidFormat": true,
"hasWhatsapp": true,
"checkedAt": "2025-01-15T10:30:00.000Z"
},
{
"phoneNumber": "+447911123456",
"originalInput": "447911123456",
"countryCode": "GB",
"isValidFormat": true,
"hasWhatsapp": false,
"checkedAt": "2025-01-15T10:30:00.000Z"
}
]

API Integration

Python

from apify_client import ApifyClient
client = ApifyClient("your_api_token")
run = client.actor("clearpath/whatsapp-phone-number-validator-api").call(
run_input={
"phoneNumbers": ["+1234567890", "+4915123456789"]
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
status = "✅ WhatsApp" if item["hasWhatsapp"] else "❌ No WhatsApp"
print(f"{item['phoneNumber']}: {status}")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'your_api_token' });
const run = await client.actor('clearpath/whatsapp-phone-number-validator-api').call({
phoneNumbers: ['+1234567890', '+4915123456789']
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
const status = item.hasWhatsapp ? '✅ WhatsApp' : '❌ No WhatsApp';
console.log(`${item.phoneNumber}: ${status}`);
});

cURL

curl -X POST "https://api.apify.com/v2/acts/clearpath~whatsapp-phone-number-validator-api/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"phoneNumbers": ["+1234567890", "+4915123456789"]}'

Advanced Usage

Validate from Google Sheets

Export your Google Sheet as CSV and use the public URL:

{
"csvFile": "https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/export?format=csv"
}

Large Batch Processing

For lists over 10,000 numbers, split into multiple runs:

from apify_client import ApifyClient
client = ApifyClient("your_api_token")
all_numbers = [...] # Your large list
# Split into chunks of 10,000
chunks = [all_numbers[i:i+10000] for i in range(0, len(all_numbers), 10000)]
all_results = []
for chunk in chunks:
run = client.actor("clearpath/whatsapp-phone-number-validator-api").call(
run_input={"phoneNumbers": chunk}
)
results = list(client.dataset(run["defaultDatasetId"]).iterate_items())
all_results.extend(results)
print(f"Validated {len(all_results)} numbers")

Filter WhatsApp Users Only

Use the onlyWhatsappUsers option to only output numbers with WhatsApp:

{
"phoneNumbers": ["+1234567890", "+4915123456789"],
"onlyWhatsappUsers": true
}

Or filter programmatically:

whatsapp_users = [item for item in results if item["hasWhatsapp"]]
print(f"Found {len(whatsapp_users)} WhatsApp users")

FAQ

Q: How accurate is the validation? A: Checks directly against WhatsApp's registration database. Results reflect status at time of validation.

Q: What countries are supported? A: All countries where WhatsApp operates. Numbers must include country code.

Q: Do I need a WhatsApp account? A: No. Fully automated, no WhatsApp credentials required.

Q: How fast is it? A: ~1-2 minutes per 1,000 numbers.

Q: What about duplicates? A: Auto-removed after normalization. You're only charged for unique numbers.



📧 Support

  • Email: max@mapa.slmail.me
  • Feature Requests: Email or submit via issues
  • Response Time: Typically within 24 hours

This actor validates publicly available WhatsApp registration status. Users are responsible for complying with WhatsApp's Terms of Service and applicable data protection regulations (GDPR, CCPA).