Bulk Phone Carrier & Line Type Checker | LookupLab
Pricing
Pay per usage
Bulk Phone Carrier & Line Type Checker | LookupLab
Bulk phone carrier and mobile/landline/VoIP checks for up to 1,000 numbers. Bring your LookupLab API key, keep row order, and export CSV or JSON. Includes a synthetic demo. LookupLab credits apply.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Clement Horak
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Bulk Phone Carrier & Line Type Checker
Check a phone list before routing leads or preparing an outreach workflow. LookupLab returns phone validity signals, carrier, country, mobile/landline/VoIP classification, and portability information when available. Export the results as CSV, JSON, or Excel from the Apify dataset.
Current release: use your own LookupLab API key, or try the synthetic demo. There is no Actor fee; normal Apify platform usage and your LookupLab credit usage apply. Get your key from LookupLab.
Choose a mode
| Mode | What it does | Lookup billing |
|---|---|---|
| Demo | Shows clearly labeled synthetic output for up to three numbers. Does not query any phone data. | No lookup event. Normal Apify platform usage applies. |
| Own key | Checks numbers against your existing LookupLab account. Enter the key using the secret input field. | No lookup event through Apify. LookupLab credits and normal Apify platform usage apply. |
Managed billing through Apify is not enabled in this release. A future edition may offer it after billing configuration and pricing verification. This release never consumes a publisher-owned LookupLab key.
Input
Paste numbers into the input list, or start the Actor through Apify's API:
{"mode": "own-key","lookupLabApiKey": "YOUR_LOOKUPLAB_KEY","numbers": ["+12025550123", "+442079460123"]}
These examples use fictional numbers and do not promise a valid lookup result. Include + and the country code. Spaces, parentheses, and hyphens are allowed. National numbers without a country code are rejected rather than guessed. This version accepts a JSON/string list; convert a CSV's phone column into that list before running. CSV output is available from the dataset export menu. Maximum 1,000 input rows per run. Duplicate input numbers stay as distinct rows and can each spend LookupLab credits.
For own-key mode add "lookupLabApiKey": "YOUR_KEY" using the encrypted secret field in the Console. Never publish real keys in examples or workflow files.
Output
Each completed or locally rejected row contains:
- Original row number and input, plus a stable
row_id. status:complete,lookup_error,invalid_format, ordemo.charged: whether an Apify lookup event was confirmed. This does not report LookupLab credit usage in own-key mode.valid, normalizednumber,national_format,country,carrier,line_type,ported, and a safe error description.
Unavailable fields are null. Results exclude caller names, account balances, API keys, and unrelated provider data. A valid or mobile signal does not establish ownership, consent, deliverability, or permission to call/text. Coverage and carrier classification vary by country and data availability. This Actor does not verify SMS opt-in or screen Do Not Call lists.
Rejected input that resembles a spreadsheet formula is prefixed with an apostrophe in the dataset for safer CSV/Excel export. Its original text remains in the per-row receipt.
Interrupted runs and spending limits
Processing is sequential. The Actor checks the spending limit before every managed lookup and leaves a small amount unused to avoid an automatic platform abort during the final paid call. If billing cannot be confirmed, no new lookup is performed. If a provider request times out or billing acknowledgement is lost, the Actor stops and keeps prior results and per-row receipts in the run's key-value store (ROW-000001, etc.).
Resurrect the same run with unchanged input and credential within 23 hours. The Actor reuses stable billing and LookupLab idempotency keys. It does not automatically retry uncertain requests or start replacement runs. Older interrupted work needs support reconciliation because upstream idempotency retention is limited. Changing a number, mode, or API credential requires a new run and can incur new charges.
Dataset writes are append-only. Recovery checks existing row_id values; a transport-level dataset retry can still duplicate an output row. Deduplicate exports by row_id if needed. Key-value receipts are the recovery source of truth. This does not create a second lookup charge.
Privacy and support
Submit only phone data you are authorized to process. The Actor sends each phone number to LookupLab, which uses its lookup provider to return the requested signals. Inputs, result rows, and receipts are stored in your Apify run according to Apify retention settings. Manage access and deletion in your Apify account. Refer to LookupLab privacy and support for service handling and questions. Do not include names, messages, or other customer records in the phone number field.
Local development
Node.js 22 or later:
npm ci --ignore-scriptsnpm test
For a real SDK smoke run, put { "mode": "demo", "numbers": ["+12025550123", "invalid"] } in storage/key_value_stores/default/INPUT.json, then run npm start. Local managed mode always fails closed. Own-key mode can run locally and spends the supplied account's credits. No paid API calls are needed for tests.
This directory is self-contained. Publish only these files in a separate public connector repository. Never publish the private LookupLab application repository, environment files, storage, or credentials.