Who it is for
Use the suite to improve form handling, prioritize manual review, enrich organizations, and connect website-declared assets.
Try a product, outcome, endpoint path, or API topic.
Parse, validate, classify, and format global phone numbers, then add offline location, time zone, original prefix carrier, dialing, short-code, and regulator allocation context when available.
Parse, validate, classify, and format global phone numbers, then add offline location, time zone, original prefix carrier, dialing, short-code, and regulator allocation context when available.
Use the suite to improve form handling, prioritize manual review, enrich organizations, and connect website-declared assets.
Choose this to parse, format, and assess public numbering and line-type signals. It does not prove reachability, ownership, or user identity.
Parse, validate, classify, and format global phone numbers, then add offline location, time zone, original prefix carrier, dialing, short-code, and regulator allocation context when available.
Review the supported operations, inputs, outputs, execution modes, and response limits before integrating.
1 Authentication required. Check the operation reference for the exact cost and any per-item pricing.
Use documented operations to collect, assess, enrich, verify, compare, protect, or monitor public evidence.
| Parameter | Type | required |
|---|---|---|
| phone | string | required |
| default_country | string | optional |
| expected_country | string | optional |
| dialing_from_country | string | optional |
| language | string | optional |
| Field | Type |
|---|---|
input |
string |
normalized_input |
string |
kind |
string |
valid |
boolean |
possible |
boolean |
status |
string |
recommendation |
string |
validation_level |
string |
reason |
string | null |
warnings[] |
string[] |
number |
object |
number.e164 |
string |
number.international |
string |
number.national |
string |
number.rfc3966 |
string |
number.national_number |
string |
number.extension |
string | null |
number.country |
string | null |
number.country_name |
string | null |
number.country_calling_code |
string |
number.possible_countries[] |
string[] |
number.country_match |
boolean | null |
number.type |
string |
number.non_geographic |
boolean |
live_checks |
object |
live_checks.assignment |
string |
live_checks.reachability |
string |
live_checks.current_carrier |
string |
live_checks.subscriber_identity |
string |
live_checks.porting |
string |
privacy |
object |
privacy.upstream_requests |
integer |
privacy.telecom_provider_queried |
boolean |
privacy.persisted |
boolean |
privacy.domscan_edge_relay_used |
boolean |
privacy.third_party_requests |
integer |
intelligence |
object |
intelligence.status |
string |
intelligence.kind |
string | null |
intelligence.reason |
string | null |
intelligence.coverage |
object |
intelligence.coverage.country |
string | null |
intelligence.coverage.level |
string |
intelligence.coverage.global_numbering_metadata |
boolean |
intelligence.coverage.official_snapshot_available |
boolean |
intelligence.coverage.official_allocation_match |
boolean |
intelligence.coverage.official_source_ids[] |
string[] |
intelligence.coverage.matching_source_ids[] |
string[] |
intelligence.coverage.current_carrier_lookup |
boolean |
intelligence.location |
object |
intelligence.location.label |
string | null |
intelligence.location.country_name |
string | null |
intelligence.location.country |
string | null |
intelligence.location.language |
string |
intelligence.location.granularity |
string |
intelligence.location.current_physical_location |
boolean |
intelligence.possible_time_zones |
object |
intelligence.possible_time_zones.values[] |
string[] |
intelligence.possible_time_zones.current_location |
boolean |
intelligence.possible_time_zones.inference |
string |
intelligence.original_prefix_carrier |
object |
intelligence.original_prefix_carrier.name |
string | null |
intelligence.original_prefix_carrier.source_id |
string | null |
intelligence.original_prefix_carrier.evidence |
string |
intelligence.original_prefix_carrier.current_carrier |
boolean |
intelligence.original_prefix_carrier.portability_may_change_carrier |
boolean |
intelligence.portability |
object |
intelligence.portability.region_supported |
boolean |
intelligence.portability.current_port_checked |
boolean |
intelligence.dialing |
object |
intelligence.dialing.from_country |
string | null |
intelligence.dialing.international |
string | null |
intelligence.dialing.mobile |
string | null |
intelligence.dialing.internationally_diallable |
boolean |
intelligence.number_details |
object |
intelligence.number_details.geographical |
boolean |
intelligence.number_details.geographical_area_code |
string | null |
intelligence.number_details.geographical_area_code_length |
integer |
intelligence.number_details.national_destination_code |
string | null |
intelligence.number_details.national_destination_code_length |
integer |
intelligence.number_details.subscriber_number_length |
integer |
intelligence.number_details.mobile_token |
string | null |
intelligence.service_signals |
object |
intelligence.service_signals.number_type |
string |
intelligence.service_signals.geographical |
boolean |
intelligence.service_signals.toll_free |
boolean |
intelligence.service_signals.premium_rate |
boolean |
intelligence.service_signals.shared_cost |
boolean |
intelligence.service_signals.voip |
boolean |
intelligence.service_signals.personal_number |
boolean |
intelligence.service_signals.likely_sms_capable |
boolean | null |
intelligence.short_number |
object |
intelligence.short_number.region |
string |
intelligence.short_number.possible |
boolean |
intelligence.short_number.valid |
boolean |
intelligence.short_number.emergency |
boolean |
intelligence.short_number.connects_to_emergency |
boolean |
intelligence.short_number.sms_service |
boolean |
intelligence.short_number.carrier_specific |
boolean |
intelligence.short_number.expected_cost |
string |
intelligence.regulator_allocations[] |
object[] |
intelligence.regulator_allocations[] |
object |
intelligence.regulator_allocations[].authority |
string |
intelligence.regulator_allocations[].country |
string |
intelligence.regulator_allocations[].matched_prefix |
string |
intelligence.regulator_allocations[].matched_range_end |
string | null |
intelligence.regulator_allocations[].match_kind |
string |
intelligence.regulator_allocations[].category |
string |
intelligence.regulator_allocations[].status |
string |
intelligence.regulator_allocations[].original_assignee |
string | null |
intelligence.regulator_allocations[].operator_code |
string | null |
intelligence.regulator_allocations[].region |
string | null |
intelligence.regulator_allocations[].service_description |
string | null |
intelligence.regulator_allocations[].assigned_on |
string | null |
intelligence.regulator_allocations[].effective_on |
string | null |
intelligence.regulator_allocations[].expires_on |
string | null |
intelligence.regulator_allocations[].current_operator |
boolean |
intelligence.regulator_allocations[].portability_included |
boolean |
intelligence.regulator_allocations[].individual_number_assignment_checked |
boolean |
intelligence.regulator_allocations[].source_id |
string |
intelligence.regulator_allocations[].source_file |
string | null |
intelligence.regulator_allocations[].details |
object |
intelligence.sources[] |
object[] |
intelligence.sources[] |
object |
intelligence.sources[].id |
string |
intelligence.sources[].name |
string |
intelligence.sources[].type |
string |
intelligence.sources[].version |
string | null |
intelligence.sources[].updated_at |
string | null |
intelligence.sources[].retrieved_at |
string | null |
intelligence.sources[].age_days |
integer | null |
intelligence.sources[].record_count |
integer | null |
intelligence.sources[].license |
string | null |
intelligence.sources[].license_url |
string | null |
intelligence.sources[].url |
string |
intelligence.sources[].attribution |
string | null |
intelligence.warnings[] |
string[] |
intelligence.relay |
object |
intelligence.relay.configured |
boolean |
intelligence.relay.used |
boolean |
intelligence.relay.persisted |
boolean |
limitations[] |
string[] |
metadata |
object |
metadata.engine |
string |
metadata.metadata_basis |
string |
credits_used |
integer |
curl -X POST "https://domscan.net/v1/phone/validate" \
-H "Content-Type: application/json" \
-H "X-API-Key: $DOMSCAN_API_KEY" \
-d '{
"phone": "+34 612 345 678",
"default_country": "ES",
"expected_country": "ES",
"dialing_from_country": "ES",
"language": "es"
}'
{
"credits_used": 1,
"input": "example",
"normalized_input": "example",
"kind": "phone_number",
"valid": true,
"possible": false,
"status": "valid",
"recommendation": "accept",
"validation_level": "numbering_plan",
"reason": "DEFAULT_COUNTRY_REQUIRED",
"warnings": [
"COUNTRY_MISMATCH"
],
"number": {
"e164": "+34612345678",
"international": "+34 612 34 56 78",
"national": "612 34 56 78",
"rfc3966": "tel:+34612345678",
"national_number": "612345678",
"extension": null,
"country": "ES",
"country_name": "Spain",
"country_calling_code": "34",
"possible_countries": [
"ES"
],
"country_match": false,
"type": "fixed_line",
"non_geographic": false
},
"live_checks": {
"assignment": "not_checked",
"reachability": "not_checked",
"current_carrier": "not_checked",
"subscriber_identity": "not_checked",
"porting": "not_checked"
},
"privacy": {
"upstream_requests": 0,
"telecom_provider_queried": false,
"persisted": false,
"domscan_edge_relay_used": false,
"third_party_requests": 0
},
"intelligence": {
"status": "available",
"kind": "phone_number",
"reason": "example",
"coverage": {
"country": "US",
"level": "global_numbering_metadata",
"global_numbering_metadata": false,
"official_snapshot_available": true,
"official_allocation_match": false,
"official_source_ids": [
"example"
],
"matching_source_ids": [
"example"
],
"current_carrier_lookup": false
},
"location": {
"label": "Madrid",
"country_name": "Spain",
"country": "ES",
"language": "es",
"granularity": "numbering_plan_area",
"current_physical_location": false
},
"possible_time_zones": {
"values": [
"Europe/Madrid"
],
"current_location": false,
"inference": "number_prefix"
},
"original_prefix_carrier": {
"name": "Vodafone",
"source_id": "nanpa_us",
"evidence": "offline_prefix_metadata",
"current_carrier": false,
"portability_may_change_carrier": false
},
"portability": {
"region_supported": false,
"current_port_checked": false
},
"dialing": {
"from_country": "US",
"international": "011 34 612 34 56 78",
"mobile": "+34 612 34 56 78",
"internationally_diallable": false
},
"number_details": {
"geographical": false,
"geographical_area_code": "example",
"geographical_area_code_length": 1,
"national_destination_code": "example",
"national_destination_code_length": 1,
"subscriber_number_length": 1,
"mobile_token": "example"
},
"service_signals": {
"number_type": "fixed_line",
"geographical": false,
"toll_free": false,
"premium_rate": false,
"shared_cost": false,
"voip": false,
"personal_number": false,
"likely_sms_capable": false
},
"short_number": {
"region": "ES",
"possible": false,
"valid": true,
"emergency": false,
"connects_to_emergency": false,
"sms_service": false,
"carrier_specific": false,
"expected_cost": "toll_free"
},
"regulator_allocations": [
{
"authority": "CNMC",
"country": "ES",
"matched_prefix": "912",
"matched_range_end": "example",
"match_kind": "prefix",
"category": "geographic",
"status": "assigned",
"original_assignee": "Example Telecom",
"operator_code": "example",
"region": "Madrid",
"service_description": "example",
"assigned_on": "2026-08-27",
"effective_on": "2026-08-27",
"expires_on": "2026-08-27",
"current_operator": false,
"portability_included": false,
"individual_number_assignment_checked": false,
"source_id": "cnmc",
"source_file": "example",
"details": {}
}
],
"sources": [
{
"id": "google_libphonenumber",
"name": "Google libphonenumber metadata",
"type": "offline_metadata",
"url": "https://example.com",
"version": "9.0.34",
"updated_at": "2026-08-27T12:00:00Z",
"retrieved_at": "2026-08-27T12:00:00Z",
"age_days": 1,
"record_count": 1,
"license": "Apache-2.0",
"license_url": "https://example.com",
"attribution": "example"
}
],
"warnings": [
"example"
],
"relay": {
"configured": false,
"used": false,
"persisted": false
}
},
"limitations": [
"example"
],
"metadata": {
"engine": "libphonenumber-js/max",
"metadata_basis": "Google libphonenumber numbering plans"
}
}
Reviewed 2026-08-22
Use the API reference for Phone Number Intelligence to review parameters, response fields, examples, status codes, and supported operation modes.
Unknown or partial results mean that the requested evidence could not be fully determined. Keep the result state, confidence, freshness, and limitations in downstream decisions.
Pricing depends on the operation and execution mode. Check the endpoint reference for the current credit cost, authentication requirement, and per-item rules.