Loading...
Loading...
금융감독원 전자공시시스템(DART) OpenAPI로 공시검색, 기업개황, 재무제표, 주요사항보고서를 조회한다. 사용자의 API_K_DART 환경변수를 직접 사용한다.
npx skill4agent add nomadamas/k-skill k-dartAPI_K_DARThttps://opendart.fss.or.kr/api/korean-stock-searchAPI_K_DARTcorp_codecorpCode.xmlcorp_code# ZIP 다운로드 → 압축 해제 (이미 있으면 생략)
[ -f /tmp/dart_corp/CORPCODE.xml ] || {
curl -fsS -o /tmp/dart_corp.zip \
"https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$API_K_DART"
mkdir -p /tmp/dart_corp && unzip -o /tmp/dart_corp.zip -d /tmp/dart_corp
}
# 회사명 또는 종목코드로 corp_code 검색 (상장사만)
grep -B2 -A3 '삼성전자' /tmp/dart_corp/CORPCODE.xml | awk '
/<corp_code>/{code=$0; gsub(/.*<corp_code>|<\/corp_code>.*/,"",code)}
/<corp_name>/{name=$0; gsub(/.*<corp_name>|<\/corp_name>.*/,"",name)}
/<stock_code>[0-9]/{stock=$0; gsub(/.*<stock_code>|<\/stock_code>.*/,"",stock); print code, stock, name}
'
# 출력: 00126380 005930 삼성전자# ZIP 다운로드 → 압축 해제 (이미 있으면 생략)
$dartDir = "$env:TEMP\dart_corp"
if (-not (Test-Path "$dartDir\CORPCODE.xml")) {
Invoke-WebRequest "https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=$env:API_K_DART" -OutFile "$dartDir.zip"
New-Item -ItemType Directory -Path $dartDir -Force | Out-Null
Expand-Archive "$dartDir.zip" -DestinationPath $dartDir -Force
}
# 회사명 또는 종목코드로 corp_code 검색 (상장사만)
[xml]$xml = Get-Content "$dartDir\CORPCODE.xml"
$xml.result.list | Where-Object { $_.corp_name -like '*삼성전자*' -and $_.stock_code.Trim() -ne '' } |
Select-Object corp_code, stock_code, corp_name
# 출력: 00126380 005930 삼성전자corp_code참고:이 이미 있으면 재다운로드 없이 재사용한다. 파일은 약 30MB이며 전체 법인 목록(상장+비상장)을 포함한다./tmp/dart_corp/CORPCODE.xml에 회사명·종목코드·고유번호가 모두 포함되어 있으므로 별도 스킬 연계 없이 단독으로 corp_code를 확보할 수 있다.corpCode.xml
GET https://opendart.fss.or.kr/api/{endpoint}.json?crtfc_key=$API_K_DART&...GET /api/list.json?crtfc_key={key}&bgn_de={YYYYMMDD}&end_de={YYYYMMDD}
[&corp_code={code}]
[&last_reprt_at=Y|N] [&pblntf_ty=A..J] [&pblntf_detail_ty=...]
[&corp_cls=Y|K|N|E] [&sort=date|crp|rpt] [&sort_mth=asc|desc]
[&page_no=1] [&page_count=10]| 요청키 | 명칭 | 타입 | 필수여부 | 값설명 |
|---|---|---|---|---|
| API 인증키 | STRING(40) | Y | 발급받은 인증키(40자리) |
| 고유번호 | STRING(8) | N | 공시대상회사의 고유번호(8자리). ※ 개발가이드 > 공시정보 > 고유번호 참고 |
| 시작일 | STRING(8) | Y | 검색시작 접수일자(YYYYMMDD). 1) 기본값: 종료일( |
| 종료일 | STRING(8) | Y | 검색종료 접수일자(YYYYMMDD). 1) 기본값: 당일 |
| 최종보고서 검색여부 | STRING(1) | N | 최종보고서만 검색여부(Y or N). 1) 기본값: N (정정이 있는 경우 최종정정만 검색) |
| 공시유형 | STRING(1) | N | A=정기공시, B=주요사항보고, C=발행공시, D=지분공시, E=기타공시, F=외부감사관련, G=펀드공시, H=자산유동화, I=거래소공시, J=공정위공시 |
| 공시상세유형 | STRING(4) | N | (※ 상세 유형 참조: |
| 법인구분 | STRING(1) | N | Y(유가), K(코스닥), N(코넥스), E(기타). ※ 없으면 전체조회, 복수조건 불가 |
| 정렬 | STRING(4) | N | 접수일자: |
| 정렬방법 | STRING(4) | N | 오름차순( |
| 페이지 번호 | STRING(5) | N | 페이지 번호 (1~n). 기본값: 1 |
| 페이지 별 건수 | STRING(3) | N | 페이지당 건수 (1~100). 기본값: 10, 최대값: 100 |
pblntf_detail_ty주의: DART OpenAPI의 공식 요청 파라미터 표에list.json은 존재하지 않는다. 회사명을 기준으로 특정 기업 공시만 좁혀 보려면 위 "corp_code 확보 절차"로 먼저corp_name(8자리 고유번호)를 얻은 뒤 호출한다.corp_code
GET /api/company.json?crtfc_key={key}&corp_code={code}GET /api/fnlttSinglAcntAll.json?crtfc_key={key}&corp_code={code}&bsns_year={YYYY}&reprt_code={code}&fs_div={OFS|CFS}reprt_codefs_divGET /api/irdsSttus.json?crtfc_key={key}&corp_code={code}&bsns_year={YYYY}&reprt_code={code}GET /api/alotMatter.json?crtfc_key={key}&corp_code={code}&bsns_year={YYYY}&reprt_code={code}GET /api/tesstkAcqsDspsSttus.json?crtfc_key={key}&corp_code={code}&bsns_year={YYYY}&reprt_code={code}GET /api/accnutAdtorNmNdAdtOpinion.json?crtfc_key={key}&corp_code={code}&bsns_year={YYYY}&reprt_code={code}GET /api/empSttus.json?crtfc_key={key}&corp_code={code}&bsns_year={YYYY}&reprt_code={code}GET /api/pifricDecsn.json?crtfc_key={key}&corp_code={code}&bgn_de={YYYYMMDD}&end_de={YYYYMMDD}주의:은 유무상증자 결정 전용 endpoint다. 유상증자만 따로 조회하려면pifricDecsn.json(유상증자 결정), 무상증자만 따로 조회하려면piicDecsn.json(무상증자 결정)을 호출한다.fricDecsn.json
GET /api/lwstLg.json?crtfc_key={key}&corp_code={code}&bgn_de={YYYYMMDD}&end_de={YYYYMMDD}GET /api/ovLstDecsn.json?crtfc_key={key}&corp_code={code}&bgn_de={YYYYMMDD}&end_de={YYYYMMDD}GET /api/ovDlstDecsn.json?crtfc_key={key}&corp_code={code}&bgn_de={YYYYMMDD}&end_de={YYYYMMDD}GET /api/cvbdIsDecsn.json?crtfc_key={key}&corp_code={code}&bgn_de={YYYYMMDD}&end_de={YYYYMMDD}GET /api/exbdIsDecsn.json?crtfc_key={key}&corp_code={code}&bgn_de={YYYYMMDD}&end_de={YYYYMMDD}GET /api/cmpDvmgDecsn.json?crtfc_key={key}&corp_code={code}&bgn_de={YYYYMMDD}&end_de={YYYYMMDD}# 1. 먼저 위 "corp_code 확보 절차"로 corp_code(예: 삼성전자=00126380) 획득
# 2. corp_code로 기간 내 공시 조회
curl -fsS --get 'https://opendart.fss.or.kr/api/list.json' \
--data-urlencode "crtfc_key=$API_K_DART" \
--data-urlencode 'corp_code=00126380' \
--data-urlencode 'bgn_de=20260101' \
--data-urlencode 'end_de=20260419' \
--data-urlencode 'page_count=5'curl -fsS --get 'https://opendart.fss.or.kr/api/list.json' \
--data-urlencode "crtfc_key=$API_K_DART" \
--data-urlencode 'bgn_de=20260301' \
--data-urlencode 'end_de=20260419' \
--data-urlencode 'pblntf_ty=A' \
--data-urlencode 'corp_cls=Y' \
--data-urlencode 'page_count=10'curl -fsS --get 'https://opendart.fss.or.kr/api/company.json' \
--data-urlencode "crtfc_key=$API_K_DART" \
--data-urlencode 'corp_code=00126380'curl -fsS --get 'https://opendart.fss.or.kr/api/fnlttSinglAcntAll.json' \
--data-urlencode "crtfc_key=$API_K_DART" \
--data-urlencode 'corp_code=00126380' \
--data-urlencode 'bsns_year=2024' \
--data-urlencode 'reprt_code=11011' \
--data-urlencode 'fs_div=CFS'curl -fsS --get 'https://opendart.fss.or.kr/api/alotMatter.json' \
--data-urlencode "crtfc_key=$API_K_DART" \
--data-urlencode 'corp_code=00126380' \
--data-urlencode 'bsns_year=2024' \
--data-urlencode 'reprt_code=11011'curl -fsS --get 'https://opendart.fss.or.kr/api/empSttus.json' \
--data-urlencode "crtfc_key=$API_K_DART" \
--data-urlencode 'corp_code=00126380' \
--data-urlencode 'bsns_year=2024' \
--data-urlencode 'reprt_code=11011'pifricDecsn.jsonpiicDecsn.jsoncurl -fsS --get 'https://opendart.fss.or.kr/api/pifricDecsn.json' \
--data-urlencode "crtfc_key=$API_K_DART" \
--data-urlencode 'corp_code=00126380' \
--data-urlencode 'bgn_de=20200101' \
--data-urlencode 'end_de=20260419'curl -fsS --get 'https://opendart.fss.or.kr/api/cvbdIsDecsn.json' \
--data-urlencode "crtfc_key=$API_K_DART" \
--data-urlencode 'corp_code=00126380' \
--data-urlencode 'bgn_de=20200101' \
--data-urlencode 'end_de=20260419'statusmessage{
"status": "000",
"message": "정상",
"list": [ ... ]
}| status | 의미 |
|---|---|
| 000 | 정상 |
| 010 | 등록되지 않은 키 |
| 011 | 사용할 수 없는 키 |
| 012 | 접근할 수 없는 IP |
| 013 | 조회된 데이터 없음 |
| 014 | 파일이 존재하지 않음 |
| 020 | 요청 제한 초과 (공식 가이드: 일반적으로 20,000건 이상 요청 시 발생. 키별 별도 한도가 설정된 경우에도 동일 코드가 반환될 수 있음) |
| 021 | 조회 가능한 회사 개수 초과 (최대 100개) |
| 100 | 필드 오류 (필드의 부적절한 값) |
| 800 | 원천 시스템 점검 중 |
| 900 | 정의되지 않은 오류 |
{
"status": "000",
"message": "정상",
"page_no": 1,
"page_count": 5,
"total_count": 142,
"total_page": 29,
"list": [
{
"corp_code": "00126380",
"corp_name": "삼성전자",
"stock_code": "005930",
"corp_cls": "Y",
"report_nm": "[기재정정]사업보고서 (2024.12)",
"rcept_no": "20250401000123",
"flr_nm": "삼성전자",
"rcept_dt": "20250401",
"rm": ""
}
]
}{
"status": "000",
"message": "정상",
"corp_code": "00126380",
"corp_name": "삼성전자",
"corp_name_eng": "SAMSUNG ELECTRONICS CO.,LTD",
"stock_name": "삼성전자",
"stock_code": "005930",
"ceo_nm": "한종희, 경계현",
"corp_cls": "Y",
"jurir_no": "1301110006246",
"bizr_no": "1248100998",
"adres": "경기도 수원시 영통구 삼성로 129",
"hm_url": "www.samsung.com",
"ir_url": "",
"phn_no": "031-200-1114",
"induty_code": "264",
"est_dt": "19690113",
"acc_mt": "12"
}status"000"status: "013"corp_codestatus: "020"corpCode.xmlcorp_codelist.jsoncorp_namereprt_codefs_divAPI_K_DARTstatus"000"corp_codereprt_codeAPI_K_DARTcorp_code020020