Communitygithub.com

twitterapi-io-read

twitterapi.ioの読み取り専用スキル。x-api-keyヘッダー1つで、公開X/Twitterデータ(ツイート、ユーザープロフィール、フォロワー・フォロー、高度な検索、返信、引用ツイート、トレンド、リスト、コミュニティ)をREST API経由で検索・分析します。投稿やログインは不要で、APIキーのみで動作します。

twitterapi-io-read とは?

このスキルは、twitterapi.ioが提供するREST APIを使用して、X/Twitterの公開データに読み取り専用でアクセスするためのものです。 twitterapi.ioはX Corp.とは無関係のサードパーティAPIであり、公式APIとは異なります。 主な機能は、ユーザー名やIDによるプロフィール・ツイートの取得、高度な検索(Xの検索演算子に対応)、フォロワー・フォロー一覧の取得、返信や引用ツイートの取得、トレンド、リスト、コミュニティのデータなどです。すべてのエンドポイントはGETリクエストで、認証はx-api-keyヘッダー1つのみです。 APIキーは環境変数TWITTERAPI_IO_KEYから読み取り、ソースコードにハードコードしないように注意する必要があります。課金は呼び出しごとに発生するため、ループ処理の前にコストを見積もり、ユーザーに確認することを推奨します。 サポートされるプラットフォームは、curlやPythonなどのHTTPクライアント、およびMCPサーバーとしても利用可能です。エラーハンドリングとしては、402エラー(残高不足)はリトライせずにユーザーに通知し、429エラー(レート制限)はバックオフ付きでリトライするなど、一般的なパターンに従います。

対応~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/kaitoInfra/twitterapi-io/tree/main/skills/twitterapi-io-read

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

twitterapi.io (読み取り専用)

twitterapi.io チームが管理する読み取り専用スキルです。公開X/Twitterデータのみを扱います。Xアカウントにログインすることはなく、クッキー、パスワード、プロキシを扱うこともなく、投稿、いいね、フォロー、メッセージ送信なども一切行いません。

twitterapi.io は公開Xデータ向けの独立したサードパーティREST APIであり、X Corp. とは提携していません。Xの公式APIが必要な場合は、https://developer.x.com をご利用ください。

このスキルを使用するタイミング

  • Xの検索演算子 (from:, since_time:, min_faves:, lang: …) を使ったポスト検索
  • ユーザープロフィール、フォロワー、フォローの取得
  • ユーザーの最近のポスト、返信、引用ツイート、リツイートしたユーザー、スレッドコンテキストの取得
  • トレンド、リスト、コミュニティの取得
  • 公開データに基づくダッシュボードの構築、研究データセットの作成、監視ジョブの設定

基本情報

ベースURLhttps://api.twitterapi.io
認証ヘッダーx-api-key: YOUR_KEY (https://twitterapi.io/dashboard から取得)
ドキュメントhttps://docs.twitterapi.io
料金呼び出しごとに課金、詳細は https://twitterapi.io/pricing
ホスト型MCPサーバーhttps://mcp.twitterapi.io/mcp (12の読み取り専用ツール)

セキュリティ

APIキーは環境変数 TWITTERAPI_IO_KEY から読み取ってください。コードにハードコードしたり、出力したり、コミットしたりしないでください。キーがない場合は、ダッシュボードで作成するようユーザーに依頼してください。

最小限の例

curl -s "https://api.twitterapi.io/twitter/user/info?userName=jack" \
  -H "x-api-key: $TWITTERAPI_IO_KEY"
import os, requests

BASE = "https://api.twitterapi.io"
HEADERS = {"x-api-key": os.environ["TWITTERAPI_IO_KEY"]}

r = requests.get(f"{BASE}/twitter/tweet/advanced_search",
                 headers=HEADERS,
                 params={"query": "from:jack", "queryType": "Latest"},
                 timeout=30)
r.raise_for_status()
for t in r.json().get("tweets", []):
    print(t["createdAt"], t["text"][:80])

読み取り専用エンドポイント

パラメーター名はエンドポイントごとに異なります(キャメルケースとスネークケースが混在)。表の通りに正確にコピーしてください。

機能メソッドパスとキーパラメーター
スクリーンネームによるユーザー情報GET/twitter/user/info?userName=
拡張プロフィールGET/twitter/user_about?userName=
IDによるユーザー情報一括取得GET/twitter/user/batch_info_by_ids?userIds=
ユーザー検索GET/twitter/user/search?query=
最近のポストGET/twitter/user/last_tweets?userName= (または userId=)
メンションGET/twitter/user/mentions?userName=
フォロワーGET/twitter/user/followers?userName=&pageSize=200
フォローGET/twitter/user/followings?userName=
IDによるポスト取得GET/twitter/tweets?tweet_ids=
返信GET/twitter/tweet/replies?tweetId=
引用ツイートGET/twitter/tweet/quotes?tweetId=
リツイートしたユーザーGET/twitter/tweet/retweeters?tweetId=
スレッドコンテキストGET/twitter/tweet/thread_context?tweetId=
高度な検索GET/twitter/tweet/advanced_search?query=&queryType=Latest
トレンドGET/twitter/trends?woeid=1
リストのポストGET/twitter/list/tweets?listId=
リストメンバーGET/twitter/list/members?list_id=
コミュニティのポストGET/twitter/community/tweets?community_id=
アカウント残高GET/oapi/my/info

パターン

ページネーション

リスト系エンドポイントは has_next_page と next_cursor を返します。next_cursor を cursor パラメーターとして再送信し、has_next_page が false になったら停止します。バグで無限ループが発生しないよう、必ずページ上限を設定してください。

エラー

  • 400 → 必須パラメーターの欠落、または検索クエリが無効(レスポンスの detail に修正方法が記載されています)
  • 401 / 403 → x-api-key の欠落または間違い
  • 402 → クレジット不足。停止し、ユーザーにチャージを促してください(リトライしないでください)
  • 429 → レート制限。バックオフしながらリトライ
  • 5xx → 一時的なエラー。バックオフしながらリトライ

コスト意識

各呼び出しは課金対象です。長時間実行される可能性のあるループ(大規模アカウントの全フォロワー取得、数ヶ月分の検索など)の前に、呼び出し回数を見積もり、ユーザーに確認してください。

アンチパターン

  • パラメーター名を正規化しないでください。表の通りにコピーします
  • 402 ではリトライしないでください
  • APIキーをログ出力したり、コミットしたりしないでください

関連スキル