지금 하고 있는 플젝에서 주식 데이터를 사용하기 때문에, jhur님과 같이 현재 인터넷에서 찾을 수 있는 API 서비스를 정리해봤다. 가격, 제공하는 데이터 범위, 실시간 제공 여부(interval)를 위주로 찾아보았다. 한국 시장 주식 데이터 제공 여부가 중요했다. 한국 시장을 제공한다고 해도 일정 갯수로 제한되어 있는 경우가 많았지만, 이게 어딘가 싶기도 하고.. (우선 원하는 데이터를 제한 없이 받을 수 있으며, 한국 주식 시장 데이터까지 가져올 수 있으며, 실시간인 api는 없다..)
python library, nodejs package 형식으로 다운 받을 수 있다. 주식 데이터가 필요한 학생에게 플젝용으로 딱 적합하다. 무료로 사용할 수 있으며 제한이 없다(고 하는데 우선 직접 돌려봐야 알듯) 다만 무료이기 때문에 가격을 불러올 수 있는 기업이 정해져있다. 기업 리스트는 docs에서 확인할 수 있다. 데이터 호출시 실시간과 15분의 딜레이가 있다. Styvio를 사용한 예시를 올려줬는데 주식 그래프 웹 사이트를 만들 때 주로 사용해보는 거 같다.
특) 기업 소개, 기업 뉴스, 기업 주가에 대한 sns 감성 분석 등의 데이터를 불러올 수 있다.
price : Pro $99(월) $990(연), student discount 20% 적용시 $70(월)
Market coverage : 유료 - KRX, US Market / 무료 - US Market
Realtime : 유료 - 분당 610 req, 500 websocket / 무료 - 분당 8 req, 8 symbols
(참고 - https://support.twelvedata.com/en/articles/5335783-trial)
response
{
"meta":{
"symbol": "AAPL",
"interval": "1min",
"currency": "USD",
"exchange_timezone": "America/New_York",
"exchange": "NASDAQ",
"type": "Common Stock"
},
"values":[
{
"datetime":"2019-08-09 15:59:00",
"open":"200.93999",
"high":"201.25599",
"low":"200.85199",
"close":"201.05000",
"volume":"472287"
},
{
"datetime":"2019-08-09 15:58:00",
"open":"201.02999",
"high":"201.13000",
"low":"200.83999",
"close":"200.93499",
"volume":"209854"
},
{
"datetime":"2019-08-09 15:57:00",
"open":"201.02000",
"high":"201.07000",
"low":"200.91000",
"close":"201.02000",
"volume":"149032"
},
{
"datetime":"2019-08-09 15:56:00",
"open":"201.11999",
"high":"201.25999",
"low":"201.03340",
"close":"201.03340",
"volume":"178892"
},
{
"datetime":"2019-08-09 15:55:00",
"open":"201.75999",
"high":"201.75999",
"low":"201.07000",
"close":"201.13000",
"volume":"372886"
},
{...}
],
"status":"ok"
}
1분, 5분, 15분 단위로 실시간 데이터 호출을 할 수 있다. 해당 api가 상품인 서비스이기 때문에 학생 할인도 해주고 제공하는 데이터의 종류도 많으며 (사실 우리가 만들 서비스가 그렇게까지 필요하진 않지만) 사용하기 편리하게 제공해준다. Commercial Use가 필요하기 때문에 Pro plan으로 알아봤지만, 개인 사용을 할 경우 다른 plan도 있다. 한번에 500개니까 분당 30만개의 request를 날릴 수 있다는 뜻? 또 Pro plan이상 부터만 KRX 데이터를 제공한다.
[ {
"symbol" : "TSLA",
"price" : 646.22000000,
"volume" : 21297090
} ]
2번과 가격은 비슷하지만 실시간 request 수를 비교하면 2번이 더 많다. 2번처럼 docs가 친절하고, 유료의 경우 plan과 상관없이 KRX 데이터를 조회할 수 있는 점은 더 이득이다. 분당 req의 수의 경우 직접 개발 할 때 연결한 다음 다양한 상황에서 조회가 언제 counting 되는지 알아봐야 할 거 같다. 지금까지는 감이 안옴..
[{"symbol":"AAPL","sector":"electronictechnology","securityType":"cs",
"bidPrice":0,"bidSize":0,"askPrice":0,"askSize":0,"lastUpdated":1626728268902,
"lastSalePrice":142.53,"lastSaleSize":6,"lastSaleTime":1626724799702,
"volume":1617156}]
https://iexcloud.io/docs/api/#tops
docs가 가장 깔끔하게 잘 되어있다. Response attributes도 표로 잘 정리되어 있어서 조사할 때 가장 편했다. 다만 단점은 너무 비싸! 학생 할인이 있는지는 물어봐야 됨. 그리고 유료로 결제해도 월에 50만개 밖에 불러올 수 없는게 단점이다.(이걸로 개인 사용이 아닌 상업적 사용으로 어떤 서비스를 만들 수 있는거지?) 아 그리고 시간이 UTC 기준으로 찍힌다. timestamp는 https://currentmillis.com/ 에서 변환할 수 있다. 위 응답값에서 lastUpdated는 장을 마감한 오후 4시에서 1시간 후인 5시고, lastSaleTime은 장 마감 직전 4시 58분 즈음이다.
{
"pagination": {
"limit": 100,
"offset": 0,
"count": 100,
"total": 5000
},
"data": [
{
"date": "2020-06-02T00:00:00+0000"
"symbol": "AAPL",
"exchange": "IEXG",
"open": 317.75,
"high": 322.35,
"low": 317.21,
"close": 317.94,
"last": 318.91,
"volume": 41551000
},
[...]
]
}
이 외에도 Alpha Vantage, Intrinio 등을 조사했는데 아예 미국 시장만 제공하거나 B2B였기 때문에 패스했다.
팀원과 얘기하고 내린 결론은.. 우선 개발할 때 API 요청 제한이 있으면 너무 불편할 것 같았으므로 1번의 Styvio를 사용하기로 했다. 후에 앱을 출시할 때는 아마 Tweleve Data를 사용하지 않을까 한다.
Infoway API ( https://infoway.io/en )도 실시간 주식 데이터를 제공해요. 미국, 한국(KRX), 일본, 인도, 홍콩 시장까지 지원해서 괜찮은데… 아직 사이트에 한국어 지원이 없는 건 좀 아쉬움.
Financial Modeling Prep에서 한국 주식 조회가 되나요?
NYSE, NASDAQ, AMEX, EURONEXT, TSX, INDEXES, ETFs, MUTUAL FUNDS, FOREX and CRYPTO.