BizScan 홈API 레퍼런스

API 시작 가이드

5분 안에 첫 번째 API 호출을 완료하세요. 엔드포인트별 요청/응답 예시를 포함한 완벽 가이드입니다.

어떤 API가 필요하신가요?

BizScan은 용도별로 5개의 엔드포인트를 제공합니다. 필요에 맞는 엔드포인트를 선택하세요.

필요한 정보엔드포인트필요 플랜
사업자번호 진위만 확인POST /biz/verifyFree
대표자명 + 주소 + 인허가 요약GET /biz/{bizno}/summaryFree+
인허가 전체 목록 (페이징)GET /biz/{bizno}/licenseBasic+
행정처분 + 위생등급GET /biz/{bizno}/sanctionsBasic+
한 번에 모든 정보 조회GET /biz/{bizno}/reportBasic+
Tip: 대부분의 경우 /biz/{bizno}/report하나면 충분합니다. 모든 데이터를 한 번의 호출로 받을 수 있습니다.

퀵스타트

Step 1. API 키 발급

bizscan.kr에서 회원가입 후 대시보드에서 API 키를 발급받으세요. Free 플랜은 가입 즉시 활성화되며, 월 100건까지 무료입니다.

Step 2. 첫 번째 호출

curl
curl -X GET \
  "https://api.bizscan.kr/biz/1234567890/summary" \
  -H "Authorization: Bearer YOUR_API_KEY"

Step 3. 응답 확인

json
{
  "bizno": "1234567890",
  "biz_name": "비즈스캔",
  "ceo": "홍길동",
  "ceo_source": "ftc_online",
  "status": "정상영업",
  "licenses": { "total": 3, "active": 2 },
  "sanctions": { "total": 0 },
  "hygiene": { "available": true, "latest": { "grade": "우수" } }
}

축하합니다! 사업자번호 하나로 인허가, 행정처분, 위생등급, 대표자명을 한 번에 조회했습니다.

인증 방식

/health를 제외한 모든 API 요청에 API 키가 필요합니다. 두 가지 방식 중 하나를 선택하세요.

방법 1: Authorization 헤더 (권장)

http
Authorization: Bearer bscan_xxxxx

방법 2: x-api-key 헤더

http
x-api-key: bscan_xxxxx
보안 주의사항
  • API 키를 절대 클라이언트(프론트엔드, 모바일 앱)에 노출하지 마세요.
  • 반드시 서버 사이드(백엔드)에서 호출하세요.
  • 키가 노출된 경우 대시보드에서 즉시 키를 재발급받으세요.
  • 환경변수로 관리하고, 코드에 직접 하드코딩하지 마세요.

GET /health

서버 상태를 확인합니다. 인증 없이 호출 가능합니다.

요청

curl
curl "https://api.bizscan.kr/health"

응답 (200 OK)

json
{ "status": "ok" }

POST /biz/verify

Free+국세청 진위확인

국세청 사업자등록 진위확인 API를 호출합니다. 사업자번호만 필수이며, 개업일과 대표자명은 선택입니다. 해당 사업자의 상태(계속/휴업/폐업)와 과세유형을 반환합니다.

요청

curl
curl -X POST "https://api.bizscan.kr/biz/verify" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "businesses": [
      {
        "b_no": "1234567890",
        "start_dt": "20200101",
        "p_nm": "홍길동"
      }
    ]
  }'

요청 Body 필드

필드명타입설명Nullable
businessesarray검증할 사업자 배열 (최대 100건)No
businesses[].b_nostring사업자번호 10자리 (하이픈 없이)No
businesses[].start_dtstring개업일 (YYYYMMDD)Yes
businesses[].p_nmstring대표자명Yes

성공 응답 (200 OK)

