금융 데이터 API 고르는 법: SEC·OpenDART·J-Quants·FRED 차이

공시·재무·주가·거시지표에 맞는 공식 금융 데이터 API를 고르고 시점, 단위, 개정, 이용조건을 검증하는 순서입니다.

기업 실적, 일본 주가, 미국 거시지표를 한 데이터베이스에 모으려다 보면 ‘공식 API니까 같은 방식으로 저장해도 된다’고 생각하기 쉽습니다. 하지만 공급자마다 기업·문서 식별자, 공개 시점, 개정 방식과 저장 권한이 달라요.

기업공시는 SEC·OpenDART, 일본 주가·재무는 개인용 J-Quants, 거시지표 탐색과 빈티지 확인은 FRED의 역할을 먼저 구분해야 합니다. 그다음 모든 데이터에 측정기간, 공개·접수 시각, 단위, 개정 식별자와 이용조건을 함께 기록해야 서로 다른 시점의 값을 같은 사실로 합치는 오류를 막을 수 있어요. 이 글은 2026년 8월 23일 공식 문서 기준이며 API 이용에 관한 법률 자문이 아닙니다.

필요한 데이터부터 네 종류로 나눠요

공급자 이름보다 독자가 답하려는 질문을 먼저 고르면 수집 범위를 줄일 수 있습니다. 네 서비스는 모두 금융 연구에 쓰이지만 같은 데이터를 대신하지 않아요.

  • 미국 기업공시: SEC EDGAR submissions와 원문 filing을 봅니다. CIK·accession number·form을 연결하고, User-Agent와 공정 접근 정책을 정하지 못했으면 자동 수집을 시작하지 않아요.
  • 한국 공시·재무·지분: OpenDART와 DART 원공시를 함께 봅니다. corp_code·rcept_no·reprt_code를 연결하고, 인증키·연결/비연결·정정 관계를 구분하지 못하면 중단합니다.
  • 일본 과거 주가·기업 재무: J-Quants API V2를 봅니다. Code·날짜·문서 또는 참조번호를 남기고, 개인·법인 사용 범위와 제공 시점을 확인하지 못하면 저장하지 않아요.
  • 거시지표 현재값·과거 빈티지: FRED/ALFRED에서 series와 원 작성기관을 찾습니다. series_id·observation date·realtime period를 구분하고, 저장·캐싱 권한과 원저작권을 확인하지 못하면 영구 원장에 넣지 않습니다.

이 표는 우열 순위가 아니라 데이터 역할과 중단 조건을 연결한 선택표입니다. 한 공급자에서 찾았다는 이유로 기업공시, 시장가격과 거시지표를 같은 시간축으로 바로 조인하면 안 됩니다.

SEC는 CIK보다 accession과 공시 원문까지 따라가요

SEC의 data.sec.gov는 API 키 없이 제출 이력과 표준 XBRL facts를 JSON으로 제공합니다. submissions·XBRL 경로의 CIK는 선행 0을 포함한 10자리로 쓰며, 대량 수집에는 야간 bulk ZIP도 있어요.C1 자동 요청의 현재 상한은 초당 10회지만, SEC는 연락 가능한 주체가 포함된 User-Agent와 효율적인 요청을 요구합니다.C2

출처: SEC, EDGAR Application Programming Interfaces, 2024-06-06, 확인일 2026-08-23

출처: SEC, Accessing EDGAR Data, 2021-03-23, 확인일 2026-08-23

Company Facts의 같은 계정·기간에 값이 여러 개 있으면 날짜별 마지막 행을 확정값으로 고르지 않습니다. form, filed, accn, start, end를 보고, 단위는 개별 fact가 들어 있는 상위 units 키에서 확인해야 해요. aggregate XBRL API는 비사용자정의 taxonomy와 전체 filing entity에 적용되는 facts를 모으므로 회사 custom taxonomy나 부문·차원 전체를 대신하지 않습니다. Frames도 기업별 회계기간이 정확히 같지 않을 수 있어 원문 filing을 함께 봐야 합니다.C3

OpenDART는 corp_code와 rcept_no를 분리해요

OpenDART의 corpCode.xml은 이름과 달리 XML이 든 ZIP binary입니다. 40자리 인증키로 받고, 기업 corp_code는 8자리, 상장회사 stock_code는 6자리이므로 모두 문자열로 보존해야 해요.C4

출처: 금융감독원 OpenDART, 고유번호 개발가이드, 발행일 미표기, 확인일 2026-08-23

