xurl とは
xurl は、X(旧Twitter)の開発者プラットフォームチームが公開している公式CLIツール。curlのX API特化版で、OAuth認証の面倒な部分を吸収してくれる。Go製。2024年12月にリポジトリが作られ、2026年2月にv1.0.3がリリースされている。GitHubスター数は480程度。
# 自分のアカウント情報を取得
xurl /2/users/me
# ツイートを投稿
xurl -X POST /2/tweets -d '{"text":"Hello world!"}'
# 最近のツイートを検索
xurl /2/tweets/search/recent?query=from:elonmusk
curl + OAuth認証の組み合わせでやっていたことが、認証周りを意識せずに実行できる。
インストール
4つの方法がある。
# npm
npm install -g @xdevplatform/xurl
# Homebrew(macOS)
brew install --cask xdevplatform/tap/xurl
# シェルスクリプト(~/.local/bin にインストール)
curl -fsSL https://raw.githubusercontent.com/xdevplatform/xurl/main/install.sh | bash
# Go
go install github.com/xdevplatform/xurl@latest
認証のセットアップ
1. 開発者アカウントを作る
console.x.com でX API開発者アカウントを作成し、Developer Agreementに同意する。アプリを作成するとClient IDとClient Secretが発行される。
2. xurl にアプリを登録
xurl auth apps add my-app \
--client-id YOUR_CLIENT_ID \
--client-secret YOUR_CLIENT_SECRET
3. OAuth 2.0 で認証
X API開発者コンソールで、リダイレクトURIに http://localhost:8080/callback を設定しておく。
xurl auth oauth2
ブラウザが開いてXの認可画面が表示される。許可するとトークンが ~/.xurl にYAML形式で保存される。
その他の認証方法
# OAuth 1.0a
xurl auth oauth1 \
--consumer-key KEY --consumer-secret SECRET \
--access-token TOKEN --token-secret SECRET
# Bearer Token(アプリ認証、読み取り専用)
xurl auth app --bearer-token BEARER_TOKEN
主な機能
複数アプリ・複数アカウント管理
xurl auth apps list # 登録済みアプリ一覧
xurl auth default my-app # デフォルトアプリを設定
xurl auth status # 全アプリの認証状態を表示
xurl --app dev-app /2/users/me # 特定アプリで実行
HTTPメソッド・ヘッダ指定
xurl -X POST /2/tweets -d '{"text":"投稿テスト"}'
xurl -X DELETE /2/tweets/:id
xurl -H "Content-Type: application/json" /2/tweets
ストリーミング
ストリーミングエンドポイントは自動検出される。
xurl /2/tweets/search/stream # フィルタードストリーム
xurl /2/tweets/sample/stream # サンプルストリーム
xurl -s /2/users/me # 強制ストリーミングモード
メディアアップロード
xurl media upload path/to/image.jpg
xurl media upload --media-type video/mp4 --category tweet_video file.mp4
xurl media status MEDIA_ID --wait # 処理完了まで待機
Webhook
xurl webhook start # ローカルでWebhookサーバーを起動
xurl webhook start -p 8081 -o log.txt # ポートとログファイルを指定
ngrokを使ってローカルサーバーへのパブリックURLを自動生成する。
無料アカウントでどこまで使えるか
ここが本題。2026年3月時点で、X APIにはFreeティア(既存ユーザー向け) と 従量課金(新規ユーザー向け) の2つの入口がある。
Freeティア(まだ存在する)
既存のFreeティアはまだ残っていて、投稿(Write)専用で使える。
| 項目 | 制限 |
|---|---|
| ポスト投稿 | 月1,500件(一時期500件に削減されたが復活) |
| ポスト読み取り | ほぼ不可(月0件) |
| ツイート検索 | 不可 |
| API バージョン | v2のみ |
| 料金 | $0 |
つまり xurl + Freeティアで、月1,500件までのツイート投稿が完全に無料 でできる。自分のボットや自動投稿には十分使える。ただし読み取り系(タイムライン取得、検索、分析)はほぼ使えない。
従量課金モデル(新規ユーザーのデフォルト)
2026年2月から、新規開発者はFree/Basic/Proの固定ティアを選べなくなり、従量課金が唯一の選択肢になった。
- 月額固定費なし — 使った分だけクレジットから引かれる
- 最低利用額なし — 使わなければ$0
- クレジットを事前購入 して、API呼び出しごとに消費される
- 月間200万ポスト読み取りの上限あり(それ以上はEnterprise)
- 同一ポストの重複リクエストは24時間以内なら1回分のみ課金
- 失敗したリクエストは課金されない
既存のBasic(200/月)・Pro(5,000/月)ユーザーはそのまま継続でき、従量課金との切り替えも可能。
具体的な料金
エンドポイントごとに異なる料金が設定されているが、具体的な単価はドキュメントに記載されていない。Developer Consoleにログインすると確認できる。
xAIクレジット還元
X APIクレジット購入額に応じて、xAI(Grok)で使えるクレジットが還元される。
| 累計購入額 | 還元率 |
|---|---|
0〜199 | 0% |
200〜499 | 10% |
500〜999 | 15% |
| $1,000以上 | 20% |
つまり「無料」でできること
- 投稿: Freeティアで月1,500件まで無料
- 読み取り・検索・分析: 無料では使えない。従量課金でクレジット購入が必要
- xurl自体: 無料のOSS。インストール・認証設定に費用はかからない
主要エンドポイントのレートリミット(抜粋)
従量課金とは別に、レートリミット(単位時間あたりの呼び出し回数制限)がある。
ポスト関連
| エンドポイント | アプリ認証 | ユーザー認証 |
|---|---|---|
GET /2/tweets | 3,500/15分 | 5,000/15分 |
GET /2/tweets/search/recent | 450/15分 | 300/15分 |
POST /2/tweets | 10,000/24時間 | 100/15分 |
DELETE /2/tweets/:id | — | 50/15分 |
ユーザー関連
| エンドポイント | アプリ認証 | ユーザー認証 |
|---|---|---|
GET /2/users/me | — | 75/15分 |
GET /2/users/:id | 300/15分 | 900/15分 |
GET /2/users/:id/followers | 300/15分 | 300/15分 |
いいね・リツイート
| エンドポイント | ユーザー認証 |
|---|---|
POST /2/users/:id/likes | 50/15分 + 1,000/24時間 |
POST /2/users/:id/retweets | 50/15分 |
DM
| エンドポイント | ユーザー認証 |
|---|---|
GET /2/dm_events | 15/15分 |
POST /2/dm_conversations/.../messages | 15/15分 + 1,440/24時間 |
全115以上のエンドポイントにレートリミットが設定されている。
まとめ
- xurl はX API公式のCLI。OAuth認証をラップして
curl感覚でX APIを叩ける - Freeティアで月1,500件の投稿が無料。 ボットや自動投稿に使える
- 読み取り・検索・分析には従量課金でクレジット購入が必要
- 2026年2月以降の新規ユーザーは従量課金のみ。Freeティアを選べるかは要確認
- xurl自体は無料のOSSで、インストール・認証設定に費用はかからない