What does the Veriphone API return for a phone number?

Validity with a reason, line type, carrier, country, region, E.164 and local formats, time zone; plus current carrier and a ported flag in current mode.

A call to GET https://api.veriphone.io/v3/verify returns a JSON object. status is "success" when a verification happened (the only charged case) and phone_valid carries the verdict. For a valid number you also get phone_type (mobile, fixed_line, voip, toll_free, fixed_line_or_mobile, short_code, emergency), carrier (the operator of the number's range), phone_region (for example "Toronto, ON"), country, country_code and country_prefix, the number formatted as international_number, local_number and e164, the timezone list and a geographical flag. An invalid number returns phone_valid false with a reason such as too_short, too_long, invalid_length, invalid_country_code or unrecognized_range. With mode=current the response adds original_carrier, original_line_type, current_carrier, current_line_type, the mobile network codes current_mccmnc and original_mccmnc, a ported boolean and carrier_data_source. A valid number is one a carrier can assign; the API does not tell you whether a handset is switched on or reachable.

Example

JSON
{
  "status": "success",
  "phone": "+14169670000",
  "phone_valid": true,
  "phone_type": "fixed_line",
  "phone_region": "Toronto, ON",
  "country": "Canada",
  "country_code": "CA",
  "country_prefix": "1",
  "international_number": "+1 416-967-0000",
  "local_number": "(416) 967-0000",
  "e164": "+14169670000",
  "carrier": "Bell",
  "mode": "static",
  "timezone": ["America/Toronto"],
  "geographical": true
}