공시검색은 페이지당 최대 100건이며 last_reprt_at=N이 기본값이라 정정보고서를 포함한 제출보고서 전체를 검색합니다. 최종보고서만 받으면 원공시가 검색 결과에서 빠질 수 있으므로 rcept_no별 원문 관계를 남겨야 해요.C5

출처: 금융감독원 OpenDART, 공시검색 개발가이드, 발행일 미표기, 확인일 2026-08-23

분·반기 (포괄)손익계산서의 thstrm_amount는 3개월 금액, thstrm_add_amount는 누적금액입니다.C6 두 필드를 섞으면 분기 매출을 누적 매출로 읽을 수 있어요. 지분 API도 보고기준일·정정 여부·변동 전후 값을 모두 직접 주는 것은 아니므로, 접수번호로 공시검색 메타데이터와 DART 원공시를 결합해 확인합니다.

출처: 금융감독원 OpenDART, 단일회사 전체 재무제표 개발가이드, 발행일 미표기, 확인일 2026-08-23

J-Quants와 FRED는 이용 범위부터 달라요

J-Quants는 개인 투자자용 과거 주가·기업 재무 서비스입니다. V1은 2026년 6월 1일 종료됐고 현재 V2는 x-api-key로 인증합니다. 큰 응답에 pagination_key가 있으면 검색조건을 바꾸지 않고 다음 요청에 그대로 넘겨 끝까지 받아야 해요.C7

출처: JPX Market Innovation & Research, About J-Quants API, 발행일 미표기, 확인일 2026-08-23

출처: JPX Market Innovation & Research, J-Quants Quickstart, 발행일 미표기, 확인일 2026-08-23

출처: JPX Market Innovation & Research, Response Pagination, 발행일 미표기, 확인일 2026-08-23

개인 연구 코드를 회사 서비스로 옮기기 전에 계약을 다시 봐야 합니다. JPX 비교표는 일반 J-Quants API의 법인 이용과 재배포를 불가로 표시하고, 법인용 경로를 J-Quants Pro로 구분합니다.C8

출처: Japan Exchange Group, Historical Data—Delivery Channel, 발행일 미표기, 확인일 2026-08-23

FRED는 현재값과 과거 빈티지를 구분하는 realtime_start, realtime_end, vintage_dates를 제공합니다.C10 그러나 현행 FRED 서비스·API 약관은 FRED 콘텐츠의 저장·캐싱·아카이빙과 데이터베이스 편입을 금지하고, 제3자 소유 시계열의 별도 권리 준수 책임도 사용자에게 둡니다.C9 따라서 영구 원장이나 재배포용 파이프라인을 설계할 때는 FRED 응답을 일반 Raw Layer에 넣지 말고, series notes에서 원 작성기관을 확인한 뒤 그 기관의 API와 이용조건을 검토해야 해요.

출처: Federal Reserve Bank of St. Louis, fred/series/observations, 발행일 미표기, 확인일 2026-08-23

출처: Federal Reserve Bank of St. Louis, Legal Notices, Information and Disclaimers, 발행일 미표기, 확인일 2026-08-23

빈도·단위·개정·시차를 한 줄에 기록해요

데이터를 받았다는 로그만으로는 나중에 같은 사실을 재현할 수 없습니다. 아래 칸을 데이터셋마다 채우면 공급자가 달라도 어떤 시점의 어떤 값인지 비교할 수 있어요.

  1. source와 원문 URL: 공개기관과 원 작성자를 구분합니다. 빠지면 FRED 같은 중개 경로를 원저작권자로 오해할 수 있어요.
  2. 기업·증권·문서 ID: 회사, 종목, 공시 가운데 무엇을 식별하는지 씁니다. 빠지면 티커 변경이나 여러 증권을 한 기업으로 잘못 결합합니다.
  3. period_end 또는 observation date: 값이 설명하는 기간을 씁니다. 빠지면 분기말을 공시일로 사용할 수 있어요.
  4. filed_at 또는 published_at: 시장에 공개된 때를 씁니다. 빠지면 공개 전 정보를 과거 분석에 투입합니다.
  5. 단위·통화·누적 구분: USD, KRW, shares, 3개월, 누적 가운데 무엇인지 씁니다. 빠지면 서로 다른 단위와 기간을 합산해요.
  6. 개정·정정 식별자: accession, rcept_no, realtime period를 남깁니다. 빠지면 최신 수정값으로 과거 기록을 덮어씁니다.
  7. retrieved_at과 파서 버전: 언제 어떤 코드로 받았는지 씁니다. 빠지면 API 갱신과 파서 변경을 구분하지 못해요.
  8. 이용조건 확인일: 저장·캐싱·법인 이용·재배포 가능 여부를 씁니다. 빠지면 기술적으로 가능한 수집을 허용된 이용으로 오해합니다.