json
{
  "b_stt": "계속사업자",
  "b_stt_cd": "01",
  "tax_type": "일반과세자",
  "tax_type_cd": "01",
  "end_dt": null,
  "utcc_yn": "N",
  "tax_type_change_dt": null,
  "invoice_apply_dt": "2020-01-15",
  "rbf_tax_type": "해당없음",
  "rbf_tax_type_cd": null
}

응답 필드

필드명타입설명Nullable
b_sttstring사업자 상태 (계속사업자 / 휴업자 / 폐업자)No
b_stt_cdstring상태 코드 (01: 계속, 02: 휴업, 03: 폐업)No
tax_typestring과세 유형 (일반과세자, 간이과세자 등)No
tax_type_cdstring과세 유형 코드No
end_dtstring폐업일 (YYYY-MM-DD)Yes
utcc_ynstring단위과세전환 여부 (Y/N)No
tax_type_change_dtstring과세유형 전환일Yes
invoice_apply_dtstring세금계산서 적용일Yes
rbf_tax_typestring간이과세 유형Yes
rbf_tax_type_cdstring간이과세 유형 코드Yes

에러 응답

json
// 400 Bad Request
{ "error": "사업자번호 10자리를 정확히 입력해주세요." }

// 401 Unauthorized
{ "error": "Unauthorized" }

GET /biz/{bizno}/summary

Free+통합 요약

사업자번호에 대한 핵심 정보를 한 번에 요약합니다. 대표자명, 주소, 업종, 인허가 건수, 행정처분 건수, 위생등급을 포함합니다.

요청

curl
curl "https://api.bizscan.kr/biz/1234567890/summary" \
  -H "Authorization: Bearer YOUR_API_KEY"

성공 응답 (200 OK)

json
{
  "bizno": "1234567890",
  "biz_name": "비즈스캔",
  "ceo": "홍길동",
  "ceo_source": "ftc_online",
  "address": "서울특별시 강남구 테헤란로 123",
  "phone": "02-1234-5678",
  "category": "소프트웨어 개발업",
  "status": "정상영업",
  "registered_at": "20200101",
  "platform": null,
  "nts": {
    "b_stt": "계속사업자",
    "b_stt_cd": "01",
    "tax_type": "일반과세자",
    "tax_type_cd": "01",
    "end_dt": null,
    "utcc_yn": "N"
  },
  "licenses": { "total": 3, "active": 2 },
  "sanctions": { "total": 0 },
  "hygiene": {
    "available": true,
    "latest": {
      "grade": "우수",
      "valid_to": "2027-03-15",
      "biz_name": "비즈스캔"
    }
  }
}

응답 필드

필드명타입설명Nullable
biznostring사업자번호 10자리No
biz_namestring상호명Yes
ceostring대표자명 (교차검증된 최우선 소스)Yes
ceo_sourcestring대표자명 출처 (ftc_online, fsc_corp 등)Yes
addressstring사업장 주소Yes
phonestring전화번호Yes
categorystring업종Yes
statusstring영업 상태 (정상영업, 폐업 등)Yes
registered_atstring등록일/개업일Yes
platformstring판매 플랫폼 (스마트스토어 등)Yes
ntsobject국세청 진위확인 결과Yes
licensesobject인허가 요약 (total, active)No
sanctionsobject행정처분 요약 (total)No
hygieneobject위생등급 정보No

에러 응답

json
// 404 Not Found
{ "error": "Not Found", "message": "사업자번호를 찾을 수 없습니다" }

GET /biz/{bizno}/license

Basic+인허가 목록

해당 사업자의 인허가 전체 목록을 페이징으로 조회합니다. 195개 업종의 인허가 데이터 960만 건에서 검색합니다.

요청

curl
curl "https://api.bizscan.kr/biz/1234567890/license?page=1&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

쿼리 파라미터

필드명타입설명Nullable
pagenumber페이지 번호 (기본값: 1)Yes
limitnumber페이지당 건수 (기본값: 20, 최대: 100)Yes

성공 응답 (200 OK)

