canonical: https://jentic.com/apis/mobilevalidate.com/mobilevalidate

# MobileValidate API

The MobileValidate API checks phone numbers and e-mail addresses in real time or in bulk, reporting messaging-app and online-account registration such as WhatsApp, Telegram, and Viber, carrier and line type, spam reputation, and whether an e-mail account exists. Real-time lookups take up to 100 identifiers per request and wait a configurable number of seconds for answers, while bulk jobs accept up to 50,000 rows as JSON or a CSV upload, with a free cost estimate first. Results page by registered, status, or service and download as CSV or NDJSON, and signed webhooks report events such as lookup.completed, job.completed, and balance.low.

## For AI agents

Check whether phone numbers and e-mail addresses are registered on messaging apps and services, look up carrier and spam reputation, and run bulk validation jobs of up to 50,000 rows with MobileValidate. Authenticated with a Bearer key.

## Scope

Does not send SMS or e-mail, verify ownership with one-time codes, or enrich contacts with names and social profiles. Use for phone and e-mail registration, carrier, and reputation checks only.

## Capabilities

- Check up to 100 phone numbers and e-mail addresses per lookup for messaging-app registration, carrier, and spam reputation
- Estimate the cost of a bulk validation job for free before running it
- Run bulk jobs of up to 50,000 numbers and e-mails from JSON or a CSV upload
- Page job results filtered by registered, status, or service, or download them as CSV or NDJSON
- Register signed webhook endpoints for lookup.completed, job.completed, and balance.low events
- Cap spend per request with max_cost and reuse cached answers with max_age
- Report usage and cost by day or by check over a date range

## Use cases

### Agent Contact Checks Through Jentic

An AI agent qualifying leads or cleaning a contact list checks each phone number and e-mail before outreach, learning whether the number is on WhatsApp or Telegram and whether the mailbox exists. Through Jentic the agent finds the lookup operation by intent, sends numbers, emails, and checks with a stored key, and branches on the registered field, where false is a conclusive negative and null means unknown.

Example prompt: Run a lookup for numbers ['+447700900001'] and emails ['registered@test.mobilevalidate.com'] with checks ['whatsapp', 'carrier', 'email'] and report the registered value for each

### Bulk List Hygiene Before a Campaign

Marketing and CRM teams upload a CSV with a phone or email column as a bulk job, after a free estimate of the maximum cost. Inconclusive, invalid, and duplicate rows are never charged and are released from the reserved amount when the job finishes, and the results download as CSV for re-import.

Example prompt: Estimate a job for 5,000 numbers with checks ['whatsapp'], then create the job, poll it until it completes, and download the results in csv format

### Signup Fraud and Spam Screening

Signup and onboarding flows check a new user's number for spam reputation and line type, and their e-mail for account existence, then decide whether to require extra verification. Each POST accepts an Idempotency-Key header so retries after a timeout are not billed twice.

Example prompt: Run a lookup for number '+447700900001' with checks ['spam', 'carrier'] and an Idempotency-Key, and return the spam and line type results

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/lookup` | Check up to 100 numbers and e-mail addresses |
| POST | `/jobs/estimate` | Estimate a bulk job for free |
| POST | `/jobs` | Create a bulk job |
| GET | `/jobs/{id}` | Get a job |
| GET | `/jobs/{id}/results` | List a job's results |
| GET | `/jobs/{id}/download` | Download a job's results as CSV or NDJSON |
| GET | `/services` | List checks and prices |

## Key resources

- **Lookups** — Real-time checks of up to 100 numbers and e-mail addresses
- **Jobs** — Bulk checks of up to 50,000 rows with estimates, paged results, and CSV or NDJSON downloads
- **Services** — The catalogue of available checks and their prices
- **Webhook Endpoints** — Signed HTTPS endpoints notified of lookup, job, and balance events
- **Account and Usage** — Balance, limits, and usage by day or by check

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 66 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 90 / 100
  - Developer Experience & Jentic Compatibility: 65 / 100
  - AI-Readiness & Agent Experience: 47 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 79 / 100
- **View full report:** https://jentic.com/apis/mobilevalidate.com/mobilevalidate/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring MobileValidate by hand means picking the right key prefix for live, test, or agent mode, handling 202 pending answers with polling or webhooks, and sending Idempotency-Key headers for safe retries. Through Jentic you install once, import MobileValidate from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** MobileValidate puts the job id in the URL path (`/jobs/{id}`), so a rule can pin your agent to one job's status, results, and download. Phone numbers and e-mails travel in the request body, so for lookups rules bound which operations your agent may call, and costly or destructive ones like creating bulk jobs or purging results are not included unless you add them.
- **Credential handling:** Your MobileValidate key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'check if a phone number is on WhatsApp' or 'validate a list of e-mails', and Jentic returns the matching MobileValidate operation with its input schema so the agent calls the right endpoint without reading the reference docs.

## Related APIs

- **numverify** — Phone number validation with carrier and line type
- **Twilio Lookups** — Phone number intelligence from Twilio
- **NeverBounce** — E-mail list verification and cleaning
- **Hunter** — Find professional e-mail addresses by domain and name

## FAQ

### What authentication does the MobileValidate API use?

The MobileValidate API authenticates with `Authorization: Bearer <key>` per its OpenAPI spec. Keys start with `mv_live_` for billed checks, `mv_test_` for test mode, or `mv_agent_` for AI agents with a daily spend cap. The health check and personal test-key request are public and need no credential, and the services price list works with or without a key. Through Jentic your key is stored once, encrypted, by your own Jentic One instance and injected at call time.

### Can I check WhatsApp registration with the MobileValidate API?

Yes. Pass whatsapp in the checks list of a lookup or bulk job, alongside other service codes such as telegram, viber, carrier, or spam; the services operation lists every code and its price. The registered field is false only for a conclusive negative and null when the answer is unknown, and inconclusive answers are never charged.

### Can I limit what my agent is allowed to do with the MobileValidate API?

Yes. For example, write a rule that allows only the lookup, estimate, and services operations, so the agent can run real-time checks and price a bulk job but cannot start a 50,000-row job, purge results, or change webhook endpoints, and every call it makes is logged.

### What are the rate limits for the MobileValidate API?

The OpenAPI spec states that the public sandbox key is limited per IP address to 30 requests per minute and 1,000 per day. For your own keys, call the limits operation, which returns your limits and remaining allowances, and see https://mobilevalidate.com/docs for current account limits.

### How do I validate a phone number with MobileValidate through Jentic?

Search Jentic for the intent 'check if a phone number is on WhatsApp', which returns the MobileValidate lookup operation on /lookup with its input schema; the agent sends numbers in E.164 format and the checks to run, and reads registered from each result row. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there a MobileValidate MCP server?

You don't need an MCP server to give your agent the MobileValidate API. Jentic connects it directly from the API Directory: import it, store your key once, and your agent calls the lookup, job, and webhook operations. Operations are discovered on demand, so no extra tool definitions are loaded into the agent's context.
