DART 전자공시 API로 공시 데이터 자동 수집하기
상장기업의 공시를 챙겨야 하는 사람이라면 누구나 한 번쯤 DART(전자공시시스템) 사이트를 하루에도 몇 번씩 새로고침해 본 경험이 있을 겁니다. 관심 종목의 정기공시가 언제 올라오는지, 유상증자나 주요사항보고서가 떴는지 확인하려면 검색 조건을 매번 다시 입력하고, 목록을 눈으로 훑고, 필요한 문서를 하나씩 클릭해야 합니다. 담당 종목이 열 개, 스무 개로 늘어나면 이 작업은 금세 감당하기 어려워집니다.
이 가이드에서는 NexGenData의 korea-dart-opendart-filings 액터를 사용해 DART 공시를 조건에 맞게 자동으로 수집하는 방법을 설명합니다. 이 액터는 금융감독원이 제공하는 OpenDART 오픈 API를 감싸, 공시 목록을 구조화된 JSON으로 반환하도록 만들어졌습니다.
수작업의 한계
DART 웹사이트는 사람이 하나씩 보기에는 잘 만들어져 있지만, 여러 종목을 지속적으로 모니터링하기에는 손이 많이 갑니다. 대표적인 불편은 다음과 같습니다.
- 각 회사 및 공시 유형마다 검색 조건을 새로 설정해야 합니다.
- 어제 이후 새로 올라온 공시만 골라내려면 날짜를 눈으로 비교해야 합니다.
- 결과를 스프레드시트나 데이터베이스로 옮기려면 복사·붙여넣기를 반복하게 됩니다.
- OpenDART API를 직접 쓰면 응답 형식과 회사 고유번호(corp_code) 관리, 페이지네이션을 직접 처리해야 합니다.
OpenDART API 준비하기
이 액터는 여러분의 OpenDART API 키를 사용합니다. 아직 없다면 OpenDART(opendart.fss.or.kr)에서 무료로 발급받을 수 있습니다. 발급된 인증키를 액터 입력의 opendart_api_key 필드에 넣으면 됩니다. 키는 여러분 계정으로 관리되므로, 호출 한도와 사용 내역도 여러분이 직접 통제할 수 있습니다.
입력 필드 살펴보기
액터가 받는 입력 필드는 다음과 같습니다. 실제 필드명을 그대로 사용합니다.
opendart_api_key— OpenDART에서 발급받은 인증키.corp_name_filter— 회사명으로 필터링합니다. 예:삼성전자.corp_code_filter— DART 고유번호(corp_code)로 필터링합니다. 회사명이 겹칠 때 정확히 특정할 수 있습니다.filing_type— 공시 유형을 지정합니다. 정기공시, 주요사항보고, 발행공시 등 원하는 유형으로 좁힐 수 있습니다.date_from/date_to— 조회 기간의 시작일과 종료일.max_filings— 가져올 공시의 최대 개수. 실행 시간과 결과량을 조절할 때 사용합니다.
입력 예시
특정 회사의 최근 정기공시를 조회한다고 가정해 보겠습니다. Apify 콘솔의 입력 폼이나 API 호출에서 다음과 같이 지정합니다.
{
"opendart_api_key": "본인의_OPENDART_인증키",
"corp_name_filter": "삼성전자",
"filing_type": "정기공시",
"date_from": "2026-06-01",
"date_to": "2026-06-30",
"max_filings": 100
}이렇게 실행하면 지정한 기간 안에 해당 회사가 제출한 정기공시 목록이 데이터셋으로 반환됩니다. 각 항목에는 공시 제목, 접수일, 문서 열람 링크 등 OpenDART가 제공하는 공시 메타데이터가 담깁니다. 액터는 원천 데이터를 그대로 정리해 전달하며, 공시 내용 자체를 해석하거나 평가하지 않습니다. 실제 판단은 반드시 원본 문서를 직접 확인한 뒤 내려야 합니다.
여러 종목을 한 번에 모니터링하기
실무에서는 한 회사만 보는 경우가 드뭅니다. corp_name_filter나 corp_code_filter를 비워 두고 filing_type과 기간만 지정하면, 해당 기간의 특정 유형 공시를 폭넓게 가져올 수 있습니다. 반대로 관심 종목이 명확하다면, 종목별로 실행을 나눠 회사마다 결과를 따로 관리하는 방식도 가능합니다. 회사명이 유사해 혼동될 수 있는 경우에는 corp_code_filter로 고유번호를 직접 지정하는 편이 안전합니다.
매일 자동으로 수집하기 — 스케줄 설정
이 액터의 진가는 스케줄과 결합할 때 드러납니다. Apify의 스케줄 기능을 사용하면 정해진 시각에 액터를 자동 실행할 수 있습니다.
- 액터를 원하는 입력값으로 한 번 실행해 결과를 확인합니다.
- Apify 콘솔에서 스케줄을 새로 만들고, 이 액터와 입력값을 연결합니다.
- 예를 들어 매 영업일 오후 6시에 실행되도록 크론 표현식을 설정합니다.
date_from을 전일로 지정하면, 실행마다 어제 이후 신규 공시만 수집하도록 구성할 수 있습니다.
이렇게 하면 매일 아침 전날 공시가 정리된 상태로 준비됩니다. 결과 데이터셋은 JSON, CSV, Excel로 내보낼 수 있고, Apify의 데이터셋 API로 여러분의 시스템에 바로 가져올 수도 있습니다.
수집한 데이터 활용하기
반환된 공시 목록은 다양한 방식으로 이어 쓸 수 있습니다. 사내 대시보드에 최신 공시를 표시하거나, 특정 유형의 공시가 접수되면 팀 채널로 알림을 보내는 파이프라인을 만들 수도 있습니다. OpenDART가 제공하는 문서 링크를 통해 원본 공시로 바로 이동할 수 있으므로, 자동 수집으로 목록을 확보하고 실제 내용 확인은 사람이 원문으로 진행하는 흐름이 자연스럽습니다.
DART 외에도 KIND 상장공시, KRX 시장 통계, KOSPI 스크리너 등 한국 시장 데이터를 다루는 다른 액터들과 함께 사용하면 하나의 데이터 파이프라인으로 묶을 수 있습니다. 전체 한국 데이터 액터 목록은 한국 데이터 스위트에서 확인하세요.
시작하기
OpenDART API 키를 준비했다면, korea-dart-opendart-filings 액터 페이지에서 입력 폼을 채워 바로 첫 실행을 해볼 수 있습니다. 관심 종목 하나로 작게 시작해 결과를 확인한 뒤, 스케줄과 종목 범위를 넓혀 가는 것을 권장합니다.
정보 제공 목적이며 투자 자문이 아닙니다. 본 액터는 공개된 전자공시 데이터를 수집·정리해 제공할 뿐이며, 투자 판단은 반드시 원본 공시와 공식 자료를 직접 확인한 후 내리시기 바랍니다.