json
{
  "total": 3,
  "page": 1,
  "limit": 20,
  "data": [
    {
      "mgt_no": "2020-서울-강남-00001",
      "biz_name": "비즈스캔",
      "license_type": "일반음식점",
      "status": "영업중",
      "issued_at": "2020-01-15",
      "address": "서울 강남구 테헤란로 123",
      "phone": "02-1234-5678"
    },
    {
      "mgt_no": "2021-서울-강남-00042",
      "biz_name": "비즈스캔 2호점",
      "license_type": "휴게음식점",
      "status": "폐업",
      "issued_at": "2021-06-01",
      "address": "서울 강남구 역삼로 45",
      "phone": null
    },
    {
      "mgt_no": "2022-서울-강남-00103",
      "biz_name": "비즈스캔 베이커리",
      "license_type": "제과점",
      "status": "영업중",
      "issued_at": "2022-03-10",
      "address": "서울 강남구 논현로 78",
      "phone": "02-5678-1234"
    }
  ]
}

data[] 필드

필드명타입설명Nullable
mgt_nostring인허가 관리번호 (고유값)No
biz_namestring업소명Yes
license_typestring인허가 업종 (일반음식점, 휴게음식점 등)Yes
statusstring인허가 상태 (영업중, 폐업 등)Yes
issued_atstring인허가 발급일Yes
addressstring사업장 주소Yes
phonestring전화번호Yes

GET /biz/{bizno}/sanctions

Basic+행정처분 + 위생등급

식약처 행정처분 이력과 위생등급 정보를 조회합니다. 위생등급은 이력 전체를 포함합니다.

요청

curl
curl "https://api.bizscan.kr/biz/1234567890/sanctions" \
  -H "Authorization: Bearer YOUR_API_KEY"

성공 응답 (200 OK)

json
{
  "sanctions": {
    "total": 1,
    "data": [
      {
        "sanction_date": "2023-06-15",
        "sanction_type": "영업정지",
        "violation": "식품위생법 위반",
        "content": "영업정지 10일"
      }
    ]
  },
  "hygiene": {
    "available": true,
    "latest": {
      "grade": "우수",
      "valid_to": "2027-03-15",
      "biz_name": "비즈스캔"
    },
    "history": [
      {
        "grade": "우수",
        "issued_at": "2024-03-15",
        "valid_to": "2027-03-15"
      },
      {
        "grade": "좋음",
        "issued_at": "2021-03-20",
        "valid_to": "2024-03-20"
      }
    ]
  }
}

sanctions.data[] 필드

필드명타입설명Nullable
sanction_datestring처분일 (YYYY-MM-DD)Yes
sanction_typestring처분 유형 (영업정지, 과징금 등)Yes
violationstring위반 법령Yes
contentstring처분 내용 상세Yes

hygiene 필드

필드명타입설명Nullable
availableboolean위생등급 데이터 존재 여부No
latestobject최신 위생등급 (grade, valid_to, biz_name)Yes
historyarray위생등급 이력 배열Yes

GET /biz/{bizno}/report

Basic+가장 상세

사업자번호에 대한 모든 데이터를 한 번에 통합 조회합니다. 대표자명 교차검증 소스 목록(ceo_sources)까지 포함하며, 응답 시간(response_ms)도 반환합니다.

요청

curl
curl "https://api.bizscan.kr/biz/1234567890/report" \
  -H "Authorization: Bearer YOUR_API_KEY"

성공 응답 (200 OK)

