개발가이드유효성 검사이메일 유효성 검사

이메일 유효성 검사 API

명세 내보내기
OpenAPI 3.0.3Postman 컬렉션Markdown

이메일의 유효성 여부를 검사합니다.

POSThttps://apick.app/rest/check_email_valid
인증
Bearer 키
요청 형식
form-data
응답
JSON
경로
1개

왜 이메일 유효성 검사인가

틀린 이메일, 가입 단계에서 바로 튕겨냅니다

오타 난 이메일로 가입한 고객은 인증 메일도 영수증도 못 받은 채 사라지고, 반송은 쌓여 발신 평판까지 떨어집니다. 이메일 유효성을 검사해 잘못된 주소를 입력 즉시 걸러냅니다.

도입 효과

  • 인증 메일 미수신으로 인한 이탈 감소
  • 반송 누적과 발신 평판 하락 예방
  • 마케팅 수신 목록을 깨끗하게 유지

이런 곳에서 많이 씁니다

  • 가입 화면 이메일 입력 즉시 검사
  • 뉴스레터 구독자 목록 정리
  • 기업 문의 폼 연락처 검증
가입하고 API 키 받기API 키 하나로 바로 호출 · 실패한 요청은 과금되지 않습니다

알아둘 점

제공 정보

이메일 주소 하나를 보내면 형식이 맞는지, 그 도메인이 메일을 받을 수 있는지, 무료 메일·일회용 메일·공용 주소(info, admin 등)인지를 한 번에 알려 줍니다. 회원 가입·뉴스레터 신청 화면에서 오타 주소와 일회용 메일을 걸러 내거나, 기업 고객만 받아야 할 때 무료 메일 주소를 구분하는 데 사용합니다. 도메인이 메일을 받을 수 있는지까지 확인합니다. 그 주소의 받은편지함까지 확인하려면 인증 메일을 함께 쓰세요.

요청과 응답

API 요청
POST/rest/check_email_valid
  • Bearer 인증
  • multipart/form-data
  • JSON 응답
요청 파라미터 1개 · 필수 1
파라미터
설명
emailstring필수
검증할 이메일 주소입니다. @와 도메인을 포함한 전체 주소를 보내며, 형식이 맞지 않으면 조회 전에 거부됩니다.
예시
user@gmail.com
응답 필드 17개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.이메일string
검사한 이메일 주소입니다. 앞뒤 공백을 지운 값입니다. 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.유효성boolean
국가별 번호 체계상 형식이 유효한지 여부입니다. true여도 실제 개통·사용 중인지는 회선 상태(data.hlr)로 확인해야 합니다. true = 국가별 번호·주소 형식 검사를 통과한 경우, false = 형식이 맞지 않아 실제 존재 여부를 확인할 수 없는 경우입니다. 형식이 유효해도 실제 사용 중인지는 별도 조회가 필요합니다.
data.제공자string
이 도메인의 메일을 실제로 받아 주는 메일 서비스의 도메인입니다. 회사 도메인이라도 구글·마이크로소프트 메일을 쓰면 google.com 등으로 옵니다. 확인하지 못하면 null입니다. null 허용.
data.도메인string
주소의 @ 뒤 도메인입니다. 예: example.com 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.도메인상태string
도메인의 메일 수신 상태입니다.ok: 메일을 받을 수 있는 도메인invalid: 도메인 이름 형식이 잘못됨no-service: 도메인 소유자가 메일을 받지 않는다고 설정함no-mail: 메일을 받을 서버 설정이 없음(도메인 오타일 가능성 큼)resolv-error: 일시적으로 확인하지 못함(잠시 후 다시 검사)
data.무료이메일여부boolean
gmail.com·naver.com처럼 누구나 무료로 만드는 메일 도메인이면 true입니다. 기업 전용 도메인이면 false입니다.
data.일회용이메일여부boolean
짧은 기간만 쓰고 버리는 일회용 메일 도메인이면 true입니다. 가입 남용을 막으려면 true인 주소를 거절하세요. true = 일정 시간 뒤 폐기되는 일회용 주소로 판단된 경우, false = 계속 쓰는 일반 주소인 경우입니다. true면 실제 사용자 확인용으로 부적합합니다.
data.개인용이메일여부boolean
개인이 쓰는 주소로 보이면 true입니다. 일회용 도메인이거나 info·admin·support처럼 여러 사람이 함께 쓰는 공용 주소면 false입니다.
data.MX-IPstring
이 도메인의 메일을 받는 서버의 IP 주소입니다. 확인하지 못하면 null입니다. null 허용.
data.successinteger
업무 처리 결과 코드입니다. 1은 정상 결과, 0은 실패 또는 무료 응답입니다. 서비스에 따라 2·3처럼 추가 코드를 쓰므로 같은 응답의 status·msg·error 필드도 함께 확인하세요.
data.errorstring
오류 원인을 설명하는 문구입니다. 성공 응답에는 없거나 빈 문자열입니다.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costinteger
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.msinteger
서버가 요청을 받아 응답 본문을 만들기까지 걸린 처리 시간(밀리초)입니다. 네트워크 왕복 시간과 클라이언트 대기 시간은 포함되지 않습니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
하위 필드 0개 더 보기

