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/は住所の実在を確認し、座標付きで正規化した住所を返します。構造化入力と1行入力に対応し、住所1件あたり$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に1行で送信するか、構造化されたフィールドとして送信してください。構造化する場合はaddress_line_1と、利用可能であればaddress_line_2、city、region、postal_codeを使用します。
1つのリクエストで両方の形式を送信しないでください。
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の呼び出しは、検証された住所1件あたり$0.10です。 `unavailable`の結果は課金されません。 ワークフローでは、アドオンの料金はステップが検証した住所1件あたり$0.10です。承認
お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys
ボディ
住所1件。1行(address)、または少なくともaddress_line_1を含む構造化フィールドのいずれかで指定します。両方を指定することはできません。
住所の国を示すISO 3166-1 alpha-2またはalpha-3コード。
3"US"
1行で表した住所全体。
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です。