[TD] API 申請流程

Web:TD Ameritrade API
官方網站
官方 Getting Started

功能:自動下單、得到帳戶訊息、股價,認證方式為 oauth2
PS. 不是很穩定,請小心使用

註冊流程

  1. 進入官方網站
  2. 點選右上角的 Register,並填入對應的資料
  3. 登入後,點選上方的 My Apps
  4. 點選右邊的 Add a new APP
  5. 輸入資料
    • App Name
      需是唯一的,可使用 special characters (_-$%#) 和 space
    • Callback URL
      用來回傳帳戶的 auth code,可用在獲得 token 上
      可設定 https://localhost:8080,多個網址需用逗號分開
    • OAuth User ID
      apikey 使用,格式會是 userID@AMER.OAUTHAP
    • App Description
  6. 得到 APP,可新增多個 APP,從第四步開始即可

得到帳戶 Token

  1. 登入此網址,進行授權
    https://auth.tdameritrade.com/auth?response_type=code&redirect_uri={{url}}&client_id={{apikey}}
    • {{url}}
      必需是 APP Callback URL 中的
    • {{apikey}}
      OAuth User ID (例:EXAMPLE@AMER.OAUTHAP)
  2. 登入畫面,輸入 TD Ameritrade 帳密,不是 API 帳密
  3. 確認授權的畫面
  4. 授權後,會自動轉向到第一步設定的 redirect_uri
    例:設定 https://localhost:8080,回應 https://localhost:8080/?code=xxxxxxxxx
  5. 複製 code 後面的字串,或是本身程式可直接支援處理
    字串有進行 url encode,使用前記得 decode
  6. 官方 token API
    • 獲得 token,需填入以下資料
      • grant_type
        authorization_code
      • access_type
        offline
      • code
        上一步得到的
      • client_id
        {{apikey}} (例:EXAMPLE@AMER.OAUTHAP)
      • redirect_uri
        必需是 APP Callback URL 中的
    • 更新 token
      • grant_type
        refresh_token
      • refresh_token
        {{refresh_token}} (之前得到的)
      • client_id
        {{apikey}} (例:EXAMPLE@AMER.OAUTHAP)
      • access_type
        offline,可不設定,若有設定則也會更新 refresh_token
  7. 得到 access_token & refresh_token
    • access_token
      有效期限為 30分鐘
    • refresh_token
      有效期限為 90天
  8. 使用方法
    • http header 中加入 Authorization : Bearer {{access_token}}

API Methods

  • 可參考官方文件,詳細又有 tool 可實驗
    • request methods
      Get, Post 等...
    • Resource URL
      呼叫的網址
    • Query Parameters
      可用參數
    • Header Parameters
      認證參數
    • Resource Summary
      安全性與種類
    • Response Summary
      回應的格式
    • Resource Error Codes
      錯誤的格式
  • 認證
    • 目前部分 API 只需要 apikey,不需要帳戶認證,像是 Quotes
    • 未來將會全數都需要認證,才可使用
  • 限制
    • 除了 Accounts & Trading 外
      私人與非商業使用的,只能進行每秒兩次的 requests

參考

View API Documenation
Authentication

留言