apyhub
Cover illustration for Is NumLookup Legit? Phone Number Lookup vs Phone APIs for Developers
Engineering

Is NumLookup Legit? Phone Number Lookup vs Phone APIs for Developers

Updated September 15, 2026. This post now covers three ApyHub phone APIs (carrier lookup, number formatting and validation, and detecting numbers in text), with working request examples and links to the current service pages.

01Introduction

NumLookup is a real, operating reverse phone lookup website: you enter a phone number and it shows information linked to that number. Whether it's the right tool depends on what you need. For checking an unknown caller, it's one option among several. For an application that handles phone numbers at scale, you need an API instead.

This post covers both sides: what NumLookup is and the privacy questions it raises, then the three jobs developers usually need to do with phone numbers, and the ApyHub API for each one.

02What is NumLookup?

NumLookup is a reverse phone lookup and people-search service. Sites like it compile information from public directories, the open web, and commercial data sources, and connect it to phone numbers. A search can return details such as a name, location, carrier, and whether the number is a mobile or landline.

People mostly use it to identify unknown callers, screen likely spam, or check a contact before calling back.

03Is NumLookup legit and safe to use?

NumLookup is a legitimate business in the sense that it runs an openly available service and publishes an opt-out process. Whether it's accurate or appropriate for your purpose is a separate question. Keep three things in mind:

  • Accuracy varies. Data compiled from public and commercial sources can be incomplete or out of date.
  • Privacy cuts both ways. Services like this can show your own details to anyone who searches your number.
  • Removal takes effort. NumLookup has an opt-out page, but removal can take time, and the same data may still exist on other sites.

For personal use, treat any result as a lead to verify, not a confirmed identity. For business use, don't build critical workflows such as identity checks or fraud decisions on data scraped from public sources.

04What developers actually need to do with phone numbers

Applications that handle phone numbers, such as CRMs, sign-up forms, support tools, and messaging apps, run into the same three jobs:

  1. Find numbers hidden inside free-form text, like notes, emails, chat logs, and support tickets.
  2. Validate and format numbers so every record is stored the same way, typically in E.164 format (for example, +14155552671).
  3. Look up details about a number, such as its carrier, region, and whether it's a mobile or landline.

Doing these with regular expressions breaks quickly. Phone numbers come in dozens of national formats, with and without country codes, spaces, dashes, and parentheses. APIs built for the job handle those variations for you.

05Three ApyHub APIs for phone numbers

JobAPIWhat it returns
Find numbers in textDetect Phone Numbers API (SharpAPI)Each number found, as detected and as parsed
Validate and format a numberPhone Number Formatter API (Dosvak)E.164, international, and national formats, plus validity, country, and region
Look up a number's detailsPhone Carrier Lookup API (Dosvak)Carrier, region, time zones, and number type

All three run on the same ApyHub account and key.

Find phone numbers in text

The Detect Phone Numbers API scans a block of text and returns every phone number it finds. It works as an asynchronous job, which suits longer text and batch processing: you submit the text, then check the job until it's done.

1. Submit the text:

bash

· bash
curl -X POST "https://api.eu.apyhub.com/sharpapi/detect-phone-numbers" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"Call me at +1 415 555 0134 or +44 20 7946 0958."}'

The response gives you a job ID and a status URL:

json

· json
{
  "status_url": "https://apyhub.com/services/provider/sharpapi/api/v1/content/detect_phones/job/status/7cc14d8f-f0c6-4104-98c1-1f521a5f3438",
  "job_id": "7cc14d8f-f0c6-4104-98c1-1f521a5f3438"
}

2. Check the job status:

bash

· bash
curl -X GET "https://api.eu.apyhub.com/sharpapi/detect-phone-numbers/job/status/7cc14d8f-f0c6-4104-98c1-1f521a5f3438" \
  -H "apy-token: $APY_TOKEN"

When the job is complete, the result lists each number:

json

· json
{
  "data": {
    "id": "job_123",
    "type": "job",
    "attributes": {
      "type": "phone-number-detection",
      "status": "completed",
      "result": [
        {
          "parsed_number": "+14155552671",
          "detected_number": "+14155552671"
        }
      ]
    }
  }
}

detected_number is the number as it appeared in the text, and parsed_number is the normalized version, so you can compare the two.

In an application, poll the status endpoint no more than once per second:

javascript

