Changelog

What changed in the API, SDKs, MCP server and documentation, newest first. Changes within /v1 are additive; see the versioning policy.

RSS feedSystem status

  1. DocsWebsite

    Bonus credit on larger top-ups

    • Bonus credit: a card top-up of $100 to $499.99 adds 5% bonus credit, $500 to $1,999.99 adds 8%, and $2,000 to $10,000 adds 10%. For example, a $500 top-up gives $540 of credit. Top-ups below $100 work as before.
    • Same price, more credit: you are charged exactly the amount you top up. The bonus appears as its own "Top-up bonus" line in Billing › Balance history right after the payment is confirmed, and it is spent like paid credit at the same prices.
    • See it before you pay: the dashboard's top-up form shows the bonus for each preset amount and for any amount you type, for example "$500 → $540 credit (+8% bonus)".
    • Refunds and disputes: bonus credit is promotional and is never paid out. If a top-up is refunded or charged back, its bonus is removed in proportion, only from the credit still available. Details in the billing guide and on the pricing page.
  2. APIWebsite

    Higher bulk minimums for five checks and X from 3 November

    • New minimum per country: from 3 November 2026, the TikTok, LINE, LinkedIn, Snapchat and Messenger checks (bulk only) bill each country in a job at least the price of 2,000 checks, instead of 500, when it returns at least one answer. Each country file of these checks has a higher fixed cost. A country with no answers stays free, and every other bulk-only check keeps the minimum of 500.
    • X checks: from the same date, X checks get the bulk price for groups of at least 1,000 numbers from one country in a job. Smaller groups are checked in real time and priced at the real-time price, like small WhatsApp groups.
    • No surprises: the free estimate (POST /v1/jobs/estimate) and the dashboard's review step show the minimum per country before a job runs. Jobs accepted before 3 November keep their price.
    • How to keep the bulk price per number: send at least 2,000 numbers per country for these five checks (1,000 for X), or collect small lists by country into fewer, larger jobs. See the bulk jobs guide and the pricing page.
  3. APIDocs

    Clearer API error messages, sandbox limits in GET /v1/limits, and a billing guide

    • Validation messages: 400 invalid_request now tells a missing field ("Missing required field 'numbers'.") from a field with the wrong type ("Invalid type for 'numbers': expected an array of strings."), names allowed ranges ("'wait' must be between 0 and 30.") and formats, and GET /v1/usage lists every missing parameter. Codes, statuses and param are unchanged.
    • Wrong method on a known path: for example GET /v1/jobs/estimate or DELETE /v1/lookup, still 404 not_found, now with "Method GET is not supported on this endpoint; use POST." and an Allow header. GET /v1/jobs/estimate used to answer "No such job."
    • GET /v1/limits: gains rate_limit.per (key or ip). With the public sandbox key it now reports the per-IP limits (requests_per_minute: 30, requests_per_day: 1000, jobs.max_numbers: 10, sandbox: true) instead of the per-key values that never applied to it.
    • Sandbox key: a national-format number such as 07700 900001 sent without default_country gets a suggestion to add "default_country": "GB".
    • Limited-access checks: spam reputation, when not yet enabled for your account, answers 403 service_disabled with "This check is in limited access. Ask for it when you request access, or contact support."
    • Docs: new billing page (prepaid balance, $20 minimum top-up, invoices, reserve, settle and release), how summaries count data services, real sandbox output in the bulk-job examples, and a corrected webhook example.
  4. APIWebsite

    Prices updated

    • New prices: per-check prices for many services changed on 17 October 2026, as announced by e-mail 14 days in advance. The pricing page, the dashboard and GET /v1/services show the current real-time and bulk price of every service.
    • Still free: you are not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate) or for answers from your account's cache.
    • Requests already accepted: the price of a lookup or bulk job is fixed when it is accepted, so requests and jobs accepted before the change keep their price. Your Credit is spent at the prices in force when each request or job is accepted.
    • Docs: price examples in the bulk jobs guide, the pricing page, the API reference examples and the guides that quote our prices now use the new figures.
  5. APIDocs

    E-mail addresses on sanctioned-country domains are no longer checked

    • E-mail checks: addresses on .ru, .su, .рф, .by and .бел domains (plus .рус, .москва, .moscow and .tatar) and on Yandex and Mail.ru (VK) mail domains such as yandex.com, ya.ru, mail.ru, inbox.ru, list.ru, bk.ru and vk.com are no longer checked. Every e-mail check on them answers unsupported_country, which is never billed, in real-time lookups, bulk jobs and the dashboard's Try it page. Subdomains count too. Job estimates count these addresses as unsupported, not billable. The full list is in the services reference.
    • Images: the home page artwork now shows the current check count.
  6. APIDocs

    MAX, Yandex and Mail.ru checks retired; terms accepted in the forms

    • Checks retired: max.registered (alias max), yandex.email (alias yandex) and mailru.email (alias mailru) are no longer offered. Requests that name them get 403 service_disabled. Their pages have been removed, and they are gone from pricing, the services reference, the facts sheet, the dashboard and the SDK service lists. Results you already have stay readable.
    • Terms in the forms: the access request, the instant test key, the live-access request, the first dashboard sign-in and card top-ups now ask for your company name and country and for acceptance of the Terms of Service, the Acceptable Use Policy and the Data Processing Agreement on behalf of your company.
    • Fixes: the country list in the access form shows each country once; the home page, services page, facts and llms.txt use the same check count; old legal URLs such as /legal/cookie-notice redirect to the current pages.
  7. APIDocs

    Sanctions list extended; VK check discontinued

    • Sanctioned countries: the list of countries whose numbers are never checked and never billed now has seven entries. Every check on such a number answers unsupported_country, which is free. The full list is in the services reference.
    • VK check discontinued: vk.registered (alias vk) is no longer offered, because every number it accepted is now on the sanctions list. Its page has been removed.
    • Our research datasets, country guides and the phone-format reference no longer list sanctioned countries, and their figures have been recomputed.
  8. APIMCPDocs

    HLR and MNP lookups, spam reputation in every country

    • Live network status (number.hlr, alias hlr) is live in real time and in bulk jobs: status (reachable, unreachable, invalid, unknown), ported, roaming (true or false only), network, mcc_mnc and country. $0.005 per conclusive answer; unknown is free. See the HLR lookup.
    • Number portability (number.mnp, aliases mnp and porting) is new: porting (ported, not_ported, unknown), plus the mcc_mnc and country of the network the number belongs to now. $0.001 per conclusive answer; unknown is free. See the MNP lookup.
    • Both use the documented test numbers: +447700900001 reachable and not ported, …006 ported. See test mode.
    • Spam reputation (number.spam) now accepts numbers from all countries except sanctioned ones. Report coverage is strongest in North America and Europe. The check stays in limited access.
    • Sanctioned countries and regions are never checked and never billed: every check answers unsupported_country. See the services reference.
  9. APIWebsite

    Developer dashboard

    • Sign in at app.mobilevalidate.com with a one-time code sent to your e-mail, then add a passkey (Face ID, Touch ID or a security key) for one-click sign-in.
    • API keys: create test and agent keys yourself; once your account is approved for live use, create live keys too (optionally limited to your server IPs). Keys are shown once.
    • Request logs: every API request of the last 30 days with status, error code, latency, key and request id, with filters and search. Phone numbers, e-mail addresses and request bodies are never stored in the logs.
    • Usage: checks and cost by day and service, with CSV export.
    • Webhooks: manage test and live endpoints separately, rotate signing secrets with a 24-hour overlap, inspect deliveries, retry them and send test events.
    • Instant test keys from /get-test-key now include a link to confirm your e-mail; after confirming, sign in to see the key's logs and usage.
  10. SDK & CLI

    SDKs, CLI and MCP package published

    • Node.js SDK and CLI: npm install mobilevalidate, or npx mobilevalidate check +447700900001 --sandbox with no install. See SDKs and the CLI.
    • Python SDK: pip install mobilevalidate-sdk (import mobilevalidate), sync and async clients. See SDKs.
    • MCP server: npx -y @mobilevalidate/mcp runs the same tools as the hosted server over stdio. See MCP.
    • Job result downloads stream CSV or NDJSON in both SDKs and the CLI (jobs download), and job estimates now return the same maximum cost that the job reserves.
  11. APISDK & CLIDocs

    Developer experience: try the API without signing up

    • Live API console on the home page and in the docs: pick a test value, run a real request and see the response, an explained verdict and the same call in seven languages.
    • Sandbox key in the docs: every example works as pasted with a public sandbox key that only accepts test values. Never billed.
    • Instant test key: get a personal test key in a minute, shown once on screen, without waiting for approval. Live keys still need an approved request.
    • Error suggestions: errors can include error.suggestion, a short hint on how to fix the request (for example a missing country code). Unknown endpoints now return 404 not_found with the closest match.
    • Interactive API reference generated from OpenAPI 1.0.0, plus request collections for Postman, Bruno and .http files.
    • Code examples in cURL, Node.js, fetch, Python, PHP, Go and Ruby, with syntax highlighting and copy buttons; recipes for common integrations.
    • Python SDK and an updated Node.js SDK and CLI (retries, typed errors, sandbox mode). Published on PyPI (mobilevalidate-sdk) and npm (mobilevalidate) on 2026-09-26; see SDKs.
    • Status page with 90-day uptime per component, this changelog with an RSS feed, and a versioning and deprecation policy.
  12. DocsWebsite

    Website and developer documentation

    • mobilevalidate.com is public, with live pricing and a page for every check.
    • Developer documentation: quickstart, authentication, lookups, e-mail checks, bulk jobs, webhooks, errors, limits, SDK, CLI and MCP.
    • The OpenAPI specification is published at /openapi.yaml, and the error catalog at /errors.json.
    • Every documentation page has a Markdown version (add .md to the URL), and /llms.txt lists them for AI tools.
    • The remote MCP endpoint is https://mcp.mobilevalidate.com/mcp.
  13. APISDK & CLIMCP

    Spam reputation and carrier lookup

    • Spam reputation (number.spam) for US, Canadian and German numbers: a risk level, a 0–100 score and the reasons behind them. Limited access: available to approved customers on request. MCP tool: check_spam_reputation.
    • Carrier lookup (network.carrier, beta): line type, current carrier, original carrier and country. The US/CA carrier lookup (network.carrier_us) runs in bulk jobs.
    • Live network status (number.hlr) is listed as coming soon.
  14. API

    Request-size limits and anti-enumeration

    • A lookup may contain up to 2,000 checks and a job up to 100,000 checks (identifiers × checks). Larger requests get 400 invalid_request with a clear message before anything is processed or charged.
    • Sequential number ranges and generated e-mail lists are rejected with suspected_enumeration. Checking lists of your own customers or sign-ups is unaffected.

    See rate limits and abuse protection and the error reference.

  15. APISDK & CLIMCP

    E-mail checks

    • New emails field on POST /v1/lookup and POST /v1/jobs, alongside numbers.
    • Mailbox validation (email.valid) and account checks by e-mail for major mail providers and consumer services. Some run in real time, others in bulk jobs only; GET /v1/services shows which.
    • Result rows carry kind, email and email_status. Bulk CSV uploads accept an email column.
    • Test mode includes test addresses on a reserved test domain.
    • MCP server: new lookup_emails tool.

    See e-mail checks.

  16. APISDK & CLIMCP

    Full check catalog and multi-check requests

    • Catalog: messaging apps (WhatsApp, WhatsApp Business, Telegram, Viber, Signal, iMessage, RCS, LINE, Zalo, Botim, MAX, Messenger), social networks and consumer app accounts. The services reference lists every code and alias.
    • Multi-check requests: up to 20 checks per request. Each identifier gets one result per service in a checks map, plus a summary.by_service count. The original whatsapp object is kept for compatibility.
    • GET /v1/services returns the catalog your key can use, including each attribute's type (string, boolean or integer).
    • SDK, CLI and MCP server: services / list_services and the checks option.
  17. APISDK & CLI

    API version 1: real-time lookups, bulk jobs, test mode and webhooks

    The MobileValidate API is available at https://api.mobilevalidate.com/v1 for approved customers.

    • Real-time lookups with POST /v1/lookup: send up to 100 phone numbers and get one result per number, with registered, status and checked_at.
    • Bulk jobs with POST /v1/jobs for lists, with paginated results and CSV or NDJSON downloads.
    • Test mode: mv_test_… keys return fixed answers for the test numbers, are never billed and never reach a real network.
    • Webhooks for finished lookups and jobs, with endpoint verification and Standard Webhooks signatures. See webhooks.
    • Idempotency keys on every POST: a retry with the same key and body within 24 hours replays the first response instead of checking again.
    • Fair billing: inconclusive results (unknown, unsupported country, timeout, invalid, duplicate) are never charged.
    • TypeScript SDK and CLI (mobilevalidate), published on npm on 2026-09-26; see SDKs.