エラー処理
TwexAPI の HTTP エラー、MCP ツール失敗、クレジット制限、書き込みアクションのリトライから復旧する。
TwexAPI のエラーは 2 層に分かれます。MCP JSON-RPC エラー(ツール実行前の認証)と REST HTTP エラー(API に到達した後)。ステータスコード、レスポンスボディ、カーソル、ID を保持し、リトライと人間による確認を安全に保ちましょう。
REST レスポンスエンベロープ
成功時:
{
"code": 200,
"msg": "success",
"data": {}
}
HTTP ステータスが 2xx でない場合、ボディに code があっても失敗として扱います。ボディ全体、リクエストパス、消費済みカーソルをログに残してください。
HTTP ステータス別の復旧
| ステータス | 意味 | 対処法 |
|---|---|---|
400 |
無効なクエリ、欠落フィールド、不正なボディ | 入力を修正。そのままリトライしない。 |
401 |
API キー欠落または無効 | dashboard から認証情報を差し替え。Authorization: Bearer 形式を確認。 |
403 |
クレジット枯渇、アカウント制限、アクション不可 | Get Balance を確認。チャージするか、書き込みステップを外す。 |
404 |
ツイート、ユーザー、リスト、リソース未検出 | ID、スクリーン名、カーソルの鮮度を確認。 |
422 |
構造化入力の検証失敗 | エンドポイントページのスキーマフィールドを修正。そのままリトライしない。 |
429 |
レート制限超過 | Rate Limits でバックオフ。next_cursor と完了行を保持。 |
5xx |
一時的なサービスまたは上流取得失敗 | 指数バックオフと上限付きでリトライ。 |
クレジットと残高
従量課金の読み取り・書き込みはアカウントクレジットを消費します。多ページ処理では、長時間ジョブの前後に残高を確認しましょう。
curl --request GET \
--url 'https://api.twexapi.io/balance' \
--header 'Authorization: Bearer YOUR_API_KEY'
403 がクレジットやアクセスに言及する場合:
- API を叩き続けるスケジュールジョブを停止。
- ダッシュボードで残高を確認。
- クレジット復旧後、最後に保存したカーソルから再開。
ページネーション安全なリトライ
検索、フォロワー、タイムライン、DM 履歴では:
next_cursor、has_next_page、task_idをエージェント会話の外に保存。429や5xx後は同じカーソルでリトライ(次ページではない)。400、404、422後は ID とクエリパラメータを確認してからリトライ。
書き込みアクション
書き込みエンドポイント(ツイート、返信、いいね、フォロー、DM 送信)には以下が必要です。
- 有効な TwexAPI API キー
- リクエスト上の保存済み Twitter cookie または
auth_token
復旧ルール:
| 状況 | 推奨アクション |
|---|---|
書き込みで 401 |
リトライ前に API キーと cookie 認証情報を修正。 |
書き込みで 403 |
クレジットと接続アカウントの権限を確認。 |
| 成功が曖昧 | 読み取りエンドポイントでツイート、DM、エンゲージメント状態を確認してから重複実行。 |
| エージェントワークフロー | read_only: false の MCP 呼び出し前に人間の承認を必須に。 |
TwexAPI は別途の書き込みポーリング API を提供していません。副作用を繰り返す前に、べき等な読み取りチェック(ツイート参照、DM ステータス)を優先。cookie 設定と 403 復旧は。
MCP エラー
ツール実行前の認証失敗
MCP 認証が失敗すると、explore と twexapi_request は実行されません。
{
"jsonrpc": "2.0",
"error": {
"code": 401,
"message": "Missing MCP API token"
}
}
MCP クライアントの x-api-key または Authorization: Bearer を修正し、ツール呼び出しを再実行してください。
twexapi_request 経由の API エラー
基盤 REST 呼び出しが失敗した場合、ツール結果を保持します。
{
"status_code": 403,
"endpoint": "get_global_trending_tweets",
"method": "GET",
"path": "/twitter/global-trending/tweets",
"result": {
"detail": "Credits exhausted or action not allowed."
}
}
上記 HTTP 復旧表と同じ対応を適用。ルートが変わった可能性がある場合のみ explore を再呼び出し — モデルに新パスを推測させないでください。
SDK と CLI のエラー
生成 SDK は HTTP 失敗を言語ネイティブな例外にマップします。ジョブ境界で catch し、ステータスコードとレスポンスボディをログ、429/5xx はリトライポリシーへ。
Python 例:
import requests
try:
response = requests.get(
"https://api.twexapi.io/balance",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
response.raise_for_status()
except requests.HTTPError as exc:
status = exc.response.status_code
body = exc.response.text
if status == 429:
# Back off, preserve cursor, retry later
...
elif status in (400, 404, 422):
# Fix input; do not retry unchanged
...
raise
言語別パターンは各 SDK ページ を参照してください。
リトライバックオフテンプレート
429 と 5xx には上限付き指数バックオフ:
retry_delays_seconds = [5, 15, 45, 120]
for delay in retry_delays_seconds:
response = call_twexapi()
if response.ok:
break
if response.status_code in (429, 500, 502, 503, 504):
time.sleep(delay)
continue
break # 4xx other than 429: stop and fix input
バックオフは Rate Limits と組み合わせ、429 直後にフル QPS でジョブを再開しないようにしましょう。
フレームワーク別メモ
| 実行環境 | 推奨事項 |
|---|---|
| LangChain | ハンドオフモデルを検証。401 でグラフを停止。 |
| Prefect | ジッター付きタスクリトライ。カーソルはタスク状態に保存。 |
| n8n / Zapier / Make | 401/403 は運用アラートへ。429 リプレイは遅延。 |
| MCP agents | 部分成功後に next_cursor を破棄しない。 |