The Scenario
You manage the dialling infrastructure for a telemarketing operation. A marketing campaign just wrapped and dropped a new opt-in list into a shared Google Sheet — 500 phone numbers, column A, nothing else. Before you route these into your queues, you need to know which are mobile, which are landline, which are VOIP, and who the carrier is. The mobile queue uses a different dialler. The VOIP numbers go through a separate compliance check. The invalid ones get pulled before they waste a dial attempt.
Nobody on your team is going to sit there and look up 500 numbers one by one.
The bad version:
- Export the sheet to CSV, write a Python script to loop through the numbers and call CallerAPI with HLR enabled, save the response to a new CSV.
- Realize the script is choking on rows where the number has a leading apostrophe from the spreadsheet export.
- Spend 40 minutes debugging the CSV parsing, then re-import the results and spend another 20 minutes aligning the columns back to the original sheet.
That's two hours of infrastructure work before a single call is made.
Your job is routing, not data wrangling. The list needs to be classified and ready to hand off — and you needed that done yesterday.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent built into your Google Sheet. It reads the data directly and calls CallerAPI with HLR enabled on your behalf, row by row, writing the results back to the columns you specify.
For each phone number in column A, call CallerAPI with HLR enabled and write the results to four new columns: Carrier, Line Type (mobile/landline/VOIP), Country, and Valid (yes/no)
What You Get
- Column B: carrier name (e.g. "T-Mobile," "Verizon," "Twilio").
- Column C: line type — "mobile," "landline," or "VOIP."
- Column D: two-letter country code for the number's registered country.
- Column E: "yes" if the number is active and valid, "no" if it's disconnected or invalid.
- Any number the API can't resolve gets "Unknown" in the carrier column and "no" in Valid.
What If the Data Is Not Quite Ready
The numbers are in mixed formats — some E.164, some local with no country code
Normalize all phone numbers in column A to E.164 format before running CallerAPI HLR lookups. Write Carrier, Line Type, Country, and Valid to columns B, C, D, and E.
There are obvious duplicates in the list and I want to deduplicate before running the lookups
Find and remove duplicate phone numbers in column A, keeping the first occurrence of each. Then run CallerAPI HLR lookups on the deduplicated list and write Carrier, Line Type, Country, and Valid to columns B, C, D, and E.
The opt-in list spans three tabs — Wave 1, Wave 2, Wave 3 — and each has numbers in column A
For each of the Wave 1, Wave 2, and Wave 3 tabs, run CallerAPI HLR lookups on column A and write Carrier, Line Type, Country, and Valid to columns B, C, D, and E in each tab.
I want to classify the numbers, flag the invalids, and separate VOIP numbers into their own tab for compliance review — all at once
For each phone number in column A, run a CallerAPI HLR lookup and write Carrier, Line Type, Country, and Valid to columns B, C, D, and E. Then move any row where Valid is "no" to a sheet called Invalid Numbers, and move any row where Line Type is "VOIP" to a sheet called VOIP Review.
One prompt handles the enrichment, the invalid triage, and the compliance split — rather than three separate steps spread across an afternoon.
Try It
Get the 7-day free trial of SheetXAI and open any Google Sheet with a list of opt-in numbers, then ask it to classify each row by carrier and line type using CallerAPI. See also: enriching leads with spam scores and the CallerAPI overview.
