What happens during a WhatsApp check?

WA Lookup checks one number at a time: submit the number in E.164 format and choose a service_type (the parameter that selects a product), and the result comes back in the same HTTP response. In a successful response, registered=true means the number is registered on WhatsApp and registered=false means it is not. Any other outcome is returned as an error code and the check is refunded.

Complete one check

This section covers realtime checks: the SaaS dashboard and the synchronous REST endpoints share one check service and one response meaning. Very large lists have an asynchronous bulk option, covered at the end of this page.

  1. 1

    Submit a number

    Submit the number you need to check, using the format required by the API documentation.

  2. 2

    Choose a product

    ws for registration, ws_avatar adds avatar fields, ws_business adds Business account fields. For active days, the asynchronous bulk check has a matching product.

  3. 3

    Read the result

    Read registered in the same response. Run a new check when you need an updated status.

Which number format to submit

WA Lookup accepts one number per check, written in E.164 format: a plus sign, the country code, then the subscriber number with no spaces or punctuation — for example +17253100591. This is the same format the WhatsApp app stores internally, so a number in this form maps to exactly one account. A number without a country code cannot be checked reliably: the same digits exist in many countries.

  • Always include the country code; do not rely on the country of your own account.
  • Strip spaces, dashes, brackets and leading zeros used for national dialling — keep only + and digits.
  • Numbers in the wrong format are rejected before any charge; a rejected format is not a "not registered" result.

What does registered mean?

registered is the answer of a WhatsApp check. It only appears in a successful response, and it is a boolean: true means the number is registered on WhatsApp at the moment of the request, false means it is not. Anything else — a timeout, an undetermined result, an invalid number — comes back as an error code instead, and WA Lookup refunds that check automatically. So a missing registered field never means "not registered"; it means the check did not produce a result. The value reflects the moment you asked: accounts are created and deleted all the time, so refresh the check before you act on an old result rather than caching it for weeks.

  • registered=true means registered.
  • registered=false means not registered.
  • Handle other outcomes according to the API response code; do not infer registered yourself.

Choose a product as needed

Pick the smallest realtime product that answers your question; the API docs carry the full field definitions.

  • ws returns registration status.
  • ws_avatar also returns avatar fields; avatar_url is an empty string when no avatar is available.
  • ws_business also returns Business account fields.

Use the result within its scope

A check reflects the status at request time. It is not identity verification or permission to contact someone.

  • It does not confirm who owns the number, whether they are online at this moment, or any message content; the bulk activity product returns days since last active, not live presence.
  • A registered result does not establish consent to contact the number.
  • Run a new check when the business decision needs a current status.

Very large lists: the asynchronous option

The dashboard multi check and the API multi endpoint cover most lists. Only when a list far exceeds those limits does it make sense to submit the whole file as one asynchronous bulk task — you choose the country the list belongs to, and it should be essentially that one country.

  • Upload a .txt or .csv with one E.164 number per line, from the bulk check page or through the API.
  • Choose the country the numbers belong to when submitting; the list should be essentially that one country. Too many numbers from elsewhere make the task fail while the file is being prepared — it is not sent for checking and is refunded in full.
  • Balance is reserved for the valid lines on submit, you are charged only for numbers that return a result, and the difference is refunded.
  • The task runs in the background; download the result file when it finishes. A failed task is refunded in full.

Related standards