json
{
  "bizno": "1234567890",
  "biz_name": "비즈스캔",
  "ceo": "홍길동",
  "ceo_source": "ftc_online",
  "address": "서울특별시 강남구 테헤란로 123",
  "phone": "02-1234-5678",
  "category": "소프트웨어 개발업",
  "status": "정상영업",
  "registered_at": "20200101",
  "platform": "스마트스토어",
  "nts": {
    "b_stt": "계속사업자",
    "b_stt_cd": "01",
    "tax_type": "일반과세자",
    "tax_type_cd": "01",
    "end_dt": null,
    "utcc_yn": "N",
    "tax_type_change_dt": null,
    "invoice_apply_dt": "2020-01-15",
    "rbf_tax_type": "해당없음",
    "rbf_tax_type_cd": null
  },
  "licenses": {
    "total": 3,
    "active": 2,
    "data": [
      {
        "biz_name": "비즈스캔",
        "license_type": "일반음식점",
        "status": "영업중",
        "issued_at": "2020-01-15",
        "address": "서울 강남구 테헤란로 123",
        "phone": "02-1234-5678"
      },
      {
        "biz_name": "비즈스캔 2호점",
        "license_type": "휴게음식점",
        "status": "폐업",
        "issued_at": "2021-06-01",
        "address": "서울 강남구 역삼로 45",
        "phone": null
      }
    ]
  },
  "sanctions": {
    "total": 1,
    "data": [
      {
        "sanction_type": "영업정지",
        "sanction_date": "2023-06-15",
        "violation": "식품위생법 위반",
        "content": "영업정지 10일"
      }
    ]
  },
  "hygiene": {
    "available": true,
    "latest": {
      "grade": "우수",
      "valid_to": "2027-03-15",
      "biz_name": "비즈스캔"
    }
  },
  "ceo_sources": [
    {
      "ceo": "홍길동",
      "source": "ftc_online",
      "biz_name": "비즈스캔",
      "status": "정상영업",
      "registered_at": "2020-01-15",
      "platform": "스마트스토어",
      "category": "소프트웨어 개발업",
      "address": "서울 강남구 테헤란로 123"
    },
    {
      "ceo": "홍길동",
      "source": "fsc_corp",
      "biz_name": "비즈스캔",
      "status": null,
      "registered_at": null,
      "platform": null,
      "category": null,
      "address": "서울 강남구"
    }
  ],
  "response_ms": 142
}

응답 필드

필드명타입설명Nullable
biznostring사업자번호 10자리No
biz_namestring상호명Yes
ceostring대표자명 (최우선 소스)Yes
ceo_sourcestring대표자명 출처Yes
addressstring사업장 주소Yes
phonestring전화번호Yes
categorystring업종Yes
statusstring영업 상태Yes
registered_atstring등록일/개업일Yes
platformstring판매 플랫폼Yes
ntsobject국세청 진위확인 결과 전체Yes
licensesobject인허가 목록 (total, active, data[])No
sanctionsobject행정처분 목록 (total, data[])No
hygieneobject위생등급 정보No
ceo_sourcesarray대표자명 교차검증 소스 전체 목록No
response_msnumber서버 응답 시간 (ms)No

ceo_sources[] 필드

필드명타입설명Nullable
ceostring대표자명No
sourcestring데이터 출처 (ftc_online, fsc_corp 등)No
biz_namestring해당 소스의 상호명Yes
statusstring해당 소스의 영업 상태Yes
registered_atstring등록일Yes
platformstring판매 플랫폼Yes
categorystring업종Yes
addressstring주소Yes
대표자명 소스 우선순위: ftc_online → ftc_visit → ftc_phone → ftc_prepaid → fsc_corp → msit_research → mss_direct

코드 예시

JavaScript (Node.js / fetch)

javascript
const API_KEY = process.env.BIZSCAN_API_KEY;
const BIZNO = "1234567890";

// 통합 리포트 조회
const res = await fetch(
  `https://api.bizscan.kr/biz/${BIZNO}/report`,
  { headers: { Authorization: `Bearer ${API_KEY}` } }
);

if (!res.ok) {
  const err = await res.json();
  throw new Error(`${res.status}: ${err.error}`);
}

const data = await res.json();
console.log(`대표자: ${data.ceo}`);
console.log(`인허가: ${data.licenses.total}건 (활성 ${data.licenses.active}건)`);
console.log(`행정처분: ${data.sanctions.total}건`);