· js
async function detectPhoneNumbers(text, token) {
  const base = "https://api.eu.apyhub.com/sharpapi/detect-phone-numbers";
  const headers = { "apy-token": token, "Content-Type": "application/json" };

  const submit = await fetch(base, {
    method: "POST",
    headers,
    body: JSON.stringify({ content: text }),
  });
  const { job_id } = await submit.json();

  while (true) {
    await new Promise((r) => setTimeout(r, 1000)); // at most once per second
    const res = await fetch(`${base}/job/status/${job_id}`, { headers });
    const { data } = await res.json();
    if (data.attributes.status === "completed") return data.attributes.result;
    if (data.attributes.status === "failed") throw new Error("Detection failed");
  }
}

Submitting a job costs 50 atoms, and each status check costs 1 atom.

Validate and format a phone number

When users type phone numbers into a form, you need to know whether the number is valid and store it in one consistent format. The Phone Number Formatter API takes a number and returns its E.164, international, and national formats, whether it's valid, and its country and region. Use it at sign-up, before sending an SMS, or when cleaning an imported contact list.

Look up a number's carrier and type

The Phone Carrier Lookup API returns a number's carrier, region, time zones, and number type. That's the developer equivalent of what people use NumLookup for, limited to network and numbering details. It's useful for routing messages, checking that a number is a mobile before sending an SMS, and scheduling calls in the right time zone.

Try the phone APIs free →

06How developers combine them

A typical contact-data workflow uses all three:

  1. Detect numbers in incoming emails, tickets, or imported documents.
  2. Validate and format each one into E.164, and drop the invalid ones.
  3. Look up the carrier and number type to decide whether to send an SMS or place a call.

Common uses include:

  • Sign-up forms: reject invalid numbers before they reach your database.
  • CRM cleanup: standardize and deduplicate contact lists.
  • Support tools: pull phone numbers out of tickets and chat logs automatically.
  • Messaging: confirm a number is a mobile before sending an SMS.
  • Privacy workflows: find phone numbers in text so they can be removed or masked before storage. The AI Text Anonymization API can redact them for you.

07Phone data and privacy

Phone numbers are personal data under laws such as GDPR. Before sending them to any API, check where the service processes data and how long it keeps it. Every service in the ApyHub catalog carries machine-readable certification describing its data handling and alignment with GDPR, SOC 2, and ISO 27001, so you can check that before you integrate.

08Conclusion

NumLookup is a real reverse phone lookup service, useful for checking an unknown caller, with the accuracy and privacy caveats that come with any site built on compiled public data. Applications need something different: reliable, repeatable ways to find, validate, and look up phone numbers at scale.

ApyHub covers all three jobs on one account: detect numbers in text, validate and format them, and look up carrier and number type.

Create a free ApyHub account →

The free Starter plan includes 5 API calls per day and 3,000 atoms per month, with no card required.

09FAQ

Is NumLookup legit? Yes, NumLookup is an operating reverse phone lookup service with a public opt-out process. Its results come from compiled public and commercial data, so they can be incomplete or out of date.

Is NumLookup safe to use? Searching is generally safe, but the service can also show your own information to others. Treat results as leads to verify, and use the opt-out page if you want your number removed.

How do I remove my number from NumLookup? Use the opt-out page at numlookup.com/opt_out. Removal can take time, and your details may still appear on other sites.

What is a phone number detection API? It scans free-form text, such as emails or chat logs, and returns the phone numbers it finds. ApyHub's Detect Phone Numbers API returns each number as detected and in normalized form.

How do I validate a phone number with an API? Send the number to a validation API such as ApyHub's Phone Number Formatter API. It returns whether the number is valid, plus its E.164, international, and national formats.

What is E.164 format? E.164 is the international phone number standard: a plus sign, the country code, and the number, with no spaces or punctuation, for example +14155552671.

Can an API tell me a phone number's carrier? Yes. ApyHub's Phone Carrier Lookup API returns the carrier, region, time zones, and number type for a phone number.

Why is the Detect Phone Numbers API asynchronous? It processes text as a background job, which suits longer content and batches. You submit the text, then check the job status until the results are ready.

Is there a free way to try these APIs? Yes. ApyHub's free Starter plan includes 5 API calls per day and 3,000 atoms per month, with no card required.

10About ApyHub

ApyHub is a curated API catalog and trusted operational layer for developers and AI agents, with over 1,500 endpoints or capabilities and growing. Teams use the whole catalog through a single subscription priced in atoms, a unit that reflects the actual work each call performs. Every endpoint ships with machine-readable certification aligned with GDPR, SOC 2, and ISO 27001, and is MCP-ready by default, so AI agents can discover and call it through ApyHub MCP without custom wrappers. ApyHub is headquartered in Amsterdam, with offices in the Netherlands, Greece, and India, and serves 65,000+ developer workspaces every month. The free Starter plan includes 5 API calls per day and 3,000 atoms per month, with no card required. Building an API of your own? Become a provider →