dart api로는 일봉이 없어요. 같은 스키마로 붙여요
dart api로 공시만 받으면 일봉이 없어요. 삼성전자 5년 1,220봉과 분기 매출 133조 원을 한 스키마로 붙인 /v1/finance/ 호출을 보여 드려요.
dart api로 공시 원문·제표는 받을 수 있어요. 일봉·옵션 체인·종목 뉴스는 없어요. /v1/finance/에 삼성전자를 005930.KS로 넣으면 5년 일봉 1,220개와 분기 매출 133,873,444,000,000원이 같은 스키마로 돌아와요. 라이브 호출을 그대로 보여 드려요.
공시 API에 없는 일봉·옵션·뉴스를 한 스키마로 붙나요?
Open DART는 공시 원문 XML, 사업보고서 주요항목, 정기보고서 재무제표를 줘요. opendart api나 open dart api로 검색해도 같은 공식 REST예요. 개발가이드 그룹은 공시정보·정기보고서 주요정보·정기보고서 재무정보·지분공시·주요사항보고서·증권신고서, 이렇게 여섯 개예요. 시세·파생·뉴스 그룹은 목록에 없어요. 서비스 소개 목록에 적힌 API는 2026-09-05 기준 83건이고, 보이는 항목도 재무지표·분할·합병·증권신고 같은 공시 파생이에요. 일봉이 아니에요.
시세·매매 데이터는 한국거래소가 별도 유료 상품으로 팔아요. OpenDartReader나 dart-fss도 Open DART REST를 pandas로 감싼 거예요. 공시검색·제표·원문 다운로드까지는 해요. 일봉·옵션 체인·종목 뉴스는 없어요.
이 글은 dart api 사용법이 아니에요. 인증키와 고유번호를 뽑는 순서는 공식 가이드가 이미 잘 적혀 있어요. 원문 XML이나 고유번호를 파싱하는 전자공시 api 글도 아니에요. opendart로 공시를 받는 일과, 주식 API로 일봉·옵션·뉴스를 붙이는 일은 표면이 달라요. dart open api가 제표 원문을 잘 주는 건 그대로 두고, 없는 쪽을 통합 스키마로 붙인 읽기를 보여 드려요.
/v1/finance/ 읽기는 일곱 개예요. 시세·종목검색·마켓은 그대로고, 일별 가격 히스토리·재무제표·옵션 체인·종목 뉴스가 붙었어요. 옛 /v1/google_finance/는 그대로 열려 있어요. 자세한 건 아래 FAQ에 있어요. 주식 API로 찾아도 주문·자동매매가 아니에요. 읽기 전용이에요.
SocialCrawl은 공시 원문을 대체하지 않아요. 접수번호·원문 XML·기재정정·첨부파일은 Open DART 영역이에요. 플랫폼 허브는 /platforms/finance예요.
한국 종목부터 찾아봐요. 2026-09-05에 삼성전자를 넣었어요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/finance/ticker-search?keyword=삼성전자&language=ko&location=2410"| id | name | exchange | currency | price.current |
|---|---|---|---|---|
005930:KRX | 삼성전자 | KRX | KRW | 255,500 |
005935:KRX | 삼성전자우 | KRX | KRW | 191,600 |
SSU:FRA | 삼성전자 | FRA | EUR | 4,240 |
SSUN:FRA | 삼성전자 | FRA | EUR | 3,080 |
BC94:LON | 삼성전자 | LON | USD | 4,908 |
5건이 오고, 1위는 005930:KRX, 현재가 255,500원이에요. 1크레딧이에요. 검색 id 005930:KRX를 history·statements·options에 복사하면 404이거나 빈 리스트예요. 재현 키는 005930.KS예요. 1위 현재가 255,500원은 아래 히스토리 마지막 종가와 같아요.
이번 런에서 시세(/quote)와 마켓은 호출하지 않았어요. 없는 응답을 지어내지 않을게요. 주식 API의 그 두 읽기는 크레딧·필드가 그대로라고만 말할게요.
주가 히스토리 API는 5년 일봉에 배당까지 넣나요?
공시 API에 없는 일봉이 여기 있어요. 주가 히스토리 API는 keyword=005930.KS 한 줄로 5년 일봉을 줘요. 흔히 찾는 주가 api가 이 모양이에요. 2026-09-05 호출, 1크레딧이에요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/finance/history?keyword=005930.KS&start_date=2021-09-05&end_date=2026-09-05"응답은 1,220봉이에요. 요청 구간은 2021-09-05부터 2026-09-05까지고, 실제 봉은 2021-09-06부터 2026-09-04까지예요. 주말·미체결일은 없어요. 모든 행의 currency는 KRW예요. close와 adj_close가 둘 다 있는 행은 1,219개예요. OHLCV가 전부 null인 행이 1개 있어요. 날짜는 2025-09-19예요. 숨기지 않아요.
배당은 20행이에요. 날짜가 찍혀 있어요. 분할은 0행이에요. 마지막 종가는 255,500원이고, 그날 adj_close도 255,500원이에요. 종목검색 1위 현재가와 같아요.
1,220행을 다 붙이지는 않아요. 첫 행, 배당 있는 행 하나, 마지막 행만 다듬었어요.
{
"data": {
"items": [
{
"bar": {
"id": "005930.KS:2021-09-06T00:00:00Z",
"symbol": "005930.KS",
"date": "2021-09-06T00:00:00Z",
"open": 76800,
"high": 77600,
"low": 76600,
"close": 77300,
"adj_close": 69932.9609375,
"volume": 12861180,
"dividend": null,
"split_ratio": null,
"currency": "KRW",
"interval": "1d"
}
},
{
"bar": {
"date": "2025-12-29T00:00:00Z",
"close": 119500,
"adj_close": 119121.8046875,
"dividend": 566,
"currency": "KRW",
"interval": "1d"
}
},
{
"bar": {
"id": "005930.KS:2026-09-04T00:00:00Z",
"symbol": "005930.KS",
"date": "2026-09-04T00:00:00Z",
"open": 254000,
"high": 259000,
"low": 252500,
"close": 255500,
"adj_close": 255500,
"volume": 14031862,
"dividend": null,
"split_ratio": null,
"currency": "KRW",
"interval": "1d"
}
}
]
}
}첫 행 close는 77,300원, adj_close는 69,932.9609375원이에요. 같은 5년이라도 분모가 이미 달라요. close와 adj_close를 바꿔 쓰면, 뒤로 갈수록 틀린 수익률이 나와요. 주가 히스토리 API는 두 값을 같은 행에 두고, 배당은 효력일에 별도 숫자로 찍어요. 초반 361원, 2024-12-27에 363원, 2025-12-29에 566원, 2026-06-29에 374원이에요.
체결 판단용은 아니에요. 한국 시세 지연은 체인지로그 기준 약 20분이에요. 이번 런에서 지연을 초 단위로는 재지 않았어요. 엔드포인트별 크레딧은 히스토리 1크레딧이에요.
재무제표 API로 한국 종목 분기 실적을 원 단위로 받나요?
재무제표 API도 히스토리와 같은 keyword=005930.KS예요. Open DART 제표는 8자리 고유번호와 보고서 코드로 조회해요. dart api 재무제표 튜토리얼이 그 키를 가르쳐 줘요. 여기서는 그 키를 다시 설명하지 않아요. 시세 히스토리와 같은 호출 모양으로 원 단위 분기 실적이 오는지만 볼게요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/finance/statements?keyword=005930.KS&type=quarterly"분기 호출은 5크레딧, 6기간이에요. 수치가 채워진 기간은 5개예요. 가장 오래된 2024-12-31은 식별 정보만 있어요. 비교 대상이 없어 숫자 필드가 비어 있어요.
손익·재무상태·현금흐름이 statement: "combined" 한 객체에 붙어요. 필드명은 시세 안의 financials와 같아요. revenue, net_income처럼요. _delta는 전기 대비 분수예요.
| period_end | revenue | net_income | EPS |
|---|---|---|---|
| 2024-12-31 | — | — | — |
| 2025-03-31 | 79,140,503,000,000 | 8,028,407,000,000 | 1,192 |
| 2025-06-30 | 74,566,317,000,000 | 4,934,034,000,000 | 737 |
| 2025-09-30 | 86,061,747,000,000 | 12,006,461,000,000 | 1,801 |
| 2025-12-31 | 93,837,371,000,000 | 19,292,054,000,000 | — |
| 2026-03-31 | 133,873,444,000,000 | 47,101,190,000,000 | 7,056 |
최신 분기(2026-03-31 종료) 매출은 133,873,444,000,000원(133조 8,734억)이에요. 순이익은 47,101,190,000,000원(47조 1,011억), EPS는 7,056이에요. revenue_delta는 0.426…예요.
이번 응답에서 값이 채워진 고유 키는 29개예요. _delta를 포함한 숫자예요. currency 필드는 이 엔드포인트에서 항상 null이에요. 원 단위는 금액 자릿수와 히스토리 bar.currency=KRW로 읽어요. price_to_book, return_on_assets, return_on_capital도 문서상 항상 null이에요. 이 종목은 cash_from_operations도 전 기간 null이에요.
최신 분기 하나와 식별 정보만 있는 기간을 다듬으면 이래요.
{
"data": {
"items": [
{
"financial_statement": {
"id": "005930.KS:combined:2026-03-31T00:00:00Z",
"symbol": "005930.KS",
"statement": "combined",
"period_type": "quarterly",
"period_end": "2026-03-31T00:00:00Z",
"currency": null,
"revenue": 133873444000000,
"revenue_delta": 0.42665382217496267,
"net_income": 47101190000000,
"net_income_delta": 1.4414813477092694,
"earnings_per_share": 7056,
"ebitda": 71472745000000,
"total_assets": 633339604000000,
"total_liabilities": 146703628000000,
"total_equity": 486635976000000,
"free_cash_flow": 22097151000000,
"cash_from_operations": null,
"price_to_book": null,
"return_on_assets": null,
"return_on_capital": null
}
},
{
"financial_statement": {
"id": "005930.KS:combined:2024-12-31T00:00:00Z",
"symbol": "005930.KS",
"statement": "combined",
"period_type": "quarterly",
"period_end": "2024-12-31T00:00:00Z",
"currency": null,
"revenue": null,
"net_income": null,
"earnings_per_share": null,
"total_assets": null
}
}
]
}
}연간은 같은 스키마예요. type=annual, 5크레딧, 5기간, 4기간에 수치예요. 가장 오래된 2021-12-31은 식별 정보만 있어요. FY2025(2025-12-31 종료) 매출은 333,605,938,000,000원(333조 6,059억), 순이익은 44,260,956,000,000원이에요.
| period_end | revenue | net_income | total_assets |
|---|---|---|---|
| 2021-12-31 | — | — | — |
| 2022-12-31 | 302,231,360,000,000 | 54,730,018,000,000 | 448,424,507,000,000 |
| 2023-12-31 | 258,935,494,000,000 | 14,473,401,000,000 | 455,905,980,000,000 |
| 2024-12-31 | 300,870,903,000,000 | 33,621,363,000,000 | 514,531,948,000,000 |
| 2025-12-31 | 333,605,938,000,000 | 44,260,956,000,000 | 566,942,110,000,000 |
행 키는 회계기간 종료일이지 제출일이 아니에요. 과거 시점에 알려졌던 값을 재구성할 수 없어요. 재작성은 원래 숫자를 덮어요. DART 공시검색의 시간축은 접수일자 rcept_dt예요. 법정 제출기한은 사업보고서 결산 후 90일, 반기·분기 경과 후 45일이에요. 종료일만 키로 쓰면 12월 31일 실적을 1월 1일에 아는 것처럼 백테스트하게 돼요. 접수번호·원문 XML·기재정정은 Open DART가 하는 일이고, 이 재무제표 API가 대체하지 않아요.
옵션 체인 API에서 콜과 풋을 한 리스트로 받나요?
한국 종목부터 말할게요. 옵션 체인 API에 keyword=005930.KS를 넣으면 빈 리스트가 와요. 검색 id 005930:KRX는 404예요. 같은 종목 첫 호출은 503으로 환불됐고, 재시도에서 200에 items=[]였어요. 이 글의 옵션 예시는 미국 종목만 있어요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/finance/options?keyword=005930.KS"{
"data": {
"items": []
}
}같은 엔드포인트에 AAPL을 넣으면 옵션 체인 API가 한 만기의 콜·풋을 한 리스트로 줘요. 2026-09-05 호출은 캐시 히트라 0크레딧이었어요. 만기는 2026-09-09, 계약 81개, 콜 39 / 풋 42예요. strike는 240–405, ITM은 38건이에요. implied volatility는 81건 전부, open interest는 76건, ask는 81건에 있었어요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/finance/options?keyword=AAPL"{
"option_contract": {
"id": "AAPL260909C00250000",
"symbol": "AAPL",
"contract_symbol": "AAPL260909C00250000",
"type": "call",
"strike": 250,
"expiry": "2026-09-09T00:00:00Z",
"last_price": 61.42,
"bid": 69.05,
"ask": 71.85,
"volume": null,
"open_interest": 1,
"implied_volatility": 1.142582412109375,
"in_the_money": true,
"currency": "USD"
}
}콜·풋이 한 리스트고, type으로 필터하면 돼요. strike, bid, ask, open interest, implied volatility가 같이 와요. 미국 옵션 지연은 체인지로그 기준 약 15분이에요. 이번 런에서 초 단위로는 안 쟀어요.
종목 뉴스 API는 별도 파서 없이 붙이나요?
종목 뉴스 API는 NewsArticleList 10건을 줘요. placement=ticker_news이고, published_at은 초 단위 UTC예요. Google 뉴스 검색과 같은 행 모양이라 두 번째 파서 없이 합쳐요. 스키마는 그대로예요. 한국 종목 토픽 일치는 약해요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/finance/news?keyword=005930.KS"005930.KS로 받은 10건 제목에는 삼성전자가 한 건도 없어요. 대두 공장, 월마트 캐비닛, 가을 영화 헤드라인이 섞여 있어요. 005930:KRX로 받아도 종목 뉴스 API는 10건을 주고 1크레딧이에요. 그 호출에서 제목에 삼성전자가 들어간 건은 1건이었어요.
{
"data": {
"items": [
{
"title": "Employee dies after work-related medical incident at Casselton soybean plant",
"source": "Grand Forks Herald",
"published_at": "2026-09-05T00:36:00Z",
"placement": "ticker_news",
"rank": 1
},
{
"title": "Walmart's farmhouse kitchen pantry cabinet is just $74 ahead of Labor Day",
"source": "TheStreet",
"published_at": "2026-09-05T00:30:00Z",
"placement": "ticker_news",
"rank": 6
},
{
"title": "New movies to look out for this fall",
"source": "CBS News Videos",
"published_at": "2026-09-05T00:22:37Z",
"placement": "ticker_news",
"rank": 10
}
]
}
}10건 스키마는 그대로 나와요. 이 데이터로 '삼성전자만의 공시·증권 뉴스가 10건'이라고는 말할 수 없어요.
어떻게 시작하나요?
가장 작은 재현 경로만 적을게요. Open DART 인증키 발급 튜토리얼이 아니에요.
- SocialCrawl API 키 하나를
x-api-key에 넣어요. Open DARTcrtfc_key가 아니에요. API 키 하나로/v1/finance/읽기를 같은 스키마로 받아요. - 첫 호출은 ticker-search예요.
keyword=삼성전자면005930:KRX, 255,500원을 확인해요. - 히스토리·제표·뉴스는 **
keyword=005930.KS**예요. 검색 id를 붙여 넣지 마세요. - 옵션은 한국 종목이 비니까
keyword=AAPL로 한 만기 체인을 봐요. - 다음으로는 익스플로러에서 응답 모양을 보고,
/docs/finance레퍼런스와 엔드포인트별 크레딧을 보면 돼요. 코드 한 줄 쓰기 전에 데이터를 먼저 확인해 보세요.
이 글을 그대로 재현하면 검색 1 + 히스토리 1 + 분기 제표 5 + 연간 제표 5 + 뉴스 1 = 14크레딧이에요. 한국 옵션은 환불 또는 0, AAPL 옵션은 캐시 0이었어요.
자주 묻는 질문
dart api key 발급이 필요한가요, SocialCrawl 키면 되나요?
이 글의 호출은 x-api-key 하나면 돼요. dart api key 발급은 Open DART 인증키 신청이고, 공시 원문·접수번호·고유번호 조회에 쓰는 키예요. 공시 원문이 필요하면 Open DART 쪽 키를 받으세요. 일봉·제표 숫자·옵션·종목 뉴스를 /v1/finance/로 붙일 때는 SocialCrawl 키면 돼요.
한국 종목 재무제표는 원 단위인가요?
금액 자릿수가 원 실적이에요. 최신 분기 매출 133,873,444,000,000원이 그 증거예요. 제표 currency 필드는 이 엔드포인트에서 항상 null이에요. 히스토리 봉은 모든 행이 KRW예요. 원 단위는 자릿수와 봉의 currency로 읽어요.
시세는 실시간인가요, 지연인가요?
거래소별로 지연이 있어요. 체인지로그 기준 한국·런던·도쿄는 약 20분, 미국 옵션은 약 15분이에요. 이번 런에서 지연을 초 단위로는 안 쟀어요. 체결 판단용은 아니에요.
검색 id 005930:KRX를 히스토리에 그대로 넣어도 되나요?
안 돼요. ticker-search의 TICKER:EXCHANGE를 history·statements·options에 복사하면 404이거나 빈 값이에요. 라이브로는 히스토리 404 환불, 제표 items=[], 옵션 404 또는 빈 리스트였어요. 한국 종목 재현 키는 005930.KS예요.
옛 /v1/google_finance/ 경로는 아직 동작하나요?
새 경로는 /v1/finance/예요. 옛 경로는 그대로 열려 있어요. 지금 붙는 히스토리·제표·옵션·뉴스는 새 경로로 호출하면 돼요.
재무제표는 제출일 기준인가요?
회계기간 종료일 키예요. 과거 시점에 알려졌던 값을 재구성할 수 없고, 재작성은 원래 숫자를 덮어요.
상장폐지 종목을 호출하면 어떻게 되나요?
상장폐지는 빈 응답이에요. 재사용된 티커는 오늘 그 심볼을 쓰는 회사예요. first-trade date는 이번 히스토리 행에 없어요. 시세(/quote)를 이번 런에서 호출하지 않았어요.
엔드포인트 목록은 /docs/finance에 있어요. 응답 모양은 익스플로러에서 키 없이 먼저 볼 수 있어요. 플랫폼 허브는 /platforms/finance예요. 가격 비교는 영문 글에 있어요.
함께 읽으면 좋은 글
인스타그램 이메일 찾기, 1크레딧에 국가까지
인스타그램 이메일 찾기, 2026-09-05에 about 9계정 호출했어요. 국가는 9/9, 공개 메일은 3/9. 유튜브 채널 이메일은 60크레딧 about에서만 채워졌어요.
레딧 API, 검색 1크레딧에 25건이 온다
레딧 API 검색은 1크레딧에 약 7건이 아니라 25건이에요. 한국어 '기계식 키보드'는 22건이고, 댓글은 5크레딧에 647개예요. 2026-09-05에 13크레딧으로 쟀어요.
스레드 검색 API, 한 호출에 55건
스레드 검색 API에서 limit으로 창을 이어 55건, 긴 구절은 분할해 44건을 모아요. 2026-09-04 UTC 실측 크레딧·응답을 그대로 보여 드려요.
