openapi: 3.2.0
info:
title: Vonage Advanced API
version: 1.2.1
contact:
name: Vonage DevRel
email: devrel@vonage.com
url: https://developer.nexmo.com/
license:
name: The MIT License (MIT)
url: https://opensource.org/licenses/MIT
termsOfService: https://www.nexmo.com/terms-of-use
x-metaDescription: Find quick answers to questions about the Vonage Number Insight API in this reference guide. Learn more in Vonage's API documentation.
x-metaTitle: Vonage Number Insight API Reference | Vonage API Documentation
description: 'Operations tagged Advanced across 2 of this provider''s published API definitions: vonage-number-insight-openapi.json, vonage-number-insight-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.nexmo.com/ni
security:
- basicAuth: []
tags:
- name: Advanced
paths:
/advanced/async/{format}:
parameters:
- $ref: '#/components/parameters/format'
get:
operationId: getNumberInsightAsync
summary: Advanced Number Insight (async)
description: 'Provides advanced number insight number information **asynchronously** using the URL specified in the `callback` parameter. recommends asynchronous use of the Number Insight Advanced API, to avoid timeouts.
Note that this endpoint also supports `POST` requests.'
parameters:
- $ref: '#/components/parameters/callback'
- $ref: '#/components/parameters/number'
- $ref: '#/components/parameters/country'
- $ref: '#/components/parameters/cnam'
- $ref: '#/components/parameters/ip'
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/niResponseAsync'
text/xml:
schema:
$ref: '#/components/schemas/niResponseAsync'
tags:
- Advanced
servers:
- url: https://api.nexmo.com/ni
/advanced/{format}:
parameters:
- $ref: '#/components/parameters/format'
get:
operationId: getNumberInsightAdvanced
summary: Advanced Number Insight (sync)
description: 'Provides advanced number insight information about a number synchronously, in the same way that the basic and standard endpoints do.
Vonage recommends accessing the Advanced API **asynchronously** using the `/advanced/async` endpoint, to avoid timeouts.
Note that this endpoint also supports `POST` requests.'
parameters:
- $ref: '#/components/parameters/real_time_data'
- $ref: '#/components/parameters/number'
- $ref: '#/components/parameters/country'
- $ref: '#/components/parameters/cnam'
- $ref: '#/components/parameters/ip'
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/niResponseJsonAdvancedSync'
- $ref: '#/components/schemas/niResponseJsonAdvancedRoamingUnknown'
text/xml:
schema:
$ref: '#/components/schemas/niResponseXmlAdvanced'
tags:
- Advanced
servers:
- url: https://api.nexmo.com/ni
components:
schemas:
niResponseAsync:
description: Async Response
type: object
xml:
name: lookup
properties:
request_id:
type: string
description: The unique identifier for your request. This is a alphanumeric string up to 40 characters.
example: aaaaaaaa-bbbb-cccc-dddd-0123456789ab
maxLength: 40
xml:
name: requestId
number:
type: string
description: The `number` in your request
example: '447700900000'
remaining_balance:
type: string
description: Your account balance in EUR after this request.
example: '1.23456789'
xml:
name: remainingBalance
request_price:
type: string
description: If there is an internal lookup error, the `refund_price` will reflect the lookup price. If `cnam` is requested for a non-US number the `refund_price` will reflect the `cnam` price. If both of these conditions occur, `refund_price` is the sum of the lookup price and `cnam` price.
example: '0.01500000'
xml:
name: requestPrice
status:
$ref: '#/components/schemas/niStandardAdvancedStatus'
error_text:
type: string
description: 'The status description of your request. Note: This field is equivalent to `status_message` field in the other endpoints'
example: Success
niRealtimeData:
type:
- object
- 'null'
description: [This parameter is deprecated] Real time data about the `number`
properties:
active_status:
type: string
description: [This parameter is deprecated. If requested it returns always inactive]. Whether the end-user's phone number is assigned to an operator's network. Can be active, inactive or null.
example: inactive
handset_status:
type: string
description: [This parameter is deprecated. If requested it returns always off]. Whether the end-user's handset is reachable. Can be on if reachable or off if not reachable.
example: 'off'
niResponseXmlAdvanced:
type: object
description: Advanced
xml:
name: lookup
properties:
request_id:
type: string
description: The unique identifier for your request. This is a alphanumeric string up to 40 characters.
example: aaaaaaaa-bbbb-cccc-dddd-0123456789ab
maxLength: 40
xml:
name: request_id
international_format_number:
type: string
description: The `number` in your request in international format.
example: '447700900000'
local_number:
type: object
x-nexmo-developer-collection-description-shown: true
description: An object containing the `number` in your request in the format used by the country the number belongs to.
properties:
country_code:
type: string
description: Two character country code for `number`. This is in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
example: GB
pattern: '[A-Z]{2}'
xml:
attribute: true
country_code_iso3:
type: string
description: Three character country code for `number`. This is in [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) format.
example: GBR
pattern: '[A-Z]{3}'
xml:
attribute: true
country_name:
type: string
description: The full name of the country that `number` is registered in.
example: United Kingdom
xml:
attribute: true
country_prefix:
type: string
description: The numeric prefix for the country that `number` is registered in.
example: '44'
xml:
attribute: true
number:
type: string
description: The `number` in your request in the format used by the country the number belongs to.
example: 07700 900000
xml:
x-text: true
error:
type: object
x-nexmo-developer-collection-description-shown: true
description: The error code and status of your request
properties:
code:
type: string
description: The status code
example: '0'
xml:
attribute: true
status_text:
type: string
description: The status description of your request.
example: Success
xml:
x-text: true
request_price:
type: string
description: If there is an internal lookup error, the `refund_price` will reflect the lookup price. If `cnam` is requested for a non-US number the `refund_price` will reflect the `cnam` price. If both of these conditions occur, `refund_price` is the sum of the lookup price and `cnam` price.
example: '0.01500000'
remaining_balance:
type: string
description: Your account balance in EUR after this request.
example: '1.23456789'
current_carrier:
$ref: '#/components/schemas/niCurrentCarrierProperties'
original_carrier:
$ref: '#/components/schemas/niInitialCarrierProperties'
ported:
description: If the user has changed carrier for `number`. The assumed status means that the information supplier has replied to the request but has not said explicitly that the number is ported.
properties:
ported_message:
type: string
description: If the user has changed carrier for `number`. The assumed status means that the information supplier has replied to the request but has not said explicitly that the number is ported.
enum:
- unknown
- ported
- not_ported
- assumed_not_ported
- assumed_ported
example: not_ported
xml:
x-text: true
caller_identity:
description: Contains details of the number owner, if `cnam` was set to `true` in the request.
properties:
caller-type:
type: string
description: The value will be `business` if the owner of a phone number is a business. If the owner is an individual the value will be `consumer`. The value will be `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.
enum:
- business
- consumer
- unknown
example: consumer
xml:
attribute: true
caller-name:
type: string
description: Full name of the person or business who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.
example: John Smith
xml:
attribute: true
first-name:
type: string
description: First name of the person who owns the phone number if the owner is an individual. This parameter is only present if `cnam` had a value of `true` within the request.
example: John
xml:
attribute: true
last-name:
type: string
description: Last name of the person who owns the phone number if the owner is an individual. This parameter is only present if `cnam` had a value of `true` within the request.
example: Smith
xml:
attribute: true
caller_name:
type: string
description: Full name of the person or business who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.
example: John Smith
last_name:
type: string
description: Last name of the person who owns the phone number if the owner is an individual. This parameter is only present if `cnam` had a value of `true` within the request. `unknown` if this information is not available.
example: Smith
firs_name:
type: string
description: First name of the person who owns the phone number if the owner is an individual. This parameter is only present if `cnam` had a value of `true` within the request. `unknown` if this information is not available.
example: John
caller_type:
type: string
description: The value will be `business` if the owner of a phone number is a business. If the owner is an individual the value will be `consumer`. The value will be `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.
enum:
- business
- consumer
- unknown
example: consumer
lookup_outcome:
type: object
x-nexmo-developer-collection-description-shown: true
description: An object indicating whether all information about a phone number has been returned.
properties:
code:
description: 'Shows if all information about a phone number has been returned. Possible values:
Code | Text
-- | --
0 | Success
1 | Partial success - some fields populated
2 | Failed
'
enum:
- 0
- 1
- 2
example: 0
xml:
attribute: true
lookup_outcome_message:
type: string
description: Shows if all information about a phone number has been returned.
example: Success
xml:
x-text: true
reachable:
type:
- string
- 'null'
description: Can you call `number` now. This is applicable to mobile numbers only.
enum:
- unknown
- reachable
- undeliverable
- absent
- bad_number
- blacklisted
- 'null'
example: reachable
roaming:
$ref: '#/components/schemas/niRoaming'
valid_number:
type: string
description: Does `number` exist. `unknown` means the number could not be validated. `valid` means the number is valid. `not_valid` means the number is not valid. `inferred_not_valid` means that the number could not be determined as valid or invalid via an external system and the best guess is that the number is invalid. This is applicable to mobile numbers only.
enum:
- unknown
- valid
- not_valid
- inferred_not_valid
example: valid
ip_warnings:
type:
- string
- 'null'
description: This property is deprecated and can safely be ignored.
example: unknown
niResponseJsonAdvancedRoamingUnknown:
description: Unknown Roaming
type: object
properties:
status:
$ref: '#/components/schemas/niStandardAdvancedStatus'
status_message:
type: string
description: The status description of your request.
example: Success
request_id:
type: string
description: The unique identifier for your request. This is a alphanumeric string up to 40 characters.
example: aaaaaaaa-bbbb-cccc-dddd-0123456789ab
maxLength: 40
international_format_number:
type: string
description: The `number` in your request in international format.
example: '447700900000'
national_format_number:
type: string
description: The `number` in your request in the format used by the country the number belongs to.
example: 07700 900000
country_code:
type: string
description: Two character country code for `number`. This is in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
example: GB
pattern: '[A-Z]{2}'
country_code_iso3:
type: string
description: Three character country code for `number`. This is in [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) format.
example: GBR
pattern: '[A-Z]{3}'
country_name:
type: string
description: The full name of the country that `number` is registered in.
example: United Kingdom
country_prefix:
type: string
description: The numeric prefix for the country that `number` is registered in.
example: '44'
request_price:
type: string
description: The amount in EUR charged to your account.
example: '0.04000000'
refund_price:
type: string
description: If there is an internal lookup error, the `refund_price` will reflect the lookup price. If `cnam` is requested for a non-US number the `refund_price` will reflect the `cnam` price. If both of these conditions occur, `refund_price` is the sum of the lookup price and `cnam` price.
example: '0.01500000'
remaining_balance:
type: string
description: Your account balance in EUR after this request.
example: '1.23456789'
current_carrier:
$ref: '#/components/schemas/niCurrentCarrierProperties'
original_carrier:
$ref: '#/components/schemas/niInitialCarrierProperties'
ported:
type:
- string
- 'null'
description: If the user has changed carrier for `number`. The assumed status means that the information supplier has replied to the request but has not said explicitly that the number is ported.
enum:
- unknown
- ported
- not_ported
- assumed_not_ported
- assumed_ported
- 'null'
example: not_ported
roaming:
type: string
example: unknown
enum:
- unknown
caller_identity:
$ref: '#/components/schemas/niCallerIdentity'
lookup_outcome:
type: integer
description: 'Shows if all information about a phone number has been returned. Possible values:
Code | Text
--- | ---
0 | Success
1 | Partial success - some fields populated
2 | Failed
'
enum:
- 0
- 1
- 2
example: 0
lookup_outcome_message:
type: string
description: Shows if all information about a phone number has been returned.
example: Success
valid_number:
type: string
description: Does `number` exist. `unknown` means the number could not be validated. `valid` means the number is valid. `not_valid` means the number is not valid. `inferred_not_valid` means that the number could not be determined as valid or invalid via an external system and the best guess is that the number is invalid. This is applicable to mobile numbers only.
enum:
- unknown
- valid
- not_valid
- inferred
- inferred_not_valid
example: valid
reachable:
type:
- string
- 'null'
description: Can you call `number` now. This is applicable to mobile numbers only.
enum:
- unknown
- reachable
- undeliverable
- absent
- bad_number
- blacklisted
- 'null'
example: reachable
required:
- status
- status_message
- request_id
- international_format_number
- national_format_number
- country_code
- country_code_iso3
- country_name
- country_prefix
niStandardAdvancedStatus:
type: integer
example: 0
enum:
- 0
- 1
- 3
- 4
- 5
- 9
- 19
- 43
- 44
- 45
- 999
description: 'Code | Text
-- | --
0 | Success - request accepted for delivery by .
1 | Busy - you have made more requests in the last second than are permitted by your account. Please retry.
3 | Invalid - your request is incomplete and missing some mandatory parameters.
4 | Invalid credentials - the _api_key_ or _api_secret_ you supplied is either not valid or has been disabled.
5 | Internal Error - the format of the recipient address is not valid.
9 | Partner quota exceeded - your account does not have sufficient credit to process this request.
19 | Facility Not Allowed - your request makes use of a facility that is not enabled on your account.
43, 44, 45 | Live mobile lookup not returned. Not all return parameters are available.
999 | Request unparseable.
'
niInitialCarrierProperties:
type:
- object
- 'null'
x-nexmo-developer-collection-description-shown: true
description: Information about the network `number` was initially connected to.
properties:
network_code:
type:
- string
- 'null'
description: The [https://en.wikipedia.org/wiki/Mobile_country_code](https://en.wikipedia.org/wiki/Mobile_country_code) for the carrier`number` is associated with. Unreal numbers are marked as`null` and the request is rejected altogether if the number is impossible according to the [E.164](https://en.wikipedia.org/wiki/E.164) guidelines.
xml:
attribute: true
example: '12345'
name:
type:
- string
- 'null'
description: The full name of the carrier that `number` is associated with.
xml:
attribute: true
example: Acme Inc
country:
type:
- string
- 'null'
description: The country that `number` is associated with. This is in ISO 3166-1 alpha-2 format.
xml:
attribute: true
example: GB
network_type:
type:
- string
- 'null'
description: The type of network that `number` is associated with.
enum:
- mobile
- landline
- landline_premium
- landline_tollfree
- virtual
- unknown
- pager
- 'null'
xml:
attribute: true
example: mobile
niCallerIdentity:
type: object
description: Information about the network `number` is currently connected to.
properties:
caller_type:
type: string
description: The value will be `business` if the owner of a phone number is a business. If the owner is an individual the value will be `consumer`. The value will be `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.
enum:
- business
- consumer
- unknown
example: consumer
caller_name:
type: string
description: Full name of the person or business who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.
example: John Smith
first_name:
type: string
description: First name of the person who owns the phone number if the owner is an individual. This parameter is only present if `cnam` had a value of `true` within the request. `unknown` if this information is not available.
example: John
last_name:
type: string
description: Last name of the person who owns the phone number if the owner is an individual. This parameter is only present if `cnam` had a value of `true` within the request. `unknown` if this information is not available.
example: Smith
niResponseJsonAdvancedSync:
description: Advanced Response (sync)
type: object
properties:
status:
$ref: '#/components/schemas/niStandardAdvancedStatus'
status_message:
type: string
description: The status description of your request.
example: Success
request_id:
type: string
description: The unique identifier for your request. This is a alphanumeric string up to 40 characters.
example: aaaaaaaa-bbbb-cccc-dddd-0123456789ab
maxLength: 40
international_format_number:
type: string
description: The `number` in your request in international format.
example: '447700900000'
national_format_number:
type: string
description: The `number` in your request in the format used by the country the number belongs to.
example: 07700 900000
country_code:
type: string
description: Two character country code for `number`. This is in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
example: GB
pattern: '[A-Z]{2}'
country_code_iso3:
type: string
description: Three character country code for `number`. This is in [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) format.
example: GBR
pattern: '[A-Z]{3}'
country_name:
type: string
description: The full name of the country that `number` is registered in.
example: United Kingdom
country_prefix:
type: string
description: The numeric prefix for the country that `number` is registered in.
example: '44'
request_price:
type: string
description: The amount in EUR charged to your account.
example: '0.04000000'
refund_price:
type: string
description: If there is an internal lookup error, the `refund_price` will reflect the lookup price. If `cnam` is requested for a non-US number the `refund_price` will reflect the `cnam` price. If both of these conditions occur, `refund_price` is the sum of the lookup price and `cnam` price.
example: '0.01500000'
remaining_balance:
type: string
description: Your account balance in EUR after this request.
example: '1.23456789'
current_carrier:
$ref: '#/components/schemas/niCurrentCarrierProperties'
original_carrier:
$ref: '#/components/schemas/niInitialCarrierProperties'
ported:
type:
- string
- 'null'
description: If the user has changed carrier for `number`. The assumed status means that the information supplier has replied to the request but has not said explicitly that the number is ported.
enum:
- unknown
- ported
- not_ported
- assumed_not_ported
- assumed_ported
- 'null'
example: not_ported
roaming:
$ref: '#/components/schemas/niRoaming'
caller_identity:
$ref: '#/components/schemas/niCallerIdentity'
lookup_outcome:
type: integer
description: 'Shows if all information about a phone number has been returned. Possible values:
Code | Text
--- | ---
0 | Success
1 | Partial success - some fields populated
2 | Failed
'
enum:
- 0
- 1
- 2
example: 0
lookup_outcome_message:
type: string
description: Shows if all information about a phone number has been returned.
example: Success
valid_number:
type: string
description: Does `number` exist. `unknown` means the number could not be validated. `valid` means the number is valid. `not_valid` means the number is not valid. `inferred_not_valid` means that the number could not be determined as valid or invalid via an external system and the best guess is that the number is invalid. This is applicable to mobile numbers only.
enum:
- unknown
- valid
- not_valid
- inferred
- inferred_not_valid
example: valid
reachable:
type:
- string
- 'null'
description: Can you call `number` now. This is applicable to mobile numbers only.
enum:
- unknown
- reachable
- undeliverable
- absent
- bad_number
- blacklisted
- 'null'
example: reachable
real_time_data:
$ref: '#/components/schemas/niRealtimeData'
required:
- status
- status_message
- request_id
- international_format_number
- national_format_number
- country_code
- country_code_iso3
- country_name
- country_prefix
niCurrentCarrierProperties:
type:
- object
- 'null'
x-nexmo-developer-collection-description-shown: true
description: Information about the network `number` is currently connected to. While in some cases and regions it may return information for non-mobile numbers, this field is supported only for mobile numbers.
properties:
network_code:
type:
- string
- 'null'
description: The [https://en.wikipedia.org/wiki/Mobile_country_code](https://en.wikipedia.org/wiki/Mobile_country_code) for the carrier`number` is associated with. Unreal numbers are marked as`null` and the request is rejected altogether if the number is impossible according to the [E.164](https://en.wikipedia.org/wiki/E.164) guidelines.
xml:
attribute: true
example: '12345'
name:
type:
- string
- 'null'
description: The full name of the carrier that `number` is associated with.
xml:
attribute: true
example: Acme Inc
country:
type:
- string
- 'null'
description: The country that `number` is associated with. This is in ISO 3166-1 alpha-2 format.
xml:
attribute: true
example: GB
network_type:
type:
- string
- 'null'
description: The type of network that `number` is associated with.
enum:
- mobile
- landline
- landline_premium
- landline_tollfree
- virtual
- unknown
- pager
- 'null'
xml:
attribute: true
example: mobile
niRoaming:
type:
- object
- 'null'
description: Information about the roaming status for `number`. This is applicable to mobile numbers only. If unknown, this may return a string of `unknown` instead of an object.
properties:
status:
type: string
description: Is `number` outside its home carrier network.
enum:
- roaming
- not_roaming
example: roaming
xml:
attribute: true
roaming_country_code:
type: string
description: If `number` is `roaming`, this is the [code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country `number` is roaming in.
example: US
xml:
attribute: true
roaming_network_code:
type: string
description: If `number` is `roaming`, this is the id of the carrier network `number` is roaming in.
example: '12345'
xml:
attribute: true
roaming_network_name:
type: string
description: If `number` is `roaming`, this is the name of the carrier network `number` is roaming in.
example: Acme Inc
xml:
attribute: true
parameters:
cnam:
name: cnam
in: query
example: true
description: Indicates if the name of the person who owns the phone number should be looked up and returned in the response. Set to true to receive phone number owner name in the response. This feature is available only for US numbers but not all US numbers are supported. It incurs an additional charge for US numbers regardless of whether any information is returned. For non-US numbers and for non-approved users, the CNAM response attributes are omitted and no additional charges are incurred.
schema:
type: boolean
default: false
format:
name: format
in: path
required: true
description: The format of the response
example: json
schema:
type: string
enum:
- json
- xml
number:
name: number
in: query
description: A single phone number that you need insight about in national or international format.
example: '447700900000'
required: true
schema:
type: string
pattern: ^[0-9-+\(\)\s]*$
callback:
name: callback
in: query
example: https://example.com/callback
description: The callback URL
required: true
schema:
type: string
format: uriref
ip:
name: ip
in: query
example: 123.0.0.255
description: 'This parameter is deprecated as we are no longer able to retrieve reliable IP data globally from carriers. '
schema:
type: string
deprecated: true
real_time_data:
name: real_time_data
in: query
description: [This parameter is deprecated] Real time data about the number. This is applicable to mobile numbers only.
example: true
required: false
schema:
type: boolean
country:
name: country
in: query
example: GB
description: If a number does not have a country code or is uncertain, set the two-character country code. This code must be in ISO 3166-1 alpha-2 format and in upper case. For example, GB or US. If you set country and number is already in [E.164](https://en.wikipedia.org/wiki/E.164) format, country must match the country code in number.
schema:
type: string
pattern: '[A-Z]{2}'
securitySchemes:
basicAuth:
type: http
scheme: basic
externalDocs:
url: https://developer.nexmo.com/api/number-insight
x-sha1: 081f6d985e2e4a75586da1654fde880a96885405
x-refined-from:
- vonage-number-insight-openapi.json
- vonage-number-insight-openapi.yml
x-errors:
validation:
description: The provided payload is invalid
resolution: 'Modify your request to provide a valid payload.
* Minimum 8 characters
* Maximum 25 characters
* Minimum 1 lower case character
* Minimum 1 upper case character
* Minimum 1 digit
'
link:
text: View API reference
url: /api/account#createAPISecret
delete-last-secret:
description: You can not delete your only API secret
resolution: Add another API secret before deleting this one