Veille

Phone Validation

GET
/v1/intelligence/phone

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

Authorization

ApiKeyAuth
headerx-api-key<token>

Your API key. Include it in the x-api-key header for every request.

Query Parameters

query*string

The phone number to validate in E.164 format (must start with +, e.g. +33612345678).

fields?string

Comma-separated list of response fields to return, with dot notation for nested fields (e.g. name,location.city).

is_async?boolean

Run the request as a background job: the API answers 202 with a job_id to poll on GET /v1/jobs/{id}.

Defaultfalse
soft_fail?boolean

Return HTTP 200 even when the request fails; the error is in the error field of the body.

Defaultfalse

Response Body

Successful response

application/json
  1. response
carrier?string
country?string
is_spam?boolean
is_valid?boolean
location?string
is_threat?boolean
line_type?string
timezones?array<string>
is_virtual?boolean
risk_score?integer
e164_format?string
number_type?string
carrier_type?string
country_code?string
country_name?string
source_count?integer
is_disposable?boolean
national_format?string
international_format?string
Example Request
curl -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"}