신원 및 검증 · DomScan 제품

전화번호 인텔리전스 API 레퍼런스

전 세계 전화번호를 파싱, 검증, 분류 및 형식화하고, 가능한 경우 오프라인 위치, 시간대, 최초 번호 대역 통신사, 발신, 단축 번호 및 규제 기관 할당 정보를 추가합니다.

제공 내용

전 세계 전화번호를 파싱, 검증, 분류 및 형식화하고, 가능한 경우 오프라인 위치, 시간대, 최초 번호 대역 통신사, 발신, 단축 번호 및 규제 기관 할당 정보를 추가합니다.

동기일괄RESTMCPSDK대화형 도구

다음과 같은 경우 이 제품을 선택하세요

대상 사용자

양식 처리를 개선하고, 수동 검토의 우선순위를 정하고, 조직을 보강하고, 웹사이트가 선언한 자산을 연결하세요.

다음과 같은 경우 이 제품을 선택하세요

공개 번호 체계 및 회선 유형 신호를 파싱하고 형식화하고 평가할 때 선택하세요. 도달 가능성, 소유권 또는 사용자 신원을 증명하지 않습니다.

제공 내용

전 세계 전화번호를 파싱, 검증, 분류 및 형식화하고, 가능한 경우 오프라인 위치, 시간대, 최초 번호 대역 통신사, 발신, 단축 번호 및 규제 기관 할당 정보를 추가합니다.

엔드포인트

통합하기 전에 지원되는 작업, 입력, 출력, 실행 모드 및 응답 제한을 확인하세요.

POST /v1/phone/validate API 레퍼런스 보기
POST /v1/phone/validate/bulk API 레퍼런스 보기

크레딧 및 인증

1 인증 필요. 정확한 비용과 항목별 요금은 작업 레퍼런스에서 확인하세요.

작업 예시

문서화된 작업을 사용해 공개 증거를 수집, 평가, 보강, 검증, 비교, 보호 또는 모니터링하세요.

POST /v1/phone/validate 크레딧: 1

본문 매개변수

매개변수 유형 필수
phone string 필수
default_country string 선택 사항
expected_country string 선택 사항
dialing_from_country string 선택 사항
language string 선택 사항

응답 필드

필드 유형
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"
}'
const response = await fetch("https://domscan.net/v1/phone/validate", {
  method: "POST",
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({
    "phone": "+34 612 345 678",
    "default_country": "ES",
    "expected_country": "ES",
    "dialing_from_country": "ES",
    "language": "es"
  }),
});
const data = await response.json();
console.log(data);
import os
import requests

