本文へスキップ
AllTick
相場 API 障害診断・トラブルシューティングセンター

相場 API トラブルシューティング:認証・レート制限・接続・時間処理

開発者向けの市場相場 API 障害診断ガイド。401 認証エラー、429 レート制限、WebSocket プッシュ受信不可、UTC・米国東部タイムゾーン変換などの頻出問題に対するチェックリストと自己診断コードを網羅。

標準診断プロセス

4つのステップで障害範囲を特定

依存レイヤーごとに順次検証し、無効な認証情報による無駄な再試行とレート制限を防止します。

01

ステータスコードと業務コードの確認

認証失敗とレート制限の判別

HTTP ステータスコードとレスポンス ret を確認。401 は Token エラー、429/605 はレート制限です。401 エラーで無制限な再試行を行わないでください。

02

認証情報の整合性確認

Token と環境変数の確認

コードで読み込んだ Token が空でないか、前後に不要な空白や改行がないか確認し、本番環境の環境変数が正しくロードされているか検証します。

03

API パスと市場タイプの整合

接続先エンドポイントと銘柄形式の検証

株式データは quote-stock-b-api(700.HK, AAPL.US など)、為替・貴金属は quote-b-api(EURUSD など)を使用します。不一致はエラーとなります。

04

取引時間帯とハートビート確認

休場日・昼休みおよびタイムアウト切断の除外

各取引所の休場中や昼休みはデータが配信されません。WebSocket 接続では定期的なハートビート(cmd_id: 22000)を送信し、再接続後は再購読が必要です。

重点ガイド

トラブルシューティングガイド

各技術要素における詳細な原因分析、本番トラブルシューティング手順、実行可能なコードを網羅。

全 3 件の専門ガイド
HTTP 401 / 429

相場 API の認証失敗(401)とレート制限(429)のトラブルシューティング

HTTP ステータスコード、レスポンス ret、Token 設定、リクエスト頻度の順に 401 認証エラーと 429 レート制限を切り分ける診断ガイド。

重点チェック:

  • HTTP ステータス → 業務コード → Token → レート制限の 4 段階診断
  • ランダムジッター付き Python 指数バックオフ再試行の実装
  • 複数銘柄の一括問い合わせ(symbol_list)によるリクエスト数 80% 削減
更新日: 詳細手順
WebSocket ストリーミング

WebSocket 接続成功後にデータが届かない場合の対処法

WebSocket 接続は確立されたのに相場データが届かない場合、購読メッセージ、銘柄表記、エンドポイント、取引時間帯、ハートビートの5項目を順に点検します。

重点チェック:

  • 購読メッセージ(cmd_id: 22004)の形式とサーバー受信応答の確認
  • 取引所の取引時間、サマータイム、昼休み休場状態の確認
  • 24時間常時取引の EURUSD を用いた最小限 5 行の疎通検証
更新日: 詳細手順
UTC と米国東部時間

米国株相場のタイムスタンプ・夏時間・取引時間帯の処理

米国株相場の時刻を正しく扱う方法:UTC での保存、America/New_York タイムゾーンによる夏時間(DST)自動変換、日足日付の帰属処理。

重点チェック:

  • 13 桁ミリ秒と 10 桁秒の自動判別と単位正規化
  • 米国サマータイムと標準時の取引時間比較表
  • 深夜をまたぐ取引による日足ローソク足の誤分割を防止
更新日: 詳細手順
リファレンス

一般的なエラーコードと現象リファレンス

エラーや異常が発生した際、以下の表から原因と対処法を特定できます。

ステータス / エラーコード発生現象主な原因確認と対処方法関連ガイド
ret: 401 / HTTP 401token invalid (認証失敗)Token 未指定、フォーマット不正、有効期限切れ、前後の余計な空白改行Token 長と文字を確認し、管理画面で Token 状態と市場権限を確認認証トラブルガイド
ret: 429 / 605Too Many Requests (レート制限超過)秒間または分間のリクエスト上限超過、または複数プロセスでの同一 Token 共有指数バックオフ再試行を実装し、複数銘柄は symbol_list 一括リクエストに統合レート制限ガイド
ret: 600code invalid (銘柄コード無効)銘柄コードの誤記、サフィックス欠落、または不正な API パスの使用株式は quote-stock-b-api、為替は quote-b-api を使用しているか確認コード形式の確認
ret: 603 / 604level not enough / unauthorized1回のリクエスト銘柄数やローソク足本数がプラン上限を超過、または未開放の市場プランの一括取得上限を確認し、管理画面で対象市場の利用権限を確認クォータ説明
ret: 606Connection will be closedWebSocket 接続数が上限超過、または同一接続内の送信間隔が 1〜3 秒未満同時接続数をプラン内に収め、リクエスト送信間隔を最低 1 秒空けるWebSocket 制約
ret: 400 / 402param invalid / query invalidtrace ID の欠落、または GET リクエストの query パラメータの URL エンコード漏れquery が正規 JSON 文字列かつ URL エンコード済みか確認し、trace と data を保持パラメータ仕様
WS 接続成功もプッシュなしNo Push Data (配信なし)購読メッセージ(cmd_id: 22004)未送信、休場時間帯、または購読応答未受信購読メッセージ形式と seq_id 応答を確認。平日常時動く EURUSD で検証推奨WS トラブルガイド
時刻が 1970 年と表示されるTimestamp Parsing ErrorAllTick の tick_time は 13 桁ミリ秒ですが、10 桁秒として解釈されたタイムスタンプ長を判定し、10^12 超なら 1000 で割って秒に変換。UTC で保存時刻処理ガイド
自己診断スクリプト

わずか 5 行のコードで接続性を検証

ローカルまたはサーバー上で実行し、Token の有効性とネットワーク遅延を直接検証します。

test_connection.py
# AllTick Connectivity Self-Check
import os
import requests

API_TOKEN = os.getenv("ALLTICK_API_TOKEN", "YOUR_TOKEN_HERE")
BASE_URL = "https://quote.alltick.co/quote-stock-b-api/trade-tick"

params = {
    "token": API_TOKEN,
    "query": '{"trace":"diagnose-1","data":{"symbol_list":[{"code":"700.HK"}]}}'
}

response = requests.get(BASE_URL, params=params, timeout=5)
print(f"HTTP Status: {response.status_code}")
print(f"Response Body: {response.text}")
期待される正常レスポンス (HTTP 200 OK)
JSON
{
  "ret": 200,
  "msg": "ok",
  "trace": "diagnose-1",
  "data": {
    "tick_list": [
      {
        "code": "700.HK",
        "price": "398.20",
        "tick_time": "1712648400000"
      }
    ]
  }
}
ヒント:ret: 401 の場合は管理画面で Token を再発行してください。ret: 429 の場合はリクエストレート制限を確認してください。
公式テクニカルサポート

自己診断で解決しない場合

上記の手順で解決しない場合は、以下のマスキング済みログを添えて AllTick サポートチームまでご連絡ください。エンジニアが迅速に対応いたします:

  • 完全なエンドポイント URL(Token はマスキング)
  • サーバーから返却された完全な HTTP ステータスと JSON レスポンス
  • エラーが発生した正確な UTC 時刻と継続時間
  • 使用しているプログラミング言語、ライブラリ、およびバージョン

本番環境で安定したリアルタイム相場データを導入しませんか?

AllTick は米国株、香港株、為替、コモディティのミリ秒配信を提供し、99.95% の可用性 SLA と専門サポートを保証します。