문서로 건너뛰기
API

이메일 주소 확인

첫 메시지를 보내기 전에, 주소가 보낼 만한지 확인합니다.

GET/tools/address

2개 호출을 워크스페이스에 실제로 실행합니다.

GET /tools/address

첫 메시지를 보내기 전에, 주소가 보낼 만한지 확인합니다.

예시

scope가 필요하지 않습니다. result는 valid, risky, invalid, unknown 중 하나이고, reasons가 이유를 알려 줍니다. 잘못된 형식, 메일을 받지 않는 도메인, 일회용이거나 공용인 메일함, 흔한 오타 등이며, 수정 제안은 suggestion에 들어 있습니다. emails:read가 있으면 workspace에 이 워크스페이스가 해당 주소에 대해 아는 내용이 추가됩니다.

curl
curl "$OE/tools/[email protected]" -H "$AUTH"
응답
{  "object": "address_check",  "email": "[email protected]",  "normalized": "[email protected]",  "result": "risky",  "reasons": ["typo_suspected"],  "suggestion": "[email protected]",  "checks": {    "syntax": true,    "mx": { "status": "found", "hosts": ["mx.gmial.com"] },    "nullMx": false,    "disposable": false,    "role": false,    "freeProvider": false,    "mailbox": null  },  "workspace": { "suppressed": false, "lastBouncedAt": null, "lastDeliveredAt": null },  "checkedAt": "2026-10-11T09:41:00.000Z"}

형식이 잘못된 주소는 오류가 아닙니다. result가 invalid인 200으로 응답합니다.

deep=true는 메일함이 존재하는지도 확인하며 결과는 checks.mailbox에 들어 있습니다. emails:send가 필요하고 사용량 기반 요금으로 주소당 청구됩니다. 사용량 기반 요금이 꺼져 있으면 409 deep_check_unavailable이며, 청구되는 것은 없습니다.

목록 확인

POST /tools/addresses는 emails에 최대 100개의 주소를 받아, 보낸 순서대로 주소마다 확인 결과 하나씩을 돌려줍니다. deep은 모든 주소에 적용됩니다.

curl
curl -X POST "$OE/tools/addresses" -H "$AUTH" -H "Content-Type: application/json" \  -d '{ "emails": ["[email protected]", "[email protected]"] }'
응답
{  "object": "list",  "data": [    { "object": "address_check", "email": "[email protected]", "result": "valid", "reasons": [] },    { "object": "address_check", "email": "[email protected]", "result": "risky", "reasons": ["role_address"] }  ]}

주소가 100개를 넘거나 하나도 없으면 emails에 대한 422 invalid_parameter입니다.

레퍼런스