Identity Insights API
The Identity Insights API allows clients to request real-time information related to a phone number. Users can retrieve any combination of different datasets, known as insights (e.g., number formatting, SIM swap information), in a single API call.
While some insights are available without prior registration, others require approval from mobile operators. The table below shows which Insights require approval. Access to these Insights is managed through the 'Network Registry'. To learn how to request access, follow this guide.
Each insight is processed independently, and the response includes a structured result for each insight along with a status code. The status code can contain the following values:
- OK The insight was processed successfully.
- INVALID_NUMBER_FORMAT The phone number format is not valid for assignment by carriers to users.
- UNSUPPORTED_NETWORK_TYPE The network type is not supported for this Insight.
- NO_COVERAGE The country or mobile network is not supported by available suppliers.
- NOT_FOUND The phone number could not be found for this Insight.
- OUT_OF_RANGE The request specifies an input out of the time range supported by the supplier.
- UNAUTHORIZED The request could not be authorized for the combination of application, supplier, and phone number.
- INVALID_PURPOSE The purpose used is not valid or allowed for this Insight.
- SUPPLIER_ERROR The supplier returned an error while processing the request.
- INTERNAL_ERROR An internal error occurred while processing the request.
Additionally, Subscriber Match Insight can return the following status codes:
- SUBSCRIBER_MATCH.ID_DOCUMENT_REQUIRED Operator requires `id_document` to match any other attributes.
- SUBSCRIBER_MATCH.ID_DOCUMENT_MISMATCH Operator cannot match `id_document` which is required to match any other attributes.
- SUBSCRIBER_MATCH.INVALID_PARAM_COMBINATION Indicated parameter combination is invalid.
Age Verification Insight can return the following status codes:
- AGE_VERIFICATION.NAME_REQUIRED `given_name` and `family_name` are required to verify age for this phone number.
- AGE_VERIFICATION.NAME_MISMATCH The provided `given_name` and/or `family_name` do not match subscriber record, and name match is required to verify age for this phone number.
Available Operations
Authentication
| Key | Description | Where | Example |
|---|---|---|---|
| Authorization | Your JSON web token. | Headers | Bearer <JWT> |
14040000000A single phone number you want insights on, starting with the country code. You may optionally include a leading +, but do not use 00 at the beginning. Ideally, the number should follow the E.164 format. However, the API is designed to extract the phone number even if the input string contains alphanumeric characters, spaces, or symbols like brackets.
FraudPreventionAndDetectionSpecifies the reason for the request. This property is required only for Insights that use the Network Registry. For a Network Registry of type Production, the value must match one of the network profile purposes associated with your application. For a Network Registry of type Playground, the value must be "FraudPreventionAndDetection".
A list of objects representing the insight(s) requested for the phone number. At least one insight must be requested.
Request the format insight. This field must always be set to an empty object {}.
Request the sim_swap insight.
12400240240Specifies the time window (in hours) used to determine the is_swapped response field.
Request the original_carrier insight. This field must always be set to an empty object {}.
Request the current_carrier insight. This field must always be set to an empty object {}.
Request the location_verification insight.
CIRCLEType of area.
CIRCLE20002000003000Expected accuracy for the verification in meters, from location (radius)
Request the subscriber_match insight.
66666666qId number associated to the official identity document in the country. It may contain alphanumeric characters. This might be required for some specific countries and networks.
FedericaFirst/given name or compound first/given name of the customer. This might be required for some specific countries and networks.
Sanchez ArjonaLast name, family name, or surname of the customer. This might be required for some specific countries and networks.
Crawfords Corner RoadName of the street of the customer's address. It should not include the type of the street.
4The street number of the customer's address. Number identifying a specific property on the 'streetName'.
07733Zip code or postal code
HolmdelLocality of the customer's address
Monmouth CountyRegion or prefecture of the customer's address
USCountry of the customer's address. Format ISO 3166-1 alpha-2
Suite 2416Specific identifier of the house needed depending on the property type. For example, number of apartment in an apartment building.
1978-08-22The birthdate of the customer, in ISO 8601 calendar date format (YYYY-MM-DD).
Request the roaming insight. This field must always be set to an empty object {}.
Request the reachability insight. This field must always be set to an empty object {}.
Request the device_swap insight.
12400240240Specifies the time window (in hours) used to determine the is_swapped response field.
Request the age_verification insight.
1201821The age to be verified.
RogelioFirst/given name of the customer.
Sanchez FerrerLast name, family name, or surname of the customer.
trueIf true, the response property content_lock will be returned.
trueIf true, the response property parental_control will be returned.
Request confirmation that continuous tenure of the identified network subscriber from a date.
2013-10-17The date (YYYY-MM-DD) from which continuous tenure is required to be confirmed.
Request to verify whether a phone number has changed ownership since a given date.
2013-10-17Specified date to check for ownership change (YYYY-MM-DD).
Request to estimate potential fraud using real-time telephony context. This field must always be set to an empty object {}.
Example Request
{
"phone_number": "14040000000",
"purpose": "FraudPreventionAndDetection",
"insights": {
"format": {},
"sim_swap": {
"period": 240
},
"original_carrier": {},
"current_carrier": {},
"location_verification": {
"location": {
"type": "CIRCLE",
"radius": 3000,
"center": {
"latitude": 52.52,
"longitude": 13.405
}
}
},
"subscriber_match": {
"id_document": "66666666q",
"given_name": "Federica",
"family_name": "Sanchez Arjona",
"street_name": "Crawfords Corner Road",
"street_number": "4",
"postal_code": "07733",
"locality": "Holmdel",
"region": "Monmouth County",
"country": "US",
"house_number_extension": "Suite 2416",
"birthdate": "1978-08-22"
},
"roaming": {},
"reachability": {},
"device_swap": {
"period": 240
},
"age_verification": {
"age_threshold": 21,
"given_name": "Rogelio",
"family_name": "Sanchez Ferrer",
"include_content_lock": true,
"include_parental_control": true
},
"subscriber_tenure": {
"date": "2013-10-17"
},
"number_recycling": {
"date": "2013-10-17"
},
"scam_signal": {}
}
}aaaaaaaa-bbbb-cccc-dddd-0123456789abThe unique identifier for your request. This is a alphanumeric string up to 40 characters.
A map of objects representing the requested insight(s), where each key corresponds to the name of the insight and the value contains the result and status of that insight.
Validates the format of a phone number and provides information based on that format.
USTwo character country code for phone_number. This is in ISO 3166-1 alpha-2 format.
United StatesThe full name of the country where the phone_number is registered.
1The numeric prefix for the country where the phone_number is registered.
GeorgiaThe location where the number was originally assigned, based on its prefix. This does not represent the real-time location of the device. The value indicates the country of origin or, when available, the specific geographical area associated with the number. Only landline and mobile numbers are eligible for offline location data.
List of time zones corresponding to the format.offline_location field, or a single-element list with the default "unknown" time zone if no other time zone was found or if the number is invalid. Time zone values follow the tz database identifiers.
+14040000000The phone_number from your request, formatted in international E.164 format.
(404) 000-0000The phone_number from your request, formatted according to the local convention of the country it belongs to.
truePhone number format validation involves verifying the length and prefix details at various levels to ensure accuracy and compliance with global numbering standards. A valid format means the number can be legitimately assigned by carriers to users. However, it does not guarantee that the number is currently assigned to a carrier or that it is reachable.
Indicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSuccessMore detailed status description.
Information about the network the number was initially assigned. Information based on the numbering plan prefix.
Orange Espana, S.A. UnipersonalThe full name of the original carrier associated with that phone_number. This is applicable to mobile numbers only.
MOBILEThe type of network of the original carrier associated with that phone_number. This enum is extensible; clients must handle unknown values.
MOBILELANDLINETOLLFREEPREMIUMVIRTUALESThe country that phone_number is associated with. This is in ISO 3166-1 alpha-2 format.
21403Mobile country codes (MCC) + Mobile network codes (MNC). E.212 International mobile subscriber identity.
Indicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSuccessMore detailed status description.
Information about the network the number is currently assigned. This is applicable to mobile numbers only.
Orange Espana, S.A. UnipersonalThe full name of the carrier that phone_number is associated with.
MOBILEThe type of network that phone_number is associated with. This enum is extensible; clients must handle unknown values.
MOBILEESThe country that phone_number is associated with. This is in ISO 3166-1 alpha-2 format.
21403Mobile country codes (MCC) + Mobile network codes (MNC). E.212 International mobile subscriber identity.
Indicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSuccessMore detailed status description.
Information about any recent SIM pairing changes related to a mobile account. A recent SIM swap may indicate a potential risk of account takeover.
2024-07-08T09:30:27.504ZDate and time in UTC ISO 8601 of latest SIM swap performed.
trueIndicates whether the SIM card has been swapped during the period.
Indicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSuccessMore detailed status description.
Verify whether the location of certain user device is within the area specified.
PARTIALResult of a verification request:
TRUE: when the network locates the device within the requested area,FALSE: when the requested area does not match the area where the network locates the device,UNKNOWN: when the network cannot locate the device,PARTIAL: when the requested area partially match the area where the network locates the device. Amatch_ratecould be included in the response.
TRUEFALSEUNKNOWNPARTIAL2024-07-08T09:30:27.504ZDate and time in UTC ISO 8601 of the last location.
19985Estimation of the match rate between the area in the request (R), and area where the network locates the device (N), calculated as the percent value of the intersection of both areas divided by the network area, that is (R ∩ N) / N * 100. Included only if is_verified is PARTIAL.
Indicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSuccessMore detailed status description.
Compare the information associated with a particular mobile phone user with that on file (and verified) by the mobile phone user's Operator and trusted third-party data sources.
EXACTIndicates whether Id number associated to the ID document of the customer matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEEXACTIndicates whether First name/given name of the customer matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEEXACTIndicates whether last name/ family name/ surname of the customer matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEPARTIALIndicates whether complete address of the customer matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEEXACTIndicates whether the street name of the customer matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEINCLUDED_WITH_ADDRESS_MATCHEXACTIndicates whether the street number of the customer matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEINCLUDED_WITH_ADDRESS_MATCHEXACTIndicates whether the postal code / zip code of the customer matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEINCLUDED_WITH_ADDRESS_MATCHEXACTIndicates whether the locality of the customer's address matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEINCLUDED_WITH_ADDRESS_MATCHEXACTIndicates whether the region or prefecture of the customer matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEINCLUDED_WITH_ADDRESS_MATCHEXACTIndicates whether the country of the customer's address matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEINCLUDED_WITH_ADDRESS_MATCHLOWIndicates whether the house number extension of the customer's address with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEINCLUDED_WITH_ADDRESS_MATCHEXACTIndicates whether the birthdate of the customer matches with the one on the Operator's system. This enum is extensible; clients must handle unknown values.
EXACTHIGHPARTIALLOWNONEDATA_UNAVAILABLEIndicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSUBSCRIBER_MATCH.ID_DOCUMENT_REQUIREDSUBSCRIBER_MATCH.ID_DOCUMENT_MISMATCHSUBSCRIBER_MATCH.INVALID_PARAM_COMBINATIONSuccessMore detailed status description.
Check roaming status and country for a given device on a mobile network.
2024-02-20T10:41:38.657ZDate and time in UTC ISO 8601 of the last time that the associated device roaming status was updated.
trueRoaming status. true if roaming.
An array of country codes in ISO 3166-1 alpha-2 format representing where the phone_number is roaming. The array usually contains one element, but in edge cases where the roaming network is associated with multiple countries, additional country codes are included.
Indicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSuccessMore detailed status description.
Check the connectivity status for a given device, including if it is connected to the newtork for data, SMS, or both.
2024-02-20T10:41:38.657ZDate and time in UTC ISO 8601 of the last time that the associated device connectivity status was updated.
trueIndicates overall device reachability. true if the device is connected to the network.
Indicates if the device is connected to the network for DATA or SMS usage. Will only be returned if is_reachable is true. This enum is extensible; clients must handle unknown values.
DATA,SMSIndicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSuccessMore detailed status description.
Information about any recent physical device change for a mobile phone number. A recent device swap may indicate a potential risk of account takeover.
2024-07-08T09:30:27.504ZDate and time in UTC ISO 8601 of latest device swap performed.
trueIndicates whether the SIM card has swapped devices during the period.
Indicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSuccessMore detailed status description.
Compare a given age threshold with the age information associated with a particular mobile phone user.
TRUEIndicate "TRUE" when age >= age threshold, "FALSE" if not, else "DATA_UNAVAILABLE".
TRUEFALSEDATA_UNAVAILABLEFALSEIndicates if the subscription has any kind of content lock.
TRUEFALSEDATA_UNAVAILABLEDATA_UNAVAILABLEIndicates if the subscription has any kind of parental control activated.
TRUEFALSEDATA_UNAVAILABLEIndicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKAGE_VERIFICATION.NAME_REQUIREDAGE_VERIFICATION.NAME_MISMATCHSuccessMore detailed status description.
Confirms continuous tenure of the identified network subscriber since the requested date.
trueTrue when the identified mobile subscription has had valid tenure since date.
PREPAIDCurrent account type (PREPAID, CONTRACT, or BUSINESS).
PREPAIDCONTRACTBUSINESSIndicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSuccessMore detailed status description.
Confirms whether a phone number has changed ownership since the requested date.
trueTrue if there has been a change in the subscriber associated with the phone number after the requested date.
Indicates the status of the information returned for the specified phone number.
OKCode indicating the status of the request. This enum is extensible; clients must handle unknown values.
NO_COVERAGEINVALID_PURPOSEUNAUTHORIZEDINTERNAL_ERRORSUPPLIER_ERROROUT_OF_RANGENOT_FOUNDUNSUPPORTED_NETWORK_TYPEINVALID_NUMBER_FORMATOKSuccessMore detailed status description.
Provides signals on unusual or suspicious traffic patterns. Additional information is available upon request by reaching our support team.
Example Response
{
"request_id": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"insights": {
"format": {
"country_code": "US",
"country_name": "United States",
"country_prefix": "1",
"offline_location": "Georgia",
"time_zones": [
"America/New_York"
],
"number_international": "+14040000000",
"number_national": "(404) 000-0000",
"is_format_valid": true,
"status": {
"code": "OK",
"message": "Success"
}
},
"original_carrier": {
"name": "Orange Espana, S.A. Unipersonal",
"network_type": "MOBILE",
"country_code": "ES",
"network_code": "21403",
"status": {
"code": "OK",
"message": "Success"
}
},
"current_carrier": {
"name": "Orange Espana, S.A. Unipersonal",
"network_type": "MOBILE",
"country_code": "ES",
"network_code": "21403",
"status": {
"code": "OK",
"message": "Success"
}
},
"sim_swap": {
"latest_sim_swap_at": "2024-07-08T09:30:27.504Z",
"is_swapped": true,
"status": {
"code": "OK",
"message": "Success"
}
},
"location_verification": {
"is_verified": "PARTIAL",
"latest_location_at": "2024-07-08T09:30:27.504Z",
"match_rate": 85,
"status": {
"code": "OK",
"message": "Success"
}
},
"subscriber_match": {
"id_document_match": "EXACT",
"given_name_match": "EXACT",
"family_name_match": "EXACT",
"address_match": "PARTIAL",
"street_name_match": "EXACT",
"street_number_match": "EXACT",
"postal_code_match": "EXACT",
"locality_match": "EXACT",
"region_match": "EXACT",
"country_match": "EXACT",
"house_number_extension_match": "LOW",
"birthdate_match": "EXACT",
"status": {
"code": "OK",
"message": "Success"
}
},
"roaming": {
"latest_status_at": "2024-02-20T10:41:38.657Z",
"is_roaming": true,
"country_codes": [
"DE"
],
"status": {
"code": "OK",
"message": "Success"
}
},
"reachability": {
"latest_status_at": "2024-02-20T10:41:38.657Z",
"is_reachable": true,
"connectivity": [
"DATA"
],
"status": {
"code": "OK",
"message": "Success"
}
},
"device_swap": {
"latest_device_swap_at": "2024-07-08T09:30:27.504Z",
"is_swapped": true,
"status": {
"code": "OK",
"message": "Success"
}
},
"age_verification": {
"is_age_threshold_met": "TRUE",
"content_lock": "FALSE",
"parental_control": "DATA_UNAVAILABLE",
"status": {
"code": "OK",
"message": "Success"
}
},
"subscriber_tenure": {
"is_tenure_met": true,
"contract_type": "PREPAID",
"status": {
"code": "OK",
"message": "Success"
}
},
"number_recycling": {
"is_number_recycled": true,
"status": {
"code": "OK",
"message": "Success"
}
},
"scam_signal": {}
}
}