トレーダー向けSchwab API:対応範囲と制限
Schwab Trader APIは、TD Ameritrade Developer APIの後継です。RESTインターフェースとOAuth 2.0認証を通じて、Schwabの口座データ、市場データ、米国市場の注文送信にプログラムからアクセスできます。このガイドでは、APIが対応する内容、どんな人に向いているか、開発前に解決しておくべきことを説明します。計画の参考情報にとどまり、売買の助言ではありません。ブローカーやデータについての保証もありません。
- Schwab Trader APIは、米国株、ETF、複数レッグ戦略を含むオプション、指数オプションに対応します。先物、FX、米国外の株式は対象外です。
- 認証は3-legged OAuth 2.0で、アクセストークンは約30分、リフレッシュトークンは約7日有効です。
- 本番前のテスト用に、擬似口座つきのサンドボックス環境があります。ただし、サンドボックスはペーパートレード口座としては使えません。
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、オプション(バーティカルスプレッド、ストラドル、バタフライなどの複数レッグ戦略を含む)、指数オプションの取引に対応します。先物、FX、暗号資産、債券、米国外の株式は、APIでは取引できません。先物の注文はHTTP 400を返します。一部の先物銘柄には、限定的で非公開のストリーミング気配値データがありますが、先物の注文ルーティングも、先物の過去のバーデータもありません。
対応する注文タイプは、成行、指値、逆指値、逆指値付き指値、トレーリングストップ、OCO(一方が約定すると他方を取消)、OTO(一方が約定すると他方を発動)、複合(1つがOCOを発動)です。複数レッグのオプションのOCO/OTOの組み合わせは、開発者コミュニティでは実験的とされています。これを前提に本番のロジックを組む前に、実際のブローカー接続で検証してください。
オプションのシンボルは、OSIの21文字形式を使います。例:AAPL 240419C00150000。データパイプラインのコードを書く前に、シンボル形式の処理を確認してください。
| 商品 | APIでの取引 | ストリーミング気配値 | 過去のバー |
|---|---|---|---|
| 米国株 | 可 | 可(L1とL2) | 可 |
| ETF | 可 | 可(L1とL2) | 可 |
| オプション(複数レッグを含む) | 可 | 可 | 不可 |
| 指数オプション | 可 | 可 | 不可 |
| 先物 | 不可、HTTP 400 | 限定的/非公開 | 不可 |
| FX/暗号資産 | 不可 | 不可 | 不可 |
| 米国外の株式 | 不可 | 不可 | 不可 |
Schwab Trader APIの認証の仕組みは?
認証は、3-legged OAuth 2.0のフローを使います。アプリがユーザーをSchwabの認可ページへリダイレクトし、ユーザーがアクセスを許可すると、アプリが認可コードをトークンに交換します。
アクセストークンの有効期間は約30分、リフレッシュトークンは約7日です。使われなかったリフレッシュトークンは失効し、ユーザーが操作する新しい認可の手順が必要になります。週末をまたいで無人で動くワークフローには、トークン更新のロジックを積極的に組み込む必要があります。
アプリケーションを登録し、クライアントID、クライアントシークレット、リダイレクトURIを developer.schwab.com で取得します。認証情報は、バージョン管理の対象に含めないでください。
Schwab APIにサンドボックスはある?
はい。擬似口座とデータを備えたサンドボックス環境があります。本番と同じ認証情報を使いますが、接続先のベースURLが異なります。
サンドボックスは擬似データによるテスト環境で、ペーパートレード口座としては使えません。Schwab Trader APIにペーパートレードのモードはなく、APIが接続するのは本番の口座だけです。本番の口座に接続する前に、認証、トークン更新のロジック、データの形をサンドボックスで検証してください。
WebSocketストリーミングは何をカバーする?
APIは、リアルタイムデータ向けにWebSocketストリーミングに対応しています。ストリーミングは、株式とETFのレベル1とレベル2(NYSE/NASDAQ)の気配値、オプションの気配値、約定履歴(time-of-sale)をカバーします。非公開の先物気配値のストリーミングも一部ありますが、公式のAPIには含まれません。
レート制限と時間外取引の気配値の対応範囲については、developer.schwab.com にある最新のSchwabデベロッパードキュメントをご確認ください。
Schwab Trader APIが合うのはどんな人?
Schwab Trader APIは、Schwabの口座で米国株、ETF、オプションを取引するテクニカルトレーダーと開発者に合います。TD Ameritrade Developer APIからの自然な移行先です。
| 合う人 | 合わない人 |
|---|---|
| Schwabで米国株、ETF、オプションを取引する人 | 先物、FX、米国外の市場が必要なマルチアセットのトレーダー |
| 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、複数レッグ戦略を含むオプション、指数オプションです。先物、FX、暗号資産、債券、米国外の株式は取引できません。先物の注文は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 をご覧ください。