# WhatsApp Number Validator API

Validate phone numbers against WhatsApp: check whether each number is registered, whether it is a business or personal account, and the public profile and business details the account shows.

**Pricing:** $0.0105 per number

**Endpoint:** `POST /v1/data/whatsapp/numbers/run`

**Auth:** `Authorization: Bearer mk_live_...`

## Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `phoneNumbers` | array | Yes | Phone numbers to validate, each with + and the country code, for example +14155552671. Spaces, dashes, dots and brackets are fine, and 00 works in place of +. A number without its country code may be read as another country's number. Up to 1,000 numbers per request; one row per distinct number. |

## Example

`?wait=true` holds the request open until the run finishes (up to 60s) and returns the rows inline: one request, no polling.

```bash
curl -X POST "https://api.mindcase.co/v1/data/whatsapp/numbers/run?wait=true" \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"params":{"phoneNumbers":["..."]}}'
```

```python
import requests

resp = requests.post(
    "https://api.mindcase.co/v1/data/whatsapp/numbers/run",
    params={"wait": "true"},
    headers={"Authorization": "Bearer mk_live_YOUR_API_KEY"},
    json={"params": {
    "phoneNumbers": [
        "..."
    ]
}},
)
rows = resp.json()["data"]
```

## Longer runs

If the run is still going at the 60s ceiling you get back `{ job_id, status: "running" }` instead of rows (same if the result is over 100 rows; those come back `truncated`). Poll with that `job_id`:

```bash
# 1) check status
curl https://api.mindcase.co/v1/jobs/JOB_ID \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY"

# 2) when status == completed, fetch the rows
curl https://api.mindcase.co/v1/jobs/JOB_ID/results \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY"
```

Full API reference (auth, jobs, balance, SDKs, MCP): https://mindcase.co/skills.md

## Response columns

| Field | Display name | Type |
|-------|--------------|------|
| `phone` | Phone | text |
| `hasWhatsapp` | Has WhatsApp | boolean |
| `accountType` | Account Type | text |
| `checkStatus` | Check Status | text |
| `business` | Business | object |
| `profile` | Profile | object |
| `identity` | Identity | object |
| `devices` | Devices | object |
