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 문서에서 확인할 수 있음.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요