기업개요와 재무 - 공공데이터 기업 위험 조회
1. 기업개요 조회opendata. fsc. corp_ outline
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 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
| corpNm | string | N | 법인 상호(부분 일치로 검색). 세 입력 가운데 하나 이상 | |
| crno | string | N | 법인등록번호 13자리(하이픈 허용). 세 입력 가운데 하나 이상 | |
| bizno | string | N | 사업자등록번호 10자리(하이픈 허용). 세 입력 가운데 하나 이상 | |
| 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-corp_outline-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "opendata",
"action": "opendata.fsc.corp_outline",
"params": {}
}'Response
- 아래 표의 칸은 작업이 SUCCEEDED 가 된 뒤 GET /v1/jobs/{job_id}/result 의 result.data 에 오고, 응답 예시는 작업을 제출했을 때(POST /v1/jobs)의 응답입니다.
- 이 API 가 돌려주는 데이터: 법인명, 법인 구분, 등록 시장, 설립일자, 산업분류, 주요 사업, 소재지, 종업원 수, 평균 근속 년수, 결산 월, 중소기업 여부, 거래소와 코스닥 상장일자
| 순번 | 변수명 | 타입 | 설명 |
|---|---|---|---|
| source_ | string | 이 작업의 원천 데이터셋 번호입니다. 이 작업에서는 항상 15043184 입니다(공공데이터포털 data.go.kr 의 번호). | |
| action | string | 호출한 작업 이름입니다. 이 작업에서는 항상 opendata.fsc.corp_outline 입니다. | |
| job_ | string | 이 결과를 만든 작업의 ID 입니다. | |
| source | object | 원천의 출처 정보입니다. 결과를 사용자에게 보여 줄 때 출처 표시에 씁니다. | |
| source. | string | 원천 데이터셋 번호입니다. source_id 와 같은 값입니다. | |
| source. | string | 원천 데이터를 제공하는 기관 이름입니다. 이 작업에서는 항상 금융위원회 입니다. | |
| source. | string | 원천 데이터의 이용 허락 범위 표기입니다. 값은 원천마다 다르고, 결과를 보여 줄 때 출처 표시와 함께 씁니다. | |
| license_ | array | 출처 표시 문구, 이용 허락 표기, 결과 해석 안내가 이 순서로 담긴 문장 목록입니다. 첫 줄은 「출처: 금융위원회 기업기본정보(기업개요) / data.go.kr 15043184」 입니다. | |
| upstream | object | 법인 기업개요를 조회한 결과입니다. 아래 칸은 우리가 정해 담습니다. | |
| upstream. | string | 원천에서 부른 조회 이름입니다. 이 작업에서는 항상 getCorpOutline_V2 입니다. | |
| upstream. | object | 조회에 쓴 조건입니다. corpNm(법인명), crno(법인등록번호 13자리), bzno(사업자등록번호 10자리) 가운데 조회에 쓴 칸만 담깁니다. | |
| upstream. | array | 조건에 맞는 기업개요 행의 목록입니다. 한 법인의 행이 여럿이면 개방 시점이 다른 기록입니다. 안쪽 칸은 원천이 정하므로 이 문서가 칸 하나하나를 보장하지 않습니다. 비어 있으면 그 조건의 법인 기록을 찾지 못했다는 뜻이며 개인사업자는 이 자료에 없습니다. | |
| upstream. | object | null | matches 가운데 최종 개방일자가 가장 늦은 행, 곧 가장 최근 기록입니다. matches 가 비어 있으면 null 입니다. | |
| upstream. | number | null | 조건에 맞는 전체 행 수입니다. 원천이 알려 준 값이라 이번 쪽에 담긴 행 수보다 클 수 있고, 알려 주지 않으면 null 입니다. | |
| upstream. | object | 요청한 쪽 정보입니다. | |
| upstream. | number | 요청한 쪽 번호입니다. 요청한 pageNo 와 같습니다. | |
| upstream. | number | 한 쪽에 요청한 행 수입니다. 요청한 numOfRows 와 같습니다. | |
| upstream. | string | 이 조회의 범위와 한계를 알리는 안내문입니다. 여러 행이 개방 시점이 다른 기록이라는 점, 비어 있는 결과가 법인이 아니라는 증명이 아니라는 점을 적습니다. |
{
"job_id": "job_01JC8YH8R0E1ABCDEFGHJKMNPQ",
"status": "QUEUED",
"env_scope": "real_test",
"provider": "opendata",
"action": "opendata.fsc.corp_outline",
"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 는 「서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.」 입니다. 고객이 고칠 값이 없으므로 잠시 뒤 다시 요청하고, 계속되면 서비스문의로 알려 주세요. |
2. 재무 요약 조회opendata. fsc. financials
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 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
| crno | string | N | 법인등록번호 13자리(하이픈 허용). crno 와 bizno 가운데 하나 이상 | |
| bizno | string | N | 사업자등록번호 10자리(하이픈 허용). crno 가 없을 때 법인등록번호를 찾는 데 씁니다 | |
| bizYear | string | N | 사업연도 4자리(선택). 비우면 개방된 모든 사업연도를 돌려줍니다 | |
| 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-financials-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "opendata",
"action": "opendata.fsc.financials",
"params": {}
}'Response
- 아래 표의 칸은 작업이 SUCCEEDED 가 된 뒤 GET /v1/jobs/{job_id}/result 의 result.data 에 오고, 응답 예시는 작업을 제출했을 때(POST /v1/jobs)의 응답입니다.
- 이 API 가 돌려주는 데이터: 사업연도, 재무제표 구분, 매출액, 영업이익, 당기순이익, 총자산, 총부채, 총자본, 자본금, 부채비율, 기준일자
| 순번 | 변수명 | 타입 | 설명 |
|---|---|---|---|
| source_ | string | 이 작업의 원천 데이터셋 번호입니다. 이 작업에서는 항상 15043459 입니다(공공데이터포털 data.go.kr 의 번호). | |
| action | string | 호출한 작업 이름입니다. 이 작업에서는 항상 opendata.fsc.financials 입니다. | |
| job_ | string | 이 결과를 만든 작업의 ID 입니다. | |
| source | object | 원천의 출처 정보입니다. 결과를 사용자에게 보여 줄 때 출처 표시에 씁니다. | |
| source. | string | 원천 데이터셋 번호입니다. source_id 와 같은 값입니다. | |
| source. | string | 원천 데이터를 제공하는 기관 이름입니다. 이 작업에서는 항상 금융위원회 입니다. | |
| source. | string | 원천 데이터의 이용 허락 범위 표기입니다. 값은 원천마다 다르고, 결과를 보여 줄 때 출처 표시와 함께 씁니다. | |
| license_ | array | 출처 표시 문구, 이용 허락 표기, 결과 해석 안내가 이 순서로 담긴 문장 목록입니다. 첫 줄은 「출처: 금융위원회 기업 재무정보(요약재무제표) / data.go.kr 15043459」 입니다. | |
| upstream | object | 법인의 요약재무제표를 법인등록번호로 조회한 결과입니다. 아래 칸은 우리가 정해 담습니다. | |
| upstream. | string | 원천에서 부른 조회 이름입니다. 이 작업에서는 항상 getSummFinaStat_V2 입니다. | |
| upstream. | object | 조회에 쓴 조건입니다. crno(법인등록번호 13자리)와, 사업연도를 지정했으면 bizYear 가 담깁니다. 법인을 찾지 못해 원천을 부르지 않은 빈 결과에서는 crno 가 null 입니다. | |
| upstream. | array | 요약재무제표 행의 목록입니다. 사업연도마다 별도 재무제표 행과 연결 재무제표 행이 따로 올 수 있고, 최근 사업연도가 앞에 오며 같은 해에서는 구분 코드 순입니다. 행의 칸은 모두 글자(값이 없으면 null)로 오고, 금액도 글자입니다. 안쪽 칸은 원천이 정하므로 이 문서가 칸 하나하나를 보장하지 않습니다. 비어 있으면 그 법인의 공개된 재무 기록을 찾지 못했다는 뜻이며 개인사업자와 공시 의무가 없는 법인은 이 자료에 없을 수 있습니다. | |
| upstream. | string | null | statements 에 있는 가장 최근 사업연도(4자리 글자)입니다. 행이 없으면 null 입니다. | |
| upstream. | array | latest_year 에 해당하는 행들입니다(별도와 연결). 행이 없으면 빈 목록입니다. | |
| upstream. | array | statements 에 있는 사업연도의 목록입니다. 최근 연도가 앞에 옵니다. | |
| upstream. | number | null | 조건에 맞는 전체 행 수입니다. 원천이 알려 준 값이라 이번 쪽에 담긴 행 수보다 클 수 있고, 알려 주지 않으면 null 입니다. | |
| upstream. | object | 요청한 쪽 정보입니다. 법인을 찾지 못해 원천을 부르지 않은 빈 결과에서는 null 입니다. | |
| upstream. | number | 요청한 쪽 번호입니다. 요청한 pageNo 와 같습니다. | |
| upstream. | number | 한 쪽에 요청한 행 수입니다. 요청한 numOfRows 와 같습니다. | |
| upstream. | string | 이 조회의 범위와 한계를 알리는 안내문입니다. 별도와 연결 행이 따로 올 수 있다는 점, 비어 있는 결과가 재무 기록이 없다는 확인서가 아니라는 점을 적습니다. | |
| upstream. | object | 사업자등록번호만 보내 법인등록번호를 찾아 쓴 경우에만 오는 해소 결과입니다. crno 를 직접 보냈으면 이 칸이 없습니다. | |
| upstream. | string | 법인등록번호를 어디에서 찾았는지입니다. index 는 미리 받아 둔 식별 자료, fsc 는 기업개요 조회, miss 는 찾지 못했다는 뜻입니다. | |
| upstream. | string | null | 찾은 법인등록번호입니다. 찾지 못했으면 null 입니다. | |
| upstream. | string | null | 찾은 법인명입니다. 찾지 못했으면 null 입니다. | |
| upstream. | string | 법인등록번호를 찾지 못했을 때만 오는 안내입니다. 법인이 아닌 사업자(개인사업자 등)는 이 자료에 없어 「해당 없음(법인만 제공)」 이 담기고, 이때는 원천을 부르지 않고 빈 결과를 성공으로 돌려줍니다. |
{
"job_id": "job_01JC8YH8R0E1ABCDEFGHJKMNPQ",
"status": "QUEUED",
"env_scope": "real_test",
"provider": "opendata",
"action": "opendata.fsc.financials",
"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 는 「서버 내부 오류로 작업을 마치지 못했습니다. 잠시 후 다시 시도해 주세요.」 입니다. 고객이 고칠 값이 없으므로 잠시 뒤 다시 요청하고, 계속되면 서비스문의로 알려 주세요. |