트레이더를 위한 Schwab API: 지원 범위와 한도
Schwab Trader API는 TD Ameritrade Developer API의 후속입니다. 개발자는 OAuth 2.0 인증을 쓰는 REST 인터페이스로 미국 시장의 Schwab 계좌 데이터, 시세 데이터, 주문 제출에 프로그램으로 접근할 수 있습니다. 이 가이드는 API가 지원하는 것, 어떤 사람에게 맞는지, 개발 전에 정리해야 할 것을 다룹니다. 계획 지원용일 뿐이며 매매 조언이 아니고, 증권사나 데이터에 대한 보장도 없습니다.
- Schwab Trader API는 미국 주식, ETF, 멀티 레그 전략을 포함한 옵션, 지수 옵션을 다루며, 선물, 외환, 미국 외 주식은 범위 밖입니다.
- 인증은 약 30분짜리 액세스 토큰과 7일짜리 리프레시 토큰을 쓰는 3-legged OAuth 2.0을 사용합니다.
- 실서비스 전 테스트용으로 가상 계좌가 있는 샌드박스 환경이 있으며, 이 샌드박스는 모의 거래 계좌로는 쓸 수 없습니다.
Schwab Trader API란?
Schwab Trader API는 시세 데이터, 계좌 데이터, 주문 라우팅에 프로그램으로 접근하는 Schwab의 REST API입니다. Schwab이 TD Ameritrade를 인수한 뒤 TD Ameritrade Developer API를 대체했으며, TDA API는 이제 완전히 종료되었습니다. 예전 TDA API를 찾으러 오셨다면 타임라인, 종료 날짜, 이전 경로는 /resources/articles/td-ameritrade-api-shut-down-what-replaced-it 글에 자세히 정리되어 있습니다.
TDA API로 개발했다면 Schwab Trader API가 이전 대상입니다. REST 엔드포인트, JSON 응답, OAuth 2.0처럼 기본 패턴은 비슷하지만 엔드포인트 경로와 일부 동작이 바뀌었습니다. 현재 명세는 developer.schwab.com에 있습니다.
기술적 매매 워크플로를 위한 증권사 API의 더 넓은 비교는 /resources/articles/ibkr-vs-alpaca-vs-tradier-for-technical-traders-api-stack-fit-checklist 글을, Schwab Trader API의 비용을 IBKR 데이터 구독과 Alpaca의 데이터 등급과 비교한 분석은 /resources/articles/schwab-api-cost-vs-ibkr-alpaca-retail-traders 글을 참고하세요.
Schwab API는 어떤 상품과 주문 유형을 지원할까?
Schwab Trader API는 미국 주식, ETF, 옵션(버티컬 스프레드, 스트래들, 버터플라이 등 멀티 레그 전략 포함), 지수 옵션 거래를 지원합니다. 선물, 외환, 암호화폐, 채권, 미국 외 주식은 API로 거래할 수 없으며, 선물 주문은 HTTP 400을 반환합니다. 일부 선물 상품에 대해 문서화되지 않은 제한적인 스트리밍 호가 데이터는 있지만, 선물 주문 라우팅과 선물 과거 봉 데이터는 없습니다.
지원하는 주문 유형은 시장가, 지정가, 스톱, 스톱 지정가, 트레일링 스톱, OCO(하나가 체결되면 다른 하나 취소), OTO(하나가 체결되면 다른 하나 발동), 복합(하나가 OCO를 발동)입니다. OCO/OTO를 쓰는 멀티 레그 옵션 조합은 개발자 커뮤니티에서 실험적 기능으로 분류되므로, 이를 바탕으로 실서비스 로직을 만들기 전에 실제 증권사 연결로 검증하세요.
옵션 심볼은 OSI 21자 형식을 씁니다. 예: AAPL 240419C00150000. 데이터 파이프라인 코드를 작성하기 전에 심볼 형식 처리를 확인하세요.
| 상품 | API로 거래 | 스트리밍 호가 | 과거 봉 |
|---|---|---|---|
| 미국 주식 | 예 | 예 (L1 + L2) | 예 |
| ETF | 예 | 예 (L1 + L2) | 예 |
| 옵션 (멀티 레그 포함) | 예 | 예 | 아니요 |
| 지수 옵션 | 예 | 예 | 아니요 |
| 선물 | 아니요, HTTP 400 | 제한적/문서화되지 않음 | 아니요 |
| 외환 / 암호화폐 | 아니요 | 아니요 | 아니요 |
| 미국 외 주식 | 아니요 | 아니요 | 아니요 |
Schwab Trader API 인증은 어떻게 작동할까?
인증은 3-legged OAuth 2.0 흐름을 씁니다. 앱이 사용자를 Schwab 인증 페이지로 리디렉션하고, 사용자가 접근을 승인하면, 앱이 인증 코드를 토큰으로 교환합니다.
액세스 토큰은 약 30분, 리프레시 토큰은 약 7일 유지됩니다. 사용하지 않은 리프레시 토큰은 만료되어 사용자가 다시 인증하는 단계가 필요합니다. 주말 내내 무인으로 돌아가는 워크플로에는 토큰 갱신 로직이 반드시 들어 있어야 합니다.
developer.schwab.com에서 애플리케이션을 등록하고 클라이언트 ID, 클라이언트 시크릿, 리디렉션 URI를 받으세요. 자격 증명은 버전 관리에 올리지 마세요.
Schwab API에 샌드박스가 있나?
네. 가상 계좌와 데이터가 있는 샌드박스 환경이 제공됩니다. 실서비스와 같은 자격 증명을 쓰지만 다른 기본 URL에 연결합니다.
샌드박스는 가상 데이터로 테스트하는 환경이며 모의 거래 계좌로는 쓸 수 없습니다. Schwab Trader API에는 모의 거래 모드가 없고 API는 실계좌에만 연결됩니다. 실계좌에 연결하기 전에 인증, 토큰 갱신 로직, 데이터 형태를 검증하는 데 샌드박스를 쓰세요.
WebSocket 스트리밍은 무엇을 다룰까?
API는 실시간 데이터를 위한 WebSocket 스트리밍을 지원합니다. 스트리밍은 주식과 ETF의 Level 1과 Level 2(NYSE/NASDAQ) 호가, 옵션 호가, 체결 내역을 다룹니다. 문서화되지 않은 선물 호가 스트리밍이 일부 있지만 공식 API 범위에는 포함되지 않습니다.
호출 제한과 시간외 호가 범위는 developer.schwab.com의 최신 Schwab 개발자 문서를 확인하세요.
Schwab Trader API는 누구에게 맞을까?
Schwab Trader API는 Schwab 계좌에서 미국 주식, ETF, 옵션을 매매하는 기술적 트레이더와 개발자에게 맞습니다. TD Ameritrade Developer API에서 자연스럽게 옮겨 올 수 있는 경로입니다.
| 잘 맞는 경우 | 맞지 않는 경우 |
|---|---|
| Schwab의 미국 주식, ETF, 옵션 | 선물, 외환, 미국 외 시장이 필요한 멀티 애셋 트레이더 |
| TD Ameritrade API에서 이전하는 사용자 | 모의 거래 모드가 필요한 워크플로 |
| 샌드박스가 있는 표준 REST/OAuth | 선물 주문 라우팅이 필요한 경우 |
| 리테일 계좌, 미국 시장 중심 | 기관 또는 글로벌 거래소 요건 |
개인 접근은 상업적 승인과 다릅니다
developer.schwab.com에 등록하고 내 계좌를 대상으로 테스트하는 것은 개인 접근입니다. 다른 Schwab 고객의 계좌를 연결하는 애플리케이션을 제공하는 것은 별도의 단계로, 상업적 승인이 필요합니다. 이 심사는 사용 사례, 사용자가 주문 실행에 대한 직접적인 통제권을 유지하는지, 자동화나 AI 기반 기능이 있는지를 모두 Schwab의 자기주도형 리테일 매매 모델에 비추어 평가합니다.
Trader API 위에 제품을 출시할 계획이라면 이 심사의 범위를 일찍 파악하세요. 심사가 평가하는 내용과 준비 방법은 /resources/articles/schwab-trader-api-commercial-approval-what-the-review-evaluates 글을, 자기주도 모델에 맞는 읽기 전용 설계 패턴은 /resources/articles/read-only-schwab-api-apps-self-directed-model 글을 참고하세요.
개발 전 체크리스트
연동 코드를 작성하기 전에 이 목록을 점검하세요.
- developer.schwab.com에서 애플리케이션을 등록합니다. 클라이언트 ID, 클라이언트 시크릿, 리디렉션 URI를 받아 둡니다.
- 내 계좌 유형이 API 이용 대상인지 확인하세요. 대상 계좌 유형은 최신 Schwab 개발자 문서를 보세요.
- 샌드박스에서 인증을 처음부터 끝까지 테스트합니다. 실계좌에 연결하기 전에 30분 경계에서 토큰 갱신이 작동하는지 확인하세요.
- 모든 상품을 Schwab의 심볼 형식에 맞춥니다. 옵션은 OSI 21자 형식을 쓰므로 파서가 올바르게 처리하는지 확인하세요.
- 필요한 상품이 위의 거래 범위에 해당하는지 확인합니다. 선물 주문 라우팅은 지원되지 않습니다.
- 과거 봉 필요 범위를 정합니다. 주식과 ETF만 가능하며 일봉, 1분, 5분, 10분, 15분, 30분 간격입니다. 1분봉 이력은 약 30~35일입니다.
- 거래 내역 조회 기간과 분할/배당 조정 세부 사항은 이에 의존하는 로직을 만들기 전에 최신 Schwab 개발자 문서를 확인하세요.
- IBKR 대안이나 더 넓은 API 스택 비교는 /resources/articles/ibkr-vs-alpaca-vs-tradier-for-technical-traders-api-stack-fit-checklist 글을 참고하세요.
- Schwab 워크플로 구축의 범위를 잡는 컨설팅 지원은 /consulting을 참고하세요.
자주 묻는 질문
- Schwab API는 무료인가요?
- Schwab은 Trader API의 가격을 공개하지 않습니다. Schwab 증권 계좌와 승인된 개발자 앱이 필요합니다. MyLinedChart에서는 내 Schwab 개발자 앱으로 로그인하며, 로그인 정보는 내 기기에 남습니다.
- Schwab Trader API는 TD Ameritrade Developer API와 같은 건가요?
- 아니요. Schwab Trader API는 그 후속입니다. TDA API는 이제 완전히 종료되었습니다. 인증과 엔드포인트 경로가 다르므로 기존 TDA 연동은 이전해야 합니다. 현재 명세는 developer.schwab.com에 있습니다.
- Schwab API는 모의 거래를 지원하나요?
- 아니요. Schwab Trader API는 실계좌에만 연결됩니다. 샌드박스는 인증, 토큰 로직, 데이터 형태를 검증하는 가상 데이터 테스트 환경이며 모의 거래 계좌로는 쓸 수 없습니다.
- Schwab Trader API로 어떤 상품을 거래할 수 있나요?
- 미국 주식, ETF, 멀티 레그 전략을 포함한 옵션, 지수 옵션입니다. 선물, 외환, 암호화폐, 채권, 미국 외 주식은 거래할 수 없습니다. 선물 주문은 HTTP 400을 반환합니다. 문서화되지 않은 선물 스트리밍 호가 데이터는 일부 있지만 선물에는 주문 라우팅이나 과거 봉 접근이 없습니다.
- 기술적 매매에서 Schwab API는 IBKR과 어떻게 다른가요?
- Schwab은 더 단순한 OAuth 2.0 설정과 샌드박스로 미국 주식, ETF, 옵션을 다룹니다. IBKR은 선물을 포함해 전 세계의 더 넓은 상품군을 다룹니다. 자세한 비교는 /resources/articles/ibkr-vs-schwab-api-technical-traders 글을 참고하세요.
- Schwab Trader API를 쓰려면 상업적 승인이 필요한가요?
- 내 계좌를 대상으로 개발하고 테스트하는 데는 개인 접근만 있으면 됩니다. 상업적 승인은 다른 Schwab 고객의 계좌를 연결하는 애플리케이션을 제공하기 전에 필요한 별도의 심사입니다. /resources/articles/schwab-trader-api-commercial-approval-what-the-review-evaluates 글을 참고하세요.