curl -X POST https://verification.didit.me/v3/address-validation/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"address_line_1": "1600 Amphitheatre Pkwy",
"city": "Mountain View",
"region": "CA",
"postal_code": "94043",
"country": "US"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.address_validation.validate(
address_line_1="1600 Amphitheatre Pkwy",
city="Mountain View",
region="CA",
postal_code="94043",
country="US",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.addressValidation.validate({
address_line_1: "1600 Amphitheatre Pkwy",
city: "Mountain View",
region: "CA",
postal_code: "94043",
country: "US",
});
console.log(result);import me.didit.Didit;
import me.didit.types.AddressValidationRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.addressValidation().validate(AddressValidationRequest.builder()
.addressLine1("1600 Amphitheatre Pkwy")
.city("Mountain View")
.region("CA")
.postalCode("94043")
.country("US")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->addressValidation->validate([
'address_line_1' => '1600 Amphitheatre Pkwy',
'city' => 'Mountain View',
'region' => 'CA',
'postal_code' => '94043',
'country' => 'US',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.address_validation.validate(
address_line_1: "1600 Amphitheatre Pkwy",
city: "Mountain View",
region: "CA",
postal_code: "94043",
country: "US"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.AddressValidation.ValidateAsync(new AddressValidationRequest
{
AddressLine1 = "1600 Amphitheatre Pkwy",
City = "Mountain View",
Region = "CA",
PostalCode = "94043",
Country = "US",
});
Console.WriteLine(JsonSerializer.Serialize(result));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/address-validation/"
payload := strings.NewReader("{\n \"address_line_1\": \"1600 Amphitheatre Pkwy\",\n \"city\": \"Mountain View\",\n \"region\": \"CA\",\n \"postal_code\": \"94043\",\n \"country\": \"US\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"request_id": "6f7d2c1e-1c5a-4a1e-9b8f-2a1f0f4b9c3d",
"address_validation": {
"status": "verified",
"verification_level": "premise",
"address": {
"address_line_1": "1600 Amphitheatre Pkwy",
"address_line_2": null,
"city": "Mountain View",
"region": "CA",
"postal_code": "94043-1351",
"country": "US"
},
"formatted_address": "1600 Amphitheatre Pkwy, Mountain View CA 94043-1351",
"latitude": 37.422022,
"longitude": -122.08429
},
"created_at": "2026-10-27T11:20:00.000000+00:00"
}주소 검증 API: 주소 확인 및 정규화
Didit의 POST /v3/address-validation/은 주소가 실제로 존재하는지 확인하고 좌표가 포함된 정규화된 주소를 반환합니다. 구조화된 입력과 한 줄 입력 모두 지원하며, 주소당 $0.10입니다.
curl -X POST https://verification.didit.me/v3/address-validation/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"address_line_1": "1600 Amphitheatre Pkwy",
"city": "Mountain View",
"region": "CA",
"postal_code": "94043",
"country": "US"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.address_validation.validate(
address_line_1="1600 Amphitheatre Pkwy",
city="Mountain View",
region="CA",
postal_code="94043",
country="US",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.addressValidation.validate({
address_line_1: "1600 Amphitheatre Pkwy",
city: "Mountain View",
region: "CA",
postal_code: "94043",
country: "US",
});
console.log(result);import me.didit.Didit;
import me.didit.types.AddressValidationRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.addressValidation().validate(AddressValidationRequest.builder()
.addressLine1("1600 Amphitheatre Pkwy")
.city("Mountain View")
.region("CA")
.postalCode("94043")
.country("US")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->addressValidation->validate([
'address_line_1' => '1600 Amphitheatre Pkwy',
'city' => 'Mountain View',
'region' => 'CA',
'postal_code' => '94043',
'country' => 'US',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.address_validation.validate(
address_line_1: "1600 Amphitheatre Pkwy",
city: "Mountain View",
region: "CA",
postal_code: "94043",
country: "US"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.AddressValidation.ValidateAsync(new AddressValidationRequest
{
AddressLine1 = "1600 Amphitheatre Pkwy",
City = "Mountain View",
Region = "CA",
PostalCode = "94043",
Country = "US",
});
Console.WriteLine(JsonSerializer.Serialize(result));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/address-validation/"
payload := strings.NewReader("{\n \"address_line_1\": \"1600 Amphitheatre Pkwy\",\n \"city\": \"Mountain View\",\n \"region\": \"CA\",\n \"postal_code\": \"94043\",\n \"country\": \"US\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"request_id": "6f7d2c1e-1c5a-4a1e-9b8f-2a1f0f4b9c3d",
"address_validation": {
"status": "verified",
"verification_level": "premise",
"address": {
"address_line_1": "1600 Amphitheatre Pkwy",
"address_line_2": null,
"city": "Mountain View",
"region": "CA",
"postal_code": "94043-1351",
"country": "US"
},
"formatted_address": "1600 Amphitheatre Pkwy, Mountain View CA 94043-1351",
"latitude": 37.422022,
"longitude": -122.08429
},
"created_at": "2026-10-27T11:20:00.000000+00:00"
}POST /v3/address-validation/를 사용하세요.
주소 검증은 주소만 확인합니다. 주소를 사람과 연결하지는 않습니다. verified 결과는 해당 장소가 존재한다는 뜻이며, 누군가 그곳에 살고 있다는 뜻은 아닙니다.
주소 전송
한 줄로 된address로 보내거나, 구조화된 필드로 보낼 수 있습니다. 구조화된 필드는 address_line_1과, 가지고 있다면 address_line_2, city, region, postal_code입니다.
한 요청에 두 형식을 함께 보내지 마세요.
country는 항상 필수이며, ISO 3166-1 alpha-2 또는 alpha-3 코드로 입력합니다.
응답 해석
address_validation.status는 판단의 기준이 되는 값입니다:verified: 건물(또는 호실, 사서함)까지 주소가 확인되었습니다.partially_verified: 도로까지만 확인되었거나, 해당 장소에 대해 우편 참조 데이터가 보유한 가장 정밀한 수준까지만 확인되었습니다.not_verified: 지역 또는 도시만 일치했거나, 아무것도 일치하지 않았습니다.unavailable: 검증을 실행할 수 없었습니다. 나중에 다시 시도하세요.
address_validation.verification_level은 일치한 가장 정밀한 수준으로,administrative_area,locality,thoroughfare,premise,delivery_point중 하나입니다.address_validation.address와address_validation.formatted_address에는 해당 국가의 표기 방식에 맞춘 정규화된 주소가 담깁니다.address_validation.latitude와address_validation.longitude는 일치한 주소의 위치를 나타냅니다.request_id는 요청을 식별합니다. 세션은 생성되지 않으며 결과는 이 응답으로만 반환되므로, 필요한 정보는 직접 저장해 두세요.
unavailable을 포함해 200입니다.
워크플로 내 주소 검증
같은 검사는 신분증 인증 및 주소 증명 워크플로 단계의 추가 기능으로도 제공됩니다. 단계 설정에서address_validation_enabled를 켜면, 사용자가 제공한 주소(신분증에 인쇄된 주소 또는 주소 증명 문서의 주소)가 업로드가 판독된 후 한 번 검증됩니다.
결과는 세션 결정의 해당 단계 항목(id_verifications[] 또는 poa_verifications[])에 있는 address_validation 객체입니다.
partially_verified 또는 not_verified 주소는 ADDRESS_NOT_VERIFIED 경고를 발생시킵니다. 이 경고의 작업은 단계의 address_not_verified_action이며, 기본값은 NO_ACTION(경고를 기록만 함)입니다.
unavailable 검증은 이 경고를 발생시키지 않으며, 인증 결과를 절대 변경하지 않습니다.
샌드박스 동작
샌드박스 키는 요청을 검증하고, 전송한 주소를 그대로 되돌려 주는 결정론적verified 결과를 항상 반환합니다. 크레딧은 소모되지 않습니다.
과금
주소 검증 API 호출은 검증된 주소당 $0.10입니다. `unavailable` 결과는 과금되지 않습니다. 워크플로에서 추가 기능은 단계가 검증한 주소당 $0.10입니다.인증
Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본 키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며 특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나 만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된 IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를 벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write 권한이 없는 키는 세션 링크와 token을 null로 수신합니다. https://docs.didit.me/console/api-keys 를 참고하십시오.
본문
주소 1개입니다. 한 줄(address)로 입력하거나 최소 address_line_1을 포함하는 구조화된 필드로 입력할 수 있으며, 두 방식을 동시에 사용할 수는 없습니다.
주소 국가의 ISO 3166-1 alpha-2 또는 alpha-3 코드입니다.
3"US"
한 줄로 작성된 전체 주소입니다.
500"Paseo de la Castellana 259, 28046 Madrid"
도로명 및 번호.
255"1600 Amphitheatre Pkwy"
아파트, 호수, 층 또는 건물입니다.
255시 또는 지역입니다.
128"Mountain View"
주, 도 또는 지역입니다.
128"CA"
32"94043"
응답
검증이 완료되었습니다. address_validation.status를 확인하세요. 완료된 요청의 HTTP 상태는 항상 200입니다.