Checks a telephone number for validity and formats it in a standard format. Details of the number's validity and other attributes are included in the result.
The telephone number can be supplied as either a full international number with leading + or 00 prefix (e.g. +441513554555) or as a national number (e.g. 01513554555), with or without additional formatting (e.g. spaces, brackets etc.). If a number is supplied as a national number, the default country code is used to identify which country the number is located in. The default country code can be supplied as any of:
- international telephone dialling code (e.g. 44)
- ISO 2-character code (e.g. GB)
- ISO 3-character code (e.g. GBR
- ISO standard English country name (e.g United Kingdom)
- "auto" to detect the country from the user's location (client-side integrations)
If the ValidationResult
member of the returned structure is Invalid
, the supplied telephone number is invalid and cannot be called. If it is Valid
the telephone number is likely to be valid. This does not necessarily mean that the number can be called and is owned by the expected person, but does indicate that the number lies within a range of numbers that have been allocated for use. If it is NoCoverage
we cannot provide an indication to it's validity and you should normally treat it as valid.
If you are using this API to prevent invalid telephone numbers in form submissions, we recommend only blocking Invalid
results and allowing all other status codes.
This service is not appropriate if you require an absolute indication that a telephone number is related to a particular individual. In those circumstances, you should consider the use of a telephone number capture service. However, this service does provide a quick method to check that a number can accept incoming calls.
Wherever possible this method will perform a live check of the telephone network. This will be performed for UK landline numbers and international mobile numbers. The ValidationLevel
property in the response will be set to FullNumber
if a live check was performed.
UK numbers that start with 070
, often referred to as personal numbers, are incredibly difficult to validate with any certainty, due to their private nature. We have created an option you can pass in to the API code, ExcludeUnlikelyNumbers
, which will stop the likes of 07000000000
or 07077777777
getting through our validation. Please bear in mind that with this option, you may well exclude a small amount of genuine numbers.
To connect to this service you'll need to use one of these endpoints:
Protocol | URL |
---|---|
JSON |
JSON
https://webservices.data-8.co.uk/PhoneValidation/IsValid.json |
OPEN API |
OPEN API
https://webservices.data-8.co.uk/swagger/PhoneValidation/swagger.json |
SOAP |
SOAP
https://webservices.data-8.co.uk/phonevalidation.asmx |
Name | Description |
---|---|
username | username
See the available authentication methods. If you are using username & password authentication, specify the username to authenticate as. If you are using API Key authentication and you are not using the JSON, Javascript or ADO APIs, use your API Key here with the prefix |
password | password
If you are using username & password authentication, specify the password to use for authentication. Otherwise leave this blank. |
telephoneNumber | telephoneNumber
The telephone number to validate |
defaultCountry | defaultCountry
The ISO 2-character country code or international dialling code of the country to validate the |
options | options
An array of options that control further details of how this method operates. See the |
option
parameter. Each option is specified as a key/value pair.
The list of available names is shown below, along with a description of the allowable values for that name.
Name | Description | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Common Options | ||||||||||||||||||||||
ApplicationName |
ApplicationName
Gives the name of the calling application - used to break down usage by application in the usage reports on the dashboard.
| |||||||||||||||||||||
Service Specific Options | ||||||||||||||||||||||
RequiredCountry | RequiredCountry
Indicates the country that the number must be in to be considered valid. This should be provided as the ISO 2-character country code. | |||||||||||||||||||||
AllowedPrefixes | AllowedPrefixes
A comma-separated list of prefixes in standard international format that the number must start with to be treated as valid. For example, use "+441,+442" to allow only standard UK landline numbers. | |||||||||||||||||||||
BarredPrefixes | BarredPrefixes
A comma-separated list of prefixes in standard international format that will cause the number to be treated as invalid. For example, use "+90,+447781" to block any Indian numbers or numbers allocated to C&W Guernsey. | |||||||||||||||||||||
TreatUnavailableMobileAsInvalid | TreatUnavailableMobileAsInvalid
When validating a mobile number and the number is unavailable, this option causes the service to return | |||||||||||||||||||||
ExcludeUnlikelyNumbers | ExcludeUnlikelyNumbers
If set to | |||||||||||||||||||||
DefaultFormatType | DefaultFormatType
The format the telephone number should be returned in. This can be one of the following values:
| |||||||||||||||||||||
DifferentFormatCountries | DifferentFormatCountries
A comma-separated list of country codes (without leading + or 00). Any telephone numbers for these countries will be formatted using the | |||||||||||||||||||||
DifferentFormatType | DifferentFormatType
The format the telephone number should be returned in if it is from a country listed in | |||||||||||||||||||||
UseLocalFormatting | UseLocalFormatting
Indicates if telephone numbers should be formatted according to the country-specific rules for its particular country with spaces, punctuation etc. If this is set to false, numbers are formatted according to ITU international standard formatting. | |||||||||||||||||||||
EndUserIPAddress | EndUserIPAddress
If the | |||||||||||||||||||||
CustomFormatCountries | CustomFormatCountries
The Formats are specified using the following special characters. Examples show the result of the formatting character based on the input telephone number +441513554555 extension 1234.
Any other characters will be treated as literal strings. The backslash character is used as an escape character, so If there are more numbers in the telephone number than are output by the specified format string, the additional numbers will be appended to the result to ensure no data is lost. | |||||||||||||||||||||
IncludeUSStatus | IncludeUSStatus
By default, all North American phone numbers will be validated to ensure the exchange is correct, i.e. all but the final 4 digits. Full number validation is available for US mobile numbers, but due to the costs involved in this process any such numbers are billed at 2 credits per lookup instead of the usual 1. Because of this difference in cost, this is an opt-in process. You can opt-in to this additional validation on a per-request basis using this option, or you can change your default setting on your dashboard. |
Name | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Status
Indicates whether the method call was successful, or if some error occurred. If the | ||||||||||||||||||
Result | Result
Contains properties indicating the validity and other information for the supplied telephone number:
|
Each request to this method consumes 1 Phone Validation credit for each request, except where a "NoCoverage" result is returned. US mobile numbers are billed at 2 credits per request if the "IncludeUSStatus" option is set to true, or the default setting to enable this is turned on for your account.
Request Format
{ "telephoneNumber": "0151 355 4555", "defaultCountry": "GB", "options": { "RequiredCountry": null, "AllowedPrefixes": null, "BarredPrefixes": null, "TreatUnavailableMobileAsInvalid": false, "ExcludeUnlikelyNumbers": false, "DefaultFormatType": "National", "DifferentFormatCountries": 44, "DifferentFormatType": "National", "UseLocalFormatting": true, "EndUserIPAddress": null, "CustomFormatCountries": "1=(000) 000-0000", "IncludeUSStatus": true } }
Response Format
{ "Status": { "Success": true, "CreditsRemaining": 1000 }, "Result": { "TelephoneNumber": "0151 355 4555", "ValidationResult": "Valid", "ValidationLevel": "FullNumber", "NumberType": "Landline", "Location": "Liverpool", "Provider": "BT", "CountryCode": "GB", "CountryName": "United Kingdom" } }
Depending on your chosen authentication method you will need to modify this request slightly:
API Key
https://webservices.data-8.co.uk/PhoneValidation/IsValid.json?key=your-api-key
and do NOT include the
username
or password
properties in the request JSON document.
Username and Password
https://webservices.data-8.co.uk/PhoneValidation/IsValid.json
and include
username
and password
properties in the request JSON document.Do not use for client-side requests!
JWT Token
https://webservices.data-8.co.uk/PhoneValidation/IsValid.json
Include the JWT token in the request headers as:
Authorization: Bearer your-jwt-token
Parameter | Value |
---|---|
Parameters | |
telephoneNumber | telephoneNumber
|
defaultCountry | defaultCountry
|
Common Options | |
ApplicationName |
ApplicationName
|
Service-Specific Options | |
RequiredCountry |
RequiredCountry |
AllowedPrefixes |
AllowedPrefixes |
BarredPrefixes |
BarredPrefixes |
TreatUnavailableMobileAsInvalid |
TreatUnavailableMobileAsInvalid |
ExcludeUnlikelyNumbers |
ExcludeUnlikelyNumbers |
DefaultFormatType |
DefaultFormatType |
DifferentFormatCountries |
DifferentFormatCountries |
DifferentFormatType |
DifferentFormatType |
UseLocalFormatting |
UseLocalFormatting |
EndUserIPAddress |
EndUserIPAddress |
CustomFormatCountries |
CustomFormatCountries |
IncludeUSStatus |
IncludeUSStatus |
Credits Remaining Today: 5 |