본인 확인은 사용자가 직접
이름·생년월일·휴대전화번호를 보내면 사용자의 간편인증 앱으로 승인 요청이 갑니다. 승인해야만 자료가 열리므로, 서비스는 주민등록번호나 공동인증서를 보관할 필요가 없습니다.
개발자용 API 간편인증 통합조회
이름·생년월일·휴대전화번호와 간편인증 방식만 보내면, 사용자가 카카오·토스·PASS로 한 번 승인하고 공공·금융 기관의 자료를 표준화된 JSON으로 받습니다. 가입·공동인증서·추가 앱 설치가 필요 없습니다.
서비스·시스템에 연동하는 기업·개발자용 API입니다. 개인이 자기 정보를 조회하는 화면이 아닙니다.
비교
이름·생년월일·휴대전화번호를 보내면 사용자의 간편인증 앱으로 승인 요청이 갑니다. 승인해야만 자료가 열리므로, 서비스는 주민등록번호나 공동인증서를 보관할 필요가 없습니다.
인증 승인 뒤에는 결과 조회를 반복해도 다시 승인받지 않습니다. 여러 항목이 필요하면 묶음 상품으로 한 번에 받는 편이 빠릅니다.
과금은 인증요청이 실제 발송된 시점과 결과가 처음 제공된 시점 두 번뿐입니다. 대기·조회 중·만료·실패 응답과 같은 결과의 재조회는 청구되지 않습니다.
기관마다 다른 표기를 항목 이름·형식·시각(한국시간)까지 맞춰 내려줍니다. 원본 화면 파싱이나 코드값 사전 없이 바로 저장·표시할 수 있습니다.
묶음 조회 15종
묶음에 담긴 조회는 승인 한 번으로 함께 받습니다. 묶음은 필요한 조회를 한 응답에 모아 주고, 대부분의 묶음은 결과 단가가 30% 싸집니다. 민원서류 통합조회처럼 받을 조회를 직접 고르는 묶음은 고른 조회 단가의 합으로 과금합니다.
자동차 · 14종을 한 응답에
국세 · 4종을 한 응답에
국세 · 2종을 한 응답에
주택금융 · 5종을 한 응답에
운전면허·범칙금 · 3종을 한 응답에
국세 · 2종을 한 응답에
국세 · 3종을 한 응답에
사회보험 · 3종을 한 응답에
국세 · 9종 중 골라서 한 응답에
국세 · 15종 중 골라서 한 응답에
자동차 · 5종을 한 응답에
자동차 · 4종을 한 응답에
자동차 · 3종을 한 응답에
자동차 · 4종을 한 응답에
민원서류 · 17종 중 골라서 한 응답에
개별 조회 69종
필요한 항목만 골라 호출하세요. 모든 상품이 같은 인증 절차와 같은 응답 규격을 씁니다.
전체 69개 상품
일치하는 상품이 없습니다. 다른 상품명이나 기관명으로 검색해 주세요.
연동 절차
/rest/req_* 로 이름·생년월일·휴대전화번호·인증방식을 보냅니다. transactionId 를 즉시 받습니다./rest/get_* 로 반복 조회합니다. 대기·조회 중에는 과금되지 않습니다.요금
기본은 1년이고, 1년을 넘길 때마다 1년 기준 단가의 50%만 더합니다(2년 1.5배, 3년 2배). 조회범위(연수·월수)는 인증 요청할 때 options 로 정합니다. 상품별 정확한 단가와 응답 필드는 각 상품의 개발가이드에 있습니다.
이용 자격·동의
인증키는 Authorization: Bearer 헤더로 보냅니다. 서버에서만 호출하고 인증키를 브라우저·앱에 넣지 마세요.
curl -X POST "https://apick.app/rest/req_health_checkup" \
-H "Authorization: Bearer YOUR_API_KEY" \
--form-string "name=홍길동" \
--form-string "birthDate=19900101" \
--form-string "phone=01011112222" \
--form-string "authProvider=kakao"
const form = new FormData();
form.append("name", "홍길동");
form.append("birthDate", "19900101");
form.append("phone", "01011112222");
form.append("authProvider", "kakao");
const response = await fetch("https://apick.app/rest/req_health_checkup", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.APICK_API_KEY },
body: form,
});
const { data, api } = await response.json();
if (data.error) throw new Error(data.error); // 실패는 과금되지 않습니다
console.log(data, api.cost);
{
"data": {
"schemaVersion": "1.0",
"transactionId": "9f2c4a7b1d8e35c60a4f7b2d1e9c803a",
"product": "health_checkup",
"status": "AUTH_REQUESTED",
"resultAvailable": false,
"charged": true,
"sources": [],
"message": "인증 대기중입니다.",
"expiresAt": "2026-09-20T05:24:07+09:00",
"success": 1
},
"api": {
"success": true,
"cost": 20,
"ms": 1284
}
}
인증 요청 응답 예시입니다. 사용자가 승인한 뒤 같은 transactionId로 결과 조회 API(/rest/get_*)를 호출하면 표준 JSON 결과를 받습니다.
HTTP 상태 → api.success → data.error → api.cost 순서로 확인하세요. 실패 응답은 과금되지 않습니다.
AUTH_REJECTED · AUTH_EXPIREDHTTP 200사용자가 승인을 거절했거나 5분 안에 승인하지 않았습니다. 자동으로 다시 요청하지 말고 사용자에게 안내하세요.
AUTH_WAITING · COLLECTINGHTTP 200아직 결과가 없습니다. 간격을 두고 같은 transactionId로 결과를 조회하세요. 과금되지 않습니다.
무료 포인트로 사용할 수 없는 서비스입니다.HTTP 200최소 1회 충전(결제) 후 이용할 수 있는 API입니다. 충전 후 같은 요청을 다시 보내세요.
유효하지 않은 API키 입니다.HTTP 401Authorization: Bearer 헤더의 인증키를 확인하세요. 인증키는 마이페이지에서 확인합니다.
허용되지 않은 IP주소 입니다.HTTP 401마이페이지의 허용 IP 설정과 요청을 보내는 서버 IP를 확인하세요.
사용 가능한 포인트이 부족합니다.HTTP 200HTTP 200이어도 data.error가 있으면 실패입니다. 포인트를 충전한 뒤 다시 요청하세요. 이 응답은 과금되지 않습니다.
전체 응답 항목과 오류 코드는 개발 문서에 있습니다.
인증·과금·재시도·만료를 서버가 처리합니다. 필요한 상품의 엔드포인트만 호출하세요.