Phone number verification
Validate the existence, carrier and line type of a phone number in seconds.
Existence, carrier and line type in one lookup.
Singula queries the line and returns whether it exists and can be dialled, with the carrier and the type when the source resolves them. Every answer arrives in seconds, with its receipt and its date.
The verdict describes the line, not whoever answers. That your customer is holding it is confirmed with a code sent from your own flow.
The number itself
That it is complete and carries the right country code. A missing digit or a foreign prefix shows up here.
Region against address
The area tied to the number is squared against the address on file. A line from another city is detected in this comparison.
How it works
One lookup, answered in the same session.
Send the request
You choose the customer whose phone you want verified. The number is taken from their file.
Number from the fileAnswer in seconds
Singula queries the line and returns the result within the same request.
A single requestVerified result
You receive the verdict with the line data. The result is stored in the customer file.
Eight data points and a receiptEight data points on the line and a receipt for your log
The verdict and the timestamp always come back. The rest fills in with whatever the source holds on the number.
The number exactly as it was taken from the customer file.
Example +52 55 1234 5678
API field: phone · stringWhether the line exists and can be dialled.
Example true
API field: valid · booleanTwo-letter code for the country the number belongs to.
Example MX
API field: country · string | nullThe same country spelled out in full.
Example Mexico
API field: country_name · string | nullThe company the line is registered with.
Example Telcel
API field: carrier · string | nullWhether the number is a mobile or a landline. Internet lines are identified separately.
Example mobile
API field: line_type · string | nullThe geographic area tied to the number.
Example Mexico City
API field: region · string | nullThe exact moment the check ran. It dates the evidence in your log.
Example 2026-07-28T14:22:08Z
API field: checked_at · ISO 8601A unique identifier for this verification, to locate it in the dashboard or from your system.
Example req_9c4b2ad17e
API field: request_id · stringFrom the answer to the decision
The answer falls into one of four outcomes, based on the verdict and the line type.
Valid mobile, with an operator
The line exists, can be dialled and has a registered operator. The result is stored in the file.
Valid landline or other line
The line exists and can be dialled. The answer records the type it is registered under.
Internet line
The number exists, registered as an internet line. The signal is recorded on the profile risk score.
Nonexistent number
The line does not exist or cannot be dialled. A corrected number is verified with a new lookup.
The same lookup runs for a single signup or for a whole base.
The result adjusts the profile risk score
Every lookup records a signal on the customer’s risk profile. Your policy sets the threshold at which a case goes to manual review.
The phone signal adds to those of the other verifications recorded on the same customer. All of them move the same profile score.
Lowers the profile risk.
Lowers the profile risk, with less weight than a mobile.
Raises the profile risk; the case goes to review depending on your threshold.
Raises the profile risk. It is the strongest signal from this lookup.
Each lookup confirms the line and leaves dated evidence
The verdict, the line type and the date are stored in the customer file.
Contact channel
The verdict confirms the line exists and can be dialled. The line type indicates whether the number receives messages.
Line and holder
The identity of whoever uses the line is confirmed by the rest of the file, starting with CURP against RENAPO.
Dated evidence
Each lookup records the state of the number at that moment, with its date. A new lookup returns the updated state.
Everything runs through the API.
Every operation on this page runs as an API call. The full field-by-field reference is in the documentation.
- Use it directly (the value in the body) or on a customer file. Same response.
curl https://api.singula.mx/app/phone-lookup/customer/cus_abc123 \
-H "Authorization: Bearer sk_live_..."
→ {
"phone": "+525512345678",
"valid": true,
"carrier": "Telcel",
"line_type": "mobile",
"country": "MX"
}Frequently asked questions
You capture the phone in the customer file and verify it from the dashboard, in one click, or from your own system. The result is stored alongside the rest of their verifications.
In seconds, inside the same request. The result appears in the dashboard and is stored in the customer file.
That the line exists and can be dialled, and that the source recognises the operator it is registered with. The identity of whoever uses it is confirmed by the other verifications in the file.
Yes. The answer carries the country along with everything else, so an international number is verified the same way. Operator and region depend on what the source knows about that number.
Yes. Every lookup leaves a receipt holding the full source answer and the moment it ran. You see it in the dashboard and can pull it from your system.
Verify phone numbers from your product
No contracts, and a free test environment before you go to production.
Create free account