Phone Validation
GET
Validate any phone number in E.164 format. Detects disposable and virtual numbers, identifies carrier and line type (mobile/fixed/VoIP), returns country and timezone, and computes a 0-100 risk score.
Status: Experimental
Credit cost: 1 credit per call
ApiKeyAuthheader
x-api-key<token>Your API key. Include it in the x-api-key header for every request.
query*stringThe phone number to validate in E.164 format (must start with +, e.g. +33612345678).
fields?stringComma-separated list of response fields to return, with dot notation for nested fields (e.g. name,location.city).
is_async?booleanRun the request as a background job: the API answers 202 with a job_id to poll on GET /v1/jobs/{id}.
Default
falsesoft_fail?booleanReturn HTTP 200 even when the request fails; the error is in the error field of the body.
Default
falseSuccessful response
application/json- response
carrier?stringcountry?stringis_spam?booleanis_valid?booleanlocation?stringis_threat?booleanline_type?stringtimezones?array<string>is_virtual?booleanrisk_score?integere164_format?stringnumber_type?stringcarrier_type?stringcountry_code?stringcountry_name?stringsource_count?integeris_disposable?booleannational_format?stringinternational_format?stringcurl -X GET 'https://api.veille.io/v1/intelligence/phone?query=string'Example Response
{ "carrier": "Orange", "country": "FR", "is_spam": false, "is_valid": true, "location": "France", "is_threat": false, "line_type": "mobile", "timezones": [ "Europe/Paris" ], "is_virtual": false, "risk_score": 0, "e164_format": "+33612345678", "number_type": "mobile", "carrier_type": "mno", "country_code": "33", "country_name": "France", "source_count": 0, "is_disposable": false, "national_format": "06 12 34 56 78", "international_format": "+33 6 12 34 56 78"}