response = requests.post(
    "https://domscan.net/v1/phone/validate",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
    json={
        "phone": "+34 612 345 678",
        "default_country": "ES",
        "expected_country": "ES",
        "dialing_from_country": "ES",
        "language": "es",
    },
)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{
	  "phone": "+34 612 345 678",
	  "default_country": "ES",
	  "expected_country": "ES",
	  "dialing_from_country": "ES",
	  "language": "es"
	}`)
	req, err := http.NewRequest(http.MethodPost, "https://domscan.net/v1/phone/validate", body)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
	req.Header.Set("Content-Type", "application/json")

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/phone/validate")
request = Net::HTTP::Post.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
request["Content-Type"] = "application/json"
request.body = JSON.generate({
  "phone" => "+34 612 345 678",
  "default_country" => "ES",
  "expected_country" => "ES",
  "dialing_from_country" => "ES",
  "language" => "es"
})

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))

예제 응답

{
  "input": "+44 20 7946 0123",
  "normalized_input": "+44 20 7946 0123",
  "validation_level": "numbering_plan",
  "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": true,
    "third_party_requests": 0
  },
  "intelligence": {
    "status": "available",
    "kind": "phone_number",
    "reason": null,
    "coverage": {
      "country": "GB",
      "level": "global_numbering_metadata",
      "global_numbering_metadata": true,
      "official_snapshot_available": false,
      "official_allocation_match": false,
      "official_source_ids": [],
      "matching_source_ids": [],
      "current_carrier_lookup": false
    },
    "location": {
      "label": "London",
      "country_name": "United Kingdom",
      "country": "GB",
      "language": "en",
      "granularity": "numbering_plan_area",
      "current_physical_location": false
    },
    "possible_time_zones": {
      "values": [
        "Europe/London"
      ],
      "current_location": false,
      "inference": "number_prefix"
    },
    "original_prefix_carrier": {
      "name": null,
      "source_id": null,
      "evidence": "unavailable",
      "current_carrier": false,
      "portability_may_change_carrier": true
    },
    "portability": {
      "region_supported": true,
      "current_port_checked": false
    },
    "dialing": {
      "from_country": "US",
      "international": "011 44 20 7946 0123",
      "mobile": "+44 20 7946 0123",
      "internationally_diallable": true
    },
    "number_details": {
      "geographical": true,
      "geographical_area_code": "20",
      "geographical_area_code_length": 2,
      "national_destination_code": "20",
      "national_destination_code_length": 2,
      "subscriber_number_length": 8,
      "mobile_token": null
    },
    "service_signals": {
      "number_type": "fixed_line",
      "geographical": true,
      "toll_free": false,
      "premium_rate": false,
      "shared_cost": false,
      "voip": false,
      "personal_number": false,
      "likely_sms_capable": null
    },
    "short_number": null,
    "regulator_allocations": [],
    "sources": [
      {
        "id": "google_libphonenumber",
        "name": "Google libphonenumber metadata",
        "type": "offline_metadata",
        "version": "9.0.34",
        "license": "Apache-2.0",
        "url": "https://github.com/google/libphonenumber"
      }
    ],
    "warnings": [
      "LOCATION_IS_NUMBERING_PLAN_AREA_NOT_DEVICE_LOCATION",
      "CARRIER_IS_ORIGINAL_PREFIX_CARRIER_NOT_CURRENT_CARRIER",
      "ALLOCATION_DOES_NOT_PROVE_INDIVIDUAL_ASSIGNMENT",
      "NO_CURRENT_PORTABILITY_LOOKUP",
      "NO_LIVE_TELECOM_CHECKS"
    ],
    "relay": {
      "configured": true,
      "used": true,
      "persisted": false
    }
  },
  "limitations": [
    "NUMBERING_PLAN_ONLY",
    "DOES_NOT_PROVE_ASSIGNMENT",
    "NO_LIVE_TELECOM_CHECKS"
  ],
  "metadata": {
    "engine": "libphonenumber-js/max",
    "metadata_basis": "Google libphonenumber numbering plans"
  },
  "kind": "phone_number",
  "valid": true,
  "possible": true,
  "status": "valid",
  "recommendation": "accept",
  "reason": null,
  "warnings": [],
  "number": {
    "e164": "+442079460123",
    "international": "+44 20 7946 0123",
    "national": "020 7946 0123",
    "rfc3966": "tel:+442079460123",
    "national_number": "2079460123",
    "extension": null,
    "country": "GB",
    "country_name": "United Kingdom",
    "country_calling_code": "44",
    "possible_countries": [
      "GB"
    ],
    "country_match": true,
    "type": "fixed_line",
    "non_geographic": false
  },
  "credits_used": 1
}

HTTP 상태 코드

  • 200 성공
  • 400 잘못된 요청
  • 401 인증되지 않음
  • 402 결제 필요
  • 409 HTTP 409
  • 422 HTTP 422
  • 429 요청 과다
  • 500 서버 오류

자주 묻는 질문

전화번호 인텔리전스 요청 및 응답 레퍼런스는 어디에서 확인할 수 있나요?

전화번호 인텔리전스 API 레퍼런스에서 매개변수, 응답 필드, 예시, 상태 코드 및 지원되는 작업 모드를 확인하세요.

전화번호 인텔리전스의 알 수 없거나 불완전한 결과는 어떻게 해석해야 하나요?

알 수 없거나 부분적인 결과는 요청된 증거를 완전히 판단할 수 없었다는 뜻입니다. 후속 의사결정에서 결과 상태, 신뢰도, 최신성 및 제한을 유지하세요.

전화번호 인텔리전스의 요금은 어떻게 책정되나요?

요금은 작업과 실행 모드에 따라 달라집니다. 현재 크레딧 비용, 인증 요구 사항 및 항목별 규칙은 엔드포인트 레퍼런스에서 확인하세요.

다음 회사의 사람들이 사용합니다

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeLLM Pulse