기간말, 공개시각과 수집시각을 더 깊게 점검하려면 백테스트 데이터 누수와 PIT 데이터 점검법을 별도 기준으로 사용할 수 있습니다.

수집 성공은 원문 확인 뒤에 완료 처리해요

  1. 독자 질문을 한 문장으로 고정합니다. 기업 공시인지, 증권 가격인지, 거시 시계열인지 먼저 정해요.
  2. 공식 공급자와 원 작성자를 구분합니다. 중개 서비스라면 series·dataset별 권리를 다시 봅니다.
  3. 식별자와 네 시점을 저장합니다. 측정기간, 공개·접수, 실제 이용 가능, 수집 시각을 섞지 않아요.
  4. 페이지 끝과 업무 상태를 확인합니다. HTTP 200만으로 성공 처리하지 않고 OpenDART 내부 상태와 다음 페이지 키를 봅니다.
  5. 표본을 원문과 대조합니다. SEC filing, DART 공시 뷰어, JPX 설명, 원 통계기관에서 단위·기간·개정을 확인해요.
  6. 중단 조건을 기록합니다. 권리, 핵심 단위, 정정 관계나 공식 원문을 확인하지 못하면 해당 데이터셋을 연구 근거로 승격하지 않습니다.

공식 API는 출처의 권위를 높여 주지만, 같은 시점·단위·개정판을 골랐다는 사실까지 자동으로 보증하지 않습니다. 수집기 상태와 연구 판단을 분리해야 해요.

주요 출처와 검증 범위

아래 원문에서 사실을 확인했습니다. 원자료의 수치·문구와 본문의 단순 계산은 구분하며, 비교·의미 해석과 판단 순서는 이 사이트의 편집물입니다.

  1. U.S. Securities and Exchange Commission · EDGAR Application Programming Interfaces (APIs)

    자료일 · 확인일

    • C1 SEC의 data.sec.gov API는 인증키 없이 submissions 이력과 표준 XBRL 데이터를 JSON으로 제공하며, submissions의 CIK는 선행 0을 포함한 10자리 형식을 사용하고 대량 수집용 bulk ZIP도 제공한다.
    • C3 SEC XBRL aggregate API는 비사용자정의 taxonomy를 쓰고 전체 filing entity에 적용되는 facts를 모으므로 회사 custom taxonomy나 부문·차원 전체를 대신하지 않으며, Frames API의 기업별 보고기간도 정확히 같지 않을 수 있다.
  2. U.S. Securities and Exchange Commission · Accessing EDGAR Data

    자료일 · 확인일

    • C2 SEC EDGAR의 현재 자동 요청 상한은 초당 10회이며, 자동 요청은 연락 가능한 주체를 밝힌 User-Agent를 선언하고 필요한 자료만 효율적으로 받아야 한다.
  3. 금융감독원 OpenDART · OpenDART 고유번호 개발가이드

    확인일

    • C4 OpenDART corpCode.xml은 40자리 인증키를 받는 ZIP binary이며 내부 XML의 corp_code는 8자리, 상장회사의 stock_code는 6자리다.
  4. 금융감독원 OpenDART · OpenDART 공시검색·단일회사 전체 재무제표 개발가이드

    확인일

    • C5 OpenDART 공시검색은 page_count를 최대 100으로 받고 last_reprt_at의 기본값 N은 정정보고서를 포함한 제출보고서 전체를 검색한다.
  5. 금융감독원 OpenDART · OpenDART 단일회사 전체 재무제표 개발가이드

    확인일

    • C6 OpenDART 단일회사 전체 재무제표 API의 thstrm_amount와 thstrm_add_amount는 분·반기 (포괄)손익계산서에서 각각 3개월 금액과 누적금액으로 구분된다.

면책 및 정보 이용 안내

이 글은 공개된 공시와 관계기관 자료를 바탕으로 작성한 일반 정보이며, 독자의 재무상황·투자목표·위험수용도를 고려한 개인 맞춤형 투자·법률·세무 자문이나 특정 금융상품 또는 종목의 매수·매도 권유가 아닙니다. 투자에는 원금 손실 가능성이 있으며 과거의 성과가 미래의 결과를 보장하지 않습니다. 투자 결정 전 최신 공시, 상품설명서, 금융회사와 관계기관의 공식 자료를 직접 확인하고 필요한 경우 자격을 갖춘 전문가와 상담하세요. 글의 기준일 이후 정보가 변경될 수 있습니다.