이 경로의 응답 형식은 오른쪽 응답 예시를 확인하세요.

사용 예시

상황별로 보내는 값과 응답에서 확인할 값을 모았습니다. 언어 탭에서 그대로 복사해 쓸 수 있습니다.

예시 1. 가입 화면 이메일 검사

회원 가입 때 입력한 이메일이 메일을 받을 수 있는 주소인지 확인합니다.

요청POST/rest/check_email_valid
curl --fail-with-body --request POST 'https://apick.app/rest/check_email_valid' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form-string 'email=user@example.com'
  • data.유효성이 true이면 사용할 수 있는 주소입니다.
  • data.도메인상태가 no-mail이면 도메인 오타일 가능성이 크므로 다시 입력받습니다.
예시 2. 일회용·공용 주소 거르기

체험판 남용을 막거나 담당자 개인 주소만 받으려 할 때 사용합니다.

요청POST/rest/check_email_valid
curl --fail-with-body --request POST 'https://apick.app/rest/check_email_valid' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form-string 'email=info@example.com'
  • data.일회용이메일여부가 true이면 가입을 막습니다.
  • data.개인용이메일여부가 false이면 info·admin 같은 공용 주소입니다.
예시 3. 기업 메일만 받기

기업 고객 전용 서비스에서 무료 메일 주소를 구분합니다.

요청POST/rest/check_email_valid
curl --fail-with-body --request POST 'https://apick.app/rest/check_email_valid' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form-string 'email=user@gmail.com'
  • data.무료이메일여부가 true이면 회사 메일 주소를 다시 요청합니다.
  • 형식이 틀린 주소는 "이메일 형식이 맞지 않습니다."(HTTP 400)이며 요금이 차감되지 않습니다.

응답 처리

HTTP 성공과 업무 결과를 구분하세요. 경로별 응답 필드와 예시는 위 요청과 응답에 함께 있습니다.

판정 예: 유효성이 false이고 도메인상태가 no-mail이면 도메인 오타를 의심해 다시 입력받고, resolv-error이면 잠시 후 다시 검사합니다. 일회용이메일여부가 true이면 가입을 막을 수 있습니다. 유효성이 false여도 검사가 끝난 정상 응답이므로 data.success가 1입니다. 실제 차감 금액은 api.cost로 확인하세요.
원문 응답 필드 표 보기
Body
필드
타입
설명
data
Object
검사 결과 묶음입니다. 실패하면 아래 필드 대신 error 문구가 들어 있습니다.
이메일
String
검사한 이메일 주소입니다. 앞뒤 공백을 지운 값입니다.
유효성
Boolean
메일을 보낼 수 있는 주소인지 종합 판정입니다. 형식이 맞고 도메인상태가 ok일 때만 true입니다. 가입 허용 여부는 이 값으로 먼저 판단하세요.
제공자
String | null
이 도메인의 메일을 실제로 받아 주는 메일 서비스의 도메인입니다. 회사 도메인이라도 구글·마이크로소프트 메일을 쓰면 google.com 등으로 옵니다. 확인하지 못하면 null입니다.
도메인
String
주소의 @ 뒤 도메인입니다. 예: example.com
도메인상태
String
도메인의 메일 수신 상태입니다.
ok: 메일을 받을 수 있는 도메인
invalid: 도메인 이름 형식이 잘못됨
no-service: 도메인 소유자가 메일을 받지 않는다고 설정함
no-mail: 메일을 받을 서버 설정이 없음(도메인 오타일 가능성 큼)
resolv-error: 일시적으로 확인하지 못함(잠시 후 다시 검사)
무료이메일여부
Boolean
gmail.com·naver.com처럼 누구나 무료로 만드는 메일 도메인이면 true입니다. 기업 전용 도메인이면 false입니다.
일회용이메일여부
Boolean
짧은 기간만 쓰고 버리는 일회용 메일 도메인이면 true입니다. 가입 남용을 막으려면 true인 주소를 거절하세요.
개인용이메일여부
Boolean
개인이 쓰는 주소로 보이면 true입니다. 일회용 도메인이거나 info·admin·support처럼 여러 사람이 함께 쓰는 공용 주소면 false입니다.
MX-IP
String | null
이 도메인의 메일을 받는 서버의 IP 주소입니다. 확인하지 못하면 null입니다.
error
String
실패 사유 문구입니다. 정상 응답에는 없으며, 값이 있으면 아래 오류 응답 표에서 원인과 조치를 확인하세요.
success
Integer
처리 상태입니다. 1이면 검사가 끝난 정상 응답(요금 차감), 0이면 실패 응답(차감 없음)입니다.
api
Object
호출 공통 정보입니다. 처리 여부·차감 포인트·처리 시간·차감 기록 번호가 들어 있습니다.
success
Boolean
요청을 정상적으로 받아 처리했는지 여부입니다. 주소가 쓸 만한지는 data.유효성으로 확인하세요.
cost
Integer
이번 호출에서 차감된 포인트입니다. data.error가 있는 실패 응답은 0입니다.
ms
Integer
요청을 받아 응답을 만들기까지 걸린 시간(밀리초)입니다. 네트워크 왕복 시간은 포함되지 않습니다.
pl_id
Integer
포인트 차감 기록 번호입니다. 차감이 있었던 호출에만 값이 있으며 과금 문의 때 사용합니다.

