-
(OpenAPI)KRX OpenAPI 활용: 서비스 이용 신청 및 API 예제금융퀀트/프로그램기초 2024. 3. 28. 07:57반응형
서비스 이용 신청
인증키 발급 확인
(OpenAPI)KRX OpenAPI 활용: 인증키 발급에서 해 본 것처럼 법인이 아닌 개인은 로그인 후 마이페이지에서 API인증키 신청을 누르면 API를 사용할 수 있는 인증키 발급절차가 진행되고, 발급이 완료되면 아래 그림 1과 같이 마이페이지 -> 이용현황 -> 나의 정보에 인증키가 발급된 내역을 확인할 수 있다.
개별 서비스 신청
인증키 발급 후 API 서비스를 이용하려면 데이터 별로 추가적인 이용 신청이 필요하다. 예를 들어 유가증권시장에 상장되어 있는 주권의 매매정보를 받고 싶은 경우 아래 그림 2와 같이 서비스이용 -> 주식-> 유가증권일별매매정보를 클릭해서 들어간다. 상세 페이지에서 출력되는 데이터의 layout을 알 수 있고, 샘플 테스트 텝에서 실제로 데이터가 어떻게 입수되는지 볼 수 있다.
그림 3과 같이 하단의 API이용신청 버튼을 누른 후 데이터 이용기간 등을 선택하면 이용신청이 완료되고 마이페이지에서 신청내역 및 승인상태를 알 수 있다.
데이터 입수 예제: python
데이터 입수 구조 파악
python으로 유가증권 일별매매정보를 받아오는 코드를 구현해 보자. 샘플테스트, 샘플예제, 개발명세서를 참조하면 쉽게 데이터 입수를 구현할 수 있는데, 먼저 샘플테스트를 보면 인증키, 기준일자 정보를 갖고 API 요청을 하면 "OutBlock_1"이라는 list에 결과들이 출력되는 것을 알 수 있다.
샘플 예제를 보면 "AUTH_KEY"에 나의 API키를 담아서 주어진 url 로 request를 하면 되는 것을 알 수 있다. 여기에서 샘플 URL이 "http://data-dbg.krx.co.kr/svc/sample/apis/sto/stk_bydd_trd"로 주어지는데, 구체적으로 어떤 url로 api 키를 어떻게 담아서 api를 요청할지는 개발 명세서까지 확인을 해야 알 수 있다.
개발명세서 상에서는 Description 에 sample url이 아닌 실제 사용할 수 있는 api url 이 주어지고, 요청 시에 (InBlock_1) parameter 값으로 basDd라는 값을 같이 던져야 한다는 것을 명시하고 있다.
데이터 입수 구현
KRX에서 안내하고 있는 자료를 바탕으로 알 수 있는 API 호출 구조는 개발명세서 상 URL로 request를 하고, header 에는 "AUTH_KEY"로 나의 API를 붙이고, parameter에 basDd로 기준일자를 넣는 것이다. 이렇게 받은 결과를 json으로 그대로 출력하면 아래 그림 7과 같이 정신없는 형태가 된다.
pandas 라이브러리의 json_normalize 함수를 이용해서 최종적으로 데이터프레임 형식으로 결과를 아래와 같이 확인할 수 있다.
지금까지의 내용을 파이썬 코드로 구현하면 아래와 같이 간단하게 나타낼 수 있다.
import requests import pandas as pd url = "http://data-dbg.krx.co.kr/svc/apis/sto/stk_bydd_trd" auth_key = "나의 API 키" headers = {"AUTH_KEY": auth_key} params = {"basDd": "조회 기준 일자, 2 영업일 전 데이터부터 조회 됨"} # url 에 header 에 api 키, parameter에 기준일자를 넣고 api 요청 res = requests.get(url, headers=headers, params=params) # 응답을 res에 저장하고 응답이 200 이면 정상적인 API응답을 받은 상태임 if res.status_code == 200: # 응답받은 내용을 json 형태로 변환 res = res.json() # json 데이터를 데이터프레임으로 변환 df = pd.json_normalize(res['OutBlock_1']) print(df) else: # 응답 에러시 응답코드 print print("Error:", res.status_code)
반응형'금융퀀트 > 프로그램기초' 카테고리의 다른 글
(OpenAPI)Notion API 사용: 데이터 입수 1(파이썬 활용) (0) 2024.06.16 (OpenAPI)Notion API 사용: 인증키 발급 (0) 2024.06.15 (OpenAPI)KRX OpenAPI 활용: 인증키 발급 (0) 2024.03.23 파이썬: 멀티쓰레딩을 활용한 기업기본정보 목록 만들기(DART API활용) (0) 2024.03.17 파이썬: 멀티쓰레딩(Threading)과 멀티프로세싱(multiprocessing) (0) 2024.03.16