TL;DR

  • FinancialData.Net 주가 API로 10년 이상의 일별 OHLCV 데이터를 JSON 또는 CSV로 가져올 수 있으며, 무료 플랜은 하루 300회 요청을 허용함.
  • API 요청에는 종목 식별자와 API 키가 필요하며, 한 페이지에 최대 300개 레코드가 최신순으로 반환됨.
  • cURL로 JSON·CSV 응답을 요청하고, offset 값으로 과거 데이터 페이지를 조회할 수 있음.
  • Python 예시는 requests와 pandas로 데이터를 페이지별 수집·정렬하고, 수익률·이동평균·변동성을 계산하거나 여러 종목을 비교함.
  • 공식 Python SDK fdnpy는 자동 페이지 처리와 지수 백오프 재시도를 제공하며, JavaScript 예시는 fetch로 주가 데이터를 조회함.

API 키 발급

  • financialdata.net에서 가입한 뒤 API 키를 복사해 요청에 쿼리 매개변수로 전달함.
  • 다른 매개변수가 있으면 ?key=YOUR_API_KEY 대신 &key=... 형식을 사용함.
  • 환경 변수 FDN_API_KEY에 API 키를 저장해 코드에서 불러오는 방식임.

엔드포인트와 응답 형식

  • 엔드포인트는 GET https://financialdata.net/api/v1/stock-prices임.
  • 매개변수는 다음과 같음.
  • identifier: 필수 종목 티커이며, 예시는 MSFT임.
  • offset: 선택 항목이며 건너뛸 레코드 수를 지정함. 기본값은 0이고 페이지 크기는 300개임. 예시는 300임.
  • format: 선택 항목이며 기본값은 json, 대안은 csv임.
  • key: 필수 API 키임.
  • 각 레코드에는 trading_symbol, date, open, high, low, close, volume이 포함되며, 결과는 최신순으로 반환됨.
  • MSFT의 2026-09-28 예시 레코드에는 시가 505.47, 고가 513.33, 저가 502.22, 종가 509.22, 거래량 19626940.0이 포함됨.
  • 관련 문서와 서비스 링크:
  • API 문서
  • 주가 API 페이지
  • 요금제 및 무료 API 키

cURL 요청

  • cURL 요청에서 identifier=MSFT와 환경 변수의 API 키를 전달해 주가 데이터를 조회함.
  • 다음 페이지의 과거 데이터를 조회할 때는 offset=300을 지정함.
  • format=csv를 지정하면 CSV 응답을 받아 msft.csv 파일로 저장함.

Python으로 pandas에 가격 이력 불러오기

  • Python 예시는 requests로 API에 요청하고 pandas 데이터프레임으로 결과를 처리함. 페이지당 300개 레코드를 기준으로 페이지를 조회하며, 기본 최대 페이지 수는 5임.
  • 응답 오류가 있으면 예외를 발생시키고, 결과가 비어 있거나 페이지 레코드 수가 300개 미만이면 조회를 중단함. 요청 사이에는 0.5초 대기하며, 무료 플랜의 하루 300회 요청 제한을 고려함.
  • 날짜를 날짜 형식으로 변환하고 오래된 날짜부터 최신 날짜 순으로 정렬한 뒤 날짜를 인덱스로 설정함. MSFT를 최대 3페이지 조회하는 예시는 거래일 기준 대략 3년치 데이터임.
  • 종가의 일일 수익률은 pct_change()로 계산하고, 20일·50일 단순이동평균(SMA)은 각각 20일·50일 롤링 평균으로 계산함.
  • 20일 변동성은 일일 수익률의 20일 표준편차에 연율화 계수인 252 ** 0.5를 곱해 계산함.
  • matplotlib으로 종가와 20일·50일 단순이동평균을 시각화하며, 그래프 크기는 11×5, 세로축 단위는 USD로 설정함.
  • MSFT, AAPL, NVDA를 각각 최대 2페이지 조회해 종가를 결합하고 결측값을 제거한 뒤, 첫 관측값을 100으로 재조정해 가격 성과를 비교함.

공식 Python SDK 사용

  • HTTP 요청과 페이지 처리 코드를 직접 작성하지 않는 방식으로 fdnpy를 설치하고 FinancialDataClient를 초기화해 MSFT 주가를 조회함.
  • SDK는 자동 페이지 처리와 지수 백오프 재시도를 처리함.
  • 현재 클라이언트 설정 옵션은 PyPI 페이지에서 확인할 수 있음.

JavaScript 사용

  • Node 18 이상 또는 브라우저에서 fetch를 사용해 주가 데이터를 조회하는 예시임.
  • 요청 URL에 종목 식별자, 오프셋, API 키를 검색 매개변수로 설정함.
  • 응답이 정상적이지 않으면 HTTP 상태 코드가 포함된 오류를 발생시키며, 정상 응답은 JSON으로 반환함.
  • MSFT 조회 결과의 첫 레코드에서 종목 기호, 종가, 날짜를 출력함.

참고 사항

  • 무료 플랜은 하루 300회 요청을 허용함.
  • 스프레드시트나 pandas.read_csv로 빠르게 불러올 때는 format=csv를 사용함.
  • 같은 API는 종목 목록, ETF·지수 가격, 국제 주식, 암호화폐, 외환, 재무제표, 내부자 거래 등도 다룸.
  • 일부 데이터셋은 유료 플랜이 필요하므로 각 엔드포인트 옆에 표시된 요금제를 확인해야 함. 전체 엔드포인트 목록은 API 문서에서 확인할 수 있음.