Python (requests)

python
import os
import requests

API_KEY = os.environ["BIZSCAN_API_KEY"]
BIZNO = "1234567890"

# 통합 리포트 조회
res = requests.get(
    f"https://api.bizscan.kr/biz/{BIZNO}/report",
    headers={"Authorization": f"Bearer {API_KEY}"}
)
res.raise_for_status()

data = res.json()
print(f"대표자: {data['ceo']}")
print(f"인허가: {data['licenses']['total']}건")
print(f"행정처분: {data['sanctions']['total']}건")

Python (진위확인)

python
import requests

res = requests.post(
    "https://api.bizscan.kr/biz/verify",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    },
    json={
        "businesses": [{
            "b_no": "1234567890",
            "start_dt": "20200101",
            "p_nm": "홍길동"
        }]
    }
)
data = res.json()
print(f"상태: {data['b_stt']} / 과세유형: {data['tax_type']}")

cURL (전체 리포트)

bash
curl -s \
  "https://api.bizscan.kr/biz/1234567890/report" \
  -H "Authorization: Bearer bscan_xxxxx" | jq .

cURL (인허가 목록 페이징)

bash
curl -s \
  "https://api.bizscan.kr/biz/1234567890/license?page=2&limit=10" \
  -H "x-api-key: bscan_xxxxx" | jq .

에러 코드

모든 에러 응답은 아래 형식을 따릅니다.

json
{
  "error": "에러 유형",
  "message": "상세 설명 (선택)"
}
상태 코드에러명설명해결 방법
400Bad Request사업자번호가 10자리가 아니거나 요청 형식 오류사업자번호를 하이픈 없이 10자리로 입력
401UnauthorizedAPI 키가 없거나 유효하지 않음Authorization 헤더 형식 및 키 값 확인
403Forbidden현재 플랜으로 접근할 수 없는 엔드포인트Basic 이상 플랜으로 업그레이드
404Not Found해당 사업자번호의 데이터가 DB에 없음사업자번호 재확인 / 다른 엔드포인트 시도
429Too Many Requests월간 조회 한도 초과다음 달까지 대기하거나 플랜 업그레이드
500Internal Server Error서버 내부 오류잠시 후 재시도, 지속 시 support@bizscan.kr 문의

에러 응답 예시

json
// 400 — 잘못된 사업자번호
{ "error": "사업자번호 10자리를 정확히 입력해주세요." }

// 401 — 인증 실패
{ "error": "Unauthorized" }

// 403 — 플랜 부족
{ "error": "Forbidden", "message": "Basic 이상 플랜이 필요합니다" }

// 404 — 데이터 없음
{ "error": "Not Found", "message": "사업자번호를 찾을 수 없습니다" }

// 429 — 한도 초과
{ "error": "Too Many Requests", "message": "월간 조회 한도를 초과했습니다" }

요금제 및 제한

플랜월 요금월 조회수초과 단가접근 범위
Free무료100건-진위확인 + 통합요약 (verify, summary)
Pay-as-you-go없음건당 과금60원전체 엔드포인트
Basic29,000원1,000건25원전체 엔드포인트
Pro99,000원5,000건15원전체 엔드포인트
얼리버드 특가: Basic 플랜 첫 3개월 9,900원/월 → 19,900원/월 | Lifetime Deal 79,000원 (평생 Basic 플랜)
한도 초과 시: Free 플랜은 추가 호출이 차단됩니다. 유료 플랜은 초과 단가로 계속 사용 가능합니다. 월간 사용량은 매월 1일에 초기화됩니다.

API 레퍼런스

각 엔드포인트의 OpenAPI 스키마, Try it 기능, 상세 파라미터 설명은 API 레퍼런스 페이지에서 확인하세요.

Base URL: https://api.bizscan.kr

문의사항이나 버그 리포트는 support@bizscan.kr로 보내주세요.

API 레퍼런스 보기홈으로 돌아가기