사업장 건물 - 공공데이터 기업 위험 조회
1. 사업장 건물 조회opendata. bld. register
MCP 도구 이름 opendata__
POSThttps:// api. xdata. kr/ v1/ jobsX-Env-Scope: real_test
현재 혜택은 요금제에서 확인해 주세요. 현재 데모 정책과 계정의 남은 양을 확인해 주세요.
사업장 주소 또는 사업자등록번호로 그 지번의 건축물대장 표제부(건물명, 주용도, 구조, 연면적, 층수, 사용승인일, 승강기 수, 내진설계 여부 등)를 조회합니다.주소는 도로명주소 검색으로 지번에 맞추며, 조회 전용이고 별도 연동 없이 사용할 수 있습니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
| provider | string | Y | 호출할 기관입니다.
| |
| action | string | Y | 호출할 작업입니다.
| |
| params | object | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
| address | string | N | 사업장 주소(도로명 또는 지번, 건물번호까지). address 와 bizno 가운데 하나 이상 | |
| bizno | string | N | 사업자등록번호 10자리(하이픈 허용). address 가 없을 때 등록된 소재지를 찾는 데 씁니다 | |
| pageNo | number | N | 페이지 번호(선택, 기본 1) | |
| numOfRows | number | N | 한 페이지 행 수(선택, 기본 100) | |
| output_ | array | N | 이 결과를 엑셀(xlsx) 파일로도 받으려면 적습니다. 예: ["xlsx"]. 파일은 result.artifacts 에 함께 오고, 빼면 데이터만 옵니다 |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: real_test' \
--header 'Idempotency-Key: demo-register-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "opendata",
"action": "opendata.bld.register",
"params": {}
}'Response
- 아래 표의 칸은 작업이 SUCCEEDED 가 된 뒤 GET /v1/jobs/{job_id}/result 의 result.data 에 오고, 응답 예시는 작업을 제출했을 때(POST /v1/jobs)의 응답입니다.
- 이 API 가 돌려주는 데이터: 대지위치, 도로명대지위치, 건물명, 대장구분, 주부속구분, 대지면적, 건축면적, 연면적, 구조, 주용도, 지붕, 높이, 지상층수, 지하층수, 승용승강기수, 허가일, 착공일, 사용승인일, 같은 지번의 동 수와 주건축물 수
| 순번 | 변수명 | 타입 | 설명 |
|---|---|---|---|
| source_ | string | 이 작업의 원천 데이터셋 번호입니다. 이 작업에서는 항상 15134735 입니다(공공데이터포털 data.go.kr 의 번호). | |
| action | string | 호출한 작업 이름입니다. 이 작업에서는 항상 opendata.bld.register 입니다. | |
| job_ | string | 이 결과를 만든 작업의 ID 입니다. | |
| source | object | 원천의 출처 정보입니다. 결과를 사용자에게 보여 줄 때 출처 표시에 씁니다. | |
| source. | string | 원천 데이터셋 번호입니다. source_id 와 같은 값입니다. | |
| source. | string | 원천 데이터를 제공하는 기관 이름입니다. 이 작업에서는 항상 국토교통부 입니다. | |
| source. | string | 원천 데이터의 이용 허락 범위 표기입니다. 값은 원천마다 다르고, 결과를 보여 줄 때 출처 표시와 함께 씁니다. | |
| license_ | array | 출처 표시 문구, 이용 허락 표기, 결과 해석 안내가 이 순서로 담긴 문장 목록입니다. 첫 줄은 「출처: 국토교통부 건축HUB 건축물대장정보(표제부) / data.go.kr 15134735」 입니다. | |
| upstream | object | 건축물대장 표제부를 주소의 지번으로 조회한 결과입니다. 아래 칸은 우리가 정해 담습니다. | |
| upstream. | string | 원천에서 부른 조회 이름입니다. 이 작업에서는 항상 getBrTitleInfo 입니다. | |
| upstream. | object | 주소 검색 단계의 결과입니다. keyword(입력한 주소 글자), chosen(고른 첫 번째 후보), candidates(주소 검색 후보 목록), total_count(검색된 후보 전체 수)가 담깁니다. 후보가 여럿이면 첫 번째 후보의 지번으로 조회하므로 candidates 를 확인해 주세요. | |
| upstream. | object | 조회에 쓴 지번 키입니다. sigunguCd(시군구 코드), bjdongCd(법정동 코드), platGbCd(대지 구분), bun(본번), ji(부번)가 담깁니다. 주소를 지번에 맞추지 못했으면 null 이고 이때 표제부를 조회하지 않습니다. | |
| upstream. | array | 건축물대장 표제부 행의 목록입니다. 한 지번에 건물(동)이 여럿이면 행이 여러 개입니다. 안쪽 칸은 원천이 정하므로 이 문서가 칸 하나하나를 보장하지 않습니다. 비어 있으면 그 지번의 건축물대장을 찾지 못했다는 뜻이며 건물이 없다는 확인서는 아닙니다. | |
| upstream. | object | null | buildings 가운데 대표 행 하나입니다. 주건축물(mainAtchGbCd 가 0) 가운데 연면적(totArea)이 가장 큰 행이고, 주건축물이 없으면 전체 행 가운데 연면적이 가장 큰 행입니다. buildings 가 비어 있으면 null 입니다. | |
| upstream. | object | 지번 단위 요약입니다. buildings(동 수), main_buildings(주건축물 수), total_area_sum(연면적 합계, 값이 있는 행이 없으면 null), main_purposes(주용도 이름 목록)가 담깁니다. 이번 쪽에 받은 행만 센 값입니다. | |
| upstream. | number | null | 조건에 맞는 전체 행 수입니다. 원천이 알려 준 값이라 이번 쪽에 담긴 행 수보다 클 수 있고, 알려 주지 않으면 null 입니다. | |
| upstream. | object | 요청한 쪽 정보입니다. | |
| upstream. | number | 요청한 쪽 번호입니다. 요청한 pageNo 와 같습니다. | |
| upstream. | number | 한 쪽에 요청한 행 수입니다. 요청한 numOfRows 와 같습니다. | |
| upstream. | string | 이 조회의 범위와 한계를 알리는 안내문입니다. 주소 검색 후보가 여럿이면 첫 번째 후보의 지번으로 조회했다는 점, 비어 있는 결과가 건물이 없다는 확인서가 아니라는 점을 적습니다. 주소를 지번에 맞추지 못했으면 그 사실을 적습니다. | |
| upstream. | object | 사업자등록번호만 보내 조회 주소를 찾아 쓴 경우에만 오는 해소 결과입니다. address 를 직접 보냈으면 이 칸이 없습니다. | |
| upstream. | string | null | 번호로 찾아 조회에 쓴 사업장 주소입니다. |
{
"job_id": "job_01JC8YH8R0E1ABCDEFGHJKMNPQ",
"status": "QUEUED",
"env_scope": "real_test",
"provider": "opendata",
"action": "opendata.bld.register",
"submitted_at": "2026-05-27T12:34:56+09:00"
}| 순번 | 오류 코드 | 발생 조건 |
|---|---|---|
| POLICY_ | 공공데이터 조회의 하루 한도를 모두 쓰면 작업이 이 오류로 끝납니다. error.message 는 「오늘 이 조직의 공공데이터 조회 한도를 모두 썼습니다. 한국시간 자정에 다시 열립니다. 한도 상향이 필요하면 서비스문의로 알려 주세요.」 꼴이고, 한도의 범위에 따라 「이 조직의」 대신 「무료 요금제 몫의」 나 「서비스 전체」 가 들어갑니다. 자정이 지난 뒤에 다시 요청합니다. | |
| PROVIDER_ | 공공데이터 제공처가 오류로 답하면 작업이 이 오류로 끝나고, error.message 는 응답 상태로 고릅니다. 429 이면 「요청이 잠시 제한되었습니다. 잠시 후 다시 시도해 주세요.」, 403 이면 「요청하신 자료를 조회할 권한이 없습니다. 연동한 계정에 그 권한이 있는지 확인해 주세요.」, 500번대이면 「일시적인 오류로 요청을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.」, 그 밖의 400번대이면 「요청을 처리할 수 없습니다. 입력한 값을 다시 확인해 주세요.」 입니다. 응답은 받았는데 읽지 못했거나 상태를 알 수 없으면 「기관에서 받은 응답을 처리하지 못했습니다. 잠시 후 다시 시도해 주시고, 계속되면 서비스문의로 알려 주세요.」 가 오고, 상태가 400번대도 500번대도 아니면 「서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.」 가 옵니다. | |
| VALIDATION_ | 요청 값이 맞지 않으면 작업이 이 오류로 끝나고, 요청을 고쳐 다시 보냅니다. 값이 빠지면 error.message 는 「요청에 필요한 값이 빠졌습니다. 빠진 값: 칸 이름. 그 값을 넣어 다시 요청해 주세요.」 꼴이고, 값의 형식이 틀리면 「요청 값이 올바르지 않습니다. 확인할 값: 칸 이름. 값을 고쳐 다시 요청해 주세요.」 꼴입니다(칸 이름이 다섯을 넘으면 앞 다섯과 「외 N개」 를 적습니다). 사업자등록번호 칸이면 「사업자등록번호는 숫자 열 자리로 보내 주세요.」 가 옵니다. 지원하지 않는 작업을 부르면 「지원하지 않는 작업입니다.」 입니다. | |
| INTERNAL_ | 우리 쪽 설정이나 처리 결함으로 끝나면 이 오류가 나가고 error.message 는 「서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.」 입니다. 고객이 고칠 값이 없으므로 잠시 뒤 다시 요청하고, 계속되면 서비스문의로 알려 주세요. |