오류 코드

응답을 아래 순서로 확인하세요. 결과 유무와 과금 여부는 서로 다릅니다.

  1. HTTP 상태전송·인증·입력 오류
  2. api.successAPI 처리 여부
  3. data · result업무 결과와 오류 문구
  4. api.cost이번 요청의 과금
업무 실패 응답 data.error
  • 입력값이 맞지 않거나 대상 자료가 없거나 일시적으로 처리하지 못하면 data.error(사유 문구)와 data.success=0을 돌려줍니다. HTTP 상태는 사유에 따라 400·404·408·424 중 하나입니다.
  • 이때 api.cost는 0이며 과금되지 않습니다. data.error 문구를 그대로 기록하고 사용자에게 보여 주세요.
  • 입력 오류(400)는 값을 고친 뒤 다시 요청하세요. 408·424는 잠시 후 한 번 다시 시도하고, 같은 입력으로 짧은 간격의 자동 반복은 하지 마세요.
{
  "data": {
    "error": "입력값을 확인해 주세요.",
    "success": 0
  },
  "api": {
    "success": true,
    "cost": 0,
    "ms": 5
  }
}
서비스 코드·조건

오류 응답

HTTP
data.error
원인·조치
400
이메일 형식이 맞지 않습니다.
email이 없거나 @·도메인이 빠진 주소입니다. 검사하지 않으며 요금도 차감되지 않습니다.
424
이메일 검사에 실패했습니다.
일시적인 실패입니다. 잠시 후 다시 요청하세요.
오류 응답은 data.success 0, api.cost 0이며 요금이 차감되지 않습니다.
인증·포인트 오류 result.error 문구
코드
HTTP
의미·조치
유효하지 않은 API키 입니다.
401
Authorization: Bearer 헤더의 인증키를 확인하세요.
허용되지 않은 IP주소 입니다.
401
마이페이지의 허용 IP 설정과 요청 서버 IP를 확인하세요.
비활성화된 계정입니다.
401
계정 이용 상태를 고객지원으로 문의하세요.
사용 가능한 포인트이 부족합니다.
200
HTTP 200이어도 result.error가 있으면 실패입니다. 포인트를 충전한 뒤 다시 요청하세요. 이 응답은 과금되지 않습니다.
인증 정보를 확인할 수 없습니다.
424
일시적인 확인 실패입니다. 잠시 후 다시 시도하세요.
폼 입력 오류 error.code
코드
HTTP
의미·조치
FORM_DATA_INVALID
400
필드 이름·값의 타입·배열 인덱스를 확인하세요. 인덱스는 0부터 연속으로 사용합니다.
FORM_DATA_FIELD_CONFLICT
400
같은 값과 중첩 경로를 동시에 지정하지 마세요.
MULTIPART_LIMIT_OR_PARSE_ERROR
400·413
boundary·파일 크기·필드 개수를 확인하세요. 서비스별 제한이 우선 적용됩니다.

요금·이용 조건

기본 요금기본 단가 10P · 건당

실제 차감 금액은 응답의 api.cost로 확인하세요. 상세 요금은 요금정책에서 볼 수 있습니다.

연동 팁

  • 요청 예제의 오류 처리 포함 모드는 시간 제한과 업무 실패 판정을 함께 보여줍니다.
  • 인증키는 서버 환경변수에 두고 브라우저·앱에 넣지 마세요.
  • HTTP 성공과 업무 결과를 구분하고, 실패 응답의 오류 문구를 그대로 기록하세요.
추가 예제·서비스별 연동 안내
응답 예시

{
    "data": {
        "이메일": "user@gmail.com",
        "유효성": true,
        "제공자": "google.com",
        "도메인": "gmail.com",
        "도메인상태": "ok",
        "무료이메일여부": true,
        "일회용이메일여부": false,
        "개인용이메일여부": true,
        "MX-IP": "172.253.118.26",
        "success": 1
    },
    "api": {
        "success": true,
        "cost": 10,
        "ms": 248,
        "pl_id": 405
    }
}
            

호출 예시

같은 요청을 JavaScript와 Python으로 옮긴 예시입니다. 키는 환경변수 APICK_API_KEY 에서 읽습니다.

JavaScript 예시
Python 예시

개발가이드 검색

API 이름·경로·파라미터·오류 코드로 찾을 수 있습니다.

표시 가격은 기본 단가입니다. 상세 과금 조건은 각 가이드에서 확인하세요.