Twitterを場所で検索する方法
Twitterを場所で検索するには、X検索の「近くのポスト」フィルターを使うか、near:"city" within:15km または geocode:lat,long,radius と入力します。3つとも、Xが場所と結び付けられる投稿しか見つからず、位置情報つきの投稿は100件に1件もありません。
要点: Xは、位置情報クエリを、投稿者が投稿に付けた場所タグと、直近約1週間に限ってはプロフィールに書かれた都市に照らして一致させます。これらの演算子は公式には文書化されておらず、2026年には動作しないという報告がありました。Sorsa APIの POST /search-tweets なら、同じクエリをコードで実行でき、各投稿者の所在地も返ります。投稿は1,000件あたり$0.07からで、100回分の無料リクエストで試せます。
- エンドポイント
POST /search-tweets- 1ページの件数
- 1リクエストあたり約20投稿
- 料金
- 1,000件あたり$0.07から
#Twitterを場所で検索する方法
Xを場所で検索する方法は3つあり、どれもx.comやXアプリの通常の検索ボックスから使えます。いずれも、「停電」や「コンサート」のようなキーワードと組み合わせたときに最も効果を発揮します。ある場所から何が投稿されているかではなく、1つのアカウントがどこを拠点にしているかを知りたいなら、問いが違います。その場合は、無料のTwitterアカウント所在地確認ツールが、公開アカウントのXの「アカウントの所在地」表示を読み取ります。
ある場所の投稿を探す手順は次のとおりです。
-
「近くのポスト」をオンにします。 キーワードで検索し、検索フィルター(デスクトップでは右の列、アプリでは検索バーの横のフィルターアイコン)を開いて、「近くのポスト」を選びます。Xはお使いの端末の位置情報を使います(Xヘルプセンター(新しいタブで開きます)による)。
-
near: に半径を付けて入力します。
"street food" near:"Mexico City" within:10kmは、その場所に結び付いた投稿を求めます。2語以上の地名は引用符で囲み、within:にはkmまたはmiで半径を指定します。 -
geocode: に座標を付けて入力します。
"power outage" geocode:30.2672,-97.7431,25kmは、オースティン中心部を中心とした半径25kmの円を描きます。緯度、経度、半径の順で、スペースは入れません。
そのあと「最新」タブを開いてください。Xの検索のレコメンデーション(新しいタブで開きます)のページによると、「最新」は一致した投稿を順位づけせずに時系列で返します。一方、「トップ」は利用者の位置と関心から候補を選びます。Xのフォーラムのある開発者は、2025年に geocode: の絞り込みが「最新」では効き、「トップ」では効かないことを確認しました。
x.com/search-advanced のXの詳細検索フォームにも「場所」の欄があり、クエリに場所を追加できます。
#Xが投稿の場所とみなすもの
Xは、2つの方法で投稿を場所と結び付けます。投稿者が付ける場所タグと、投稿者のプロフィールに入力された所在地です。どちらも任意なので、位置情報検索がカバーするのは、そのどちらかを持つ会話の一部だけです。
- 場所タグ。 投稿者は、投稿にエリアの名前を付けられます。一部の都市では、FoursquareやYelpの店舗名も付けられます。iOSやAndroidのアプリからの投稿には、GPS座標が付くこともあります(Xヘルプセンター(新しいタブで開きます))。2019年より前の調査では、座標つきのツイートは約0.85%でした(Sloan and Morgan, PLOS ONE(新しいタブで開きます))。Twitterは2019年6月に、通常の投稿から正確なジオタグを外しました(Nieman Lab(新しいタブで開きます))。
- プロフィールの所在地。 プロフィールの自由記入欄です。Xのデータディクショナリ(新しいタブで開きます)には、位置情報クエリでの検索時に「あいまいに評価される場合がある」とあります。そのため、自己紹介にある「Austin, TX」が、その投稿者の投稿をオースティンの検索に引き寄せることがあります。
投稿が一致しなくなる原因は2つあります。1つは、プロフィールの「アカウントの所在地」の国です。これはXがIPアドレスから推定するもので、Bellingcatの調査ツールキット(新しいタブで開きます)によれば、位置情報検索には関与しません。もう1つは、本文に書かれた都市名です。キーワードとしてしか一致しないため、near:"Austin, TX" で、単に「Austin」と書かれただけの投稿は見つかりません。
7日間の窓
プロフィールの所在地が使われるのは、最近の投稿に限られます。Bellingcatのテスト(新しいタブで開きます)では、Xは直近約7〜8日間にプロフィールの所在地を使っていました。それより古い結果は場所タグつきの投稿だけだったため、最近の件数が大きく見えていました。
#位置情報の検索演算子と例
X検索は、5つの位置情報の演算子を読み取ります。どれもキーワードの隣に、コロンの後ろにスペースを入れずに置き、日付を含むほかのすべての演算子と組み合わせられます。
| 演算子 | 見つかるもの | 例 |
|---|---|---|
near: | 名前を指定した場所に結び付いた投稿(2語なら引用符) | jazz near:"New Orleans" |
within: | near: の半径(kmまたはmi) | jazz near:"New Orleans" within:5mi |
geocode: | ある地点から半径内の投稿(緯度、経度、半径) | "heat wave" geocode:51.5072,-0.1276,20km |
near:me | 自分の現在地の近くの投稿(ログイン済みのx.comとアプリのみ) | "lost dog" near:me |
place: | Xの場所を1つ、IDで指定してタグ付けされた投稿 | place:96683cc9126741d1(米国) |
near:- 見つかるもの
- 名前を指定した場所に結び付いた投稿(2語なら引用符)
- 例
jazz near:"New Orleans"
within:- 見つかるもの
near:の半径(kmまたはmi)- 例
jazz near:"New Orleans" within:5mi
geocode:- 見つかるもの
- ある地点から半径内の投稿(緯度、経度、半径)
- 例
"heat wave" geocode:51.5072,-0.1276,20km
near:me- 見つかるもの
- 自分の現在地の近くの投稿(ログイン済みのx.comとアプリのみ)
- 例
"lost dog" near:me
place:- 見つかるもの
- Xの場所を1つ、IDで指定してタグ付けされた投稿
- 例
place:96683cc9126741d1(米国)
公式X APIはこれらを受け付けません。near: には無効な演算子というエラーを返し、独自の位置情報の演算子を検索演算子のリファレンス(新しいタブで開きます)に載せています。名前または場所IDを指定する place:、2文字のコードを指定する place_country:、座標を指定する point_radius: と bounding_box:、位置データのあるすべての投稿を表す has:geo です。どれも、場所タグまたは座標を持つ投稿にしか一致しません。
数値の順序は、2つの系統で逆です。geocode: は緯度が先(geocode:40.7128,-74.0060,10km)で、point_radius: は経度が先(point_radius:[-74.0060 40.7128 10km])です。取り違えると、ニューヨークが南極の1点になり、エラーも出ないまま結果がゼロになります。
下のビルダーは、1か所からあらゆる書式を書き出し、座標をチェックして、コード用のリクエストボディを返します。
半径25 kmの円。中心: Austin, TX、面積は約1,963 km²。geocode:は緯度が先、point_radius:は経度が先です。
"power outage" near:"Austin, TX" within:25km
"power outage" geocode:30.2672,-97.7431,25km
{"query": "\"power outage\" geocode:30.2672,-97.7431,25km", "order": "latest"}
"power outage" point_radius:[-97.7431 30.2672 25km]
都市を選ぶか座標を入力すると、入力に合わせて検索クエリとSorsa APIリクエストが更新されます。
これらと組み合わせられる日付、エンゲージメント、メディアのフィルターは、Twitterの検索演算子の一覧で確認できます。クリックでクエリを組み立てるなら、無料のTwitter高度な検索ツールが、「Near city」と「Within radius」の欄から near: と within: を書き出します。
#2026年にnear:とgeocode:はまだ動くか
Xは今も near:、within:、geocode: を受け付けますが、どれも文書化されておらず、結果は2026年の間に変わりました。レポートやダッシュボードの土台にする前に、クエリを1つずつテストしてください。
今年報告された内容は次のとおりです。
- 2026年3月3日。 OSINT調査者の投稿(13.5K回表示)が、
geocode:の検索が2月25日から動かなくなった(新しいタブで開きます)と報告しました。 - 2026年5月23日。 Redditのユーザーが、動かなくなった「近くのポスト」フィルターの代わりに
geocode:を使いました。N、S、E、Wを付けない10進数の座標と半径であれば動くと書いています。 - 2026年6月1日。 Xのフォーラム(新しいタブで開きます)の開発者が、geocodeフィルターを「現在は機能していない」と書きました。
位置情報クエリが今日動くかを確かめるには、「最新」タブで2回検索します。位置情報の演算子つきのキーワードと、演算子なしの同じキーワードです。どちらも同じ投稿が返るなら、Xは演算子を無視しています。演算子つきの検索で投稿が返るなら、いくつかの投稿者のプロフィールを開いて、場所タグやプロフィールの所在地が合っているかを確認してください。
知っておきたいこと
位置情報検索の結果が空でも、その場所から誰も投稿していないという意味ではありません。あなたの検索範囲に場所タグつきの投稿がなく、最近の投稿者に該当する都市を書いた人もいないか、Xが演算子を無視したということです。次は、コードのあとの節で示す方法で、その場所の名前を検索してください。
#Sorsa APIで場所を指定して投稿を検索する
コードで位置情報検索をするなら、Sorsa APIのPOST /search-tweets(新しいタブで開きます)が使えます。x.comと同じ near:、within:、geocode: のクエリを受け付け、1リクエストで約20投稿を返し、どの投稿にも location を含む投稿者のプロフィール全体が入っています。料金は投稿1,000件あたり$0.07からで、Sorsa APIはXのログイン情報を求めないため、あなたのアカウントが危険にさらされることはありません。
-
キーを取得します。 登録して、ダッシュボードからAPIキーをコピーします。最初の100リクエストは無料です。
-
クエリを送ります。 位置情報クエリを
queryに入れ、順位づけのないlatestを指定します。Terminal curl -X POST "https://api.sorsa.io/v3/search-tweets" \ -H "ApiKey: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "\"power outage\" near:\"Austin, TX\" within:25km", "order": "latest" }'Response200 OK { "tweets": [ { "id": "1985120440187539712", "full_text": "Whole block on South Congress is dark again", "created_at": "2026-11-01T22:14:09Z", "lang": "en", "likes_count": 14, "reply_count": 3, "retweet_count": 2, "view_count": 1820, "user": { "id": "1630221874001645568", "username": "southcongress_grid_log", "display_name": "SoCo Grid Log", "location": "Austin, TX", "followers_count": 412 } } ], "next_cursor": "DAADDAABCgABG4z1bJ9W0DsKAAIbjPVs" } -
結果のページをたどります。
next_cursorが返らなくなるまで、ボディに入れて送り返します。 -
各投稿者の所在地を確認します。
user.locationに目的の場所が書かれている投稿を残し、何が一致したのか分かるように、元のテキストも保存しておきます。import re import requests URL = "https://api.sorsa.io/v3/search-tweets" HEADERS = {"ApiKey": "YOUR_API_KEY"} QUERY = '"power outage" near:"Austin, TX" within:25km' PLACE = re.compile(r"\b(austin|atx|travis county)\b", re.I) def search(query, max_pages=10): body = {"query": query, "order": "latest"} for _ in range(max_pages): r = requests.post(URL, headers=HEADERS, json=body, timeout=30) r.raise_for_status() page = r.json() yield from page.get("tweets", []) cursor = page.get("next_cursor") if not cursor: break body["next_cursor"] = cursor for t in search(QUERY): where = t["user"].get("location") or "" tag = "profile" if PLACE.search(where) else "other" print(tag, t["created_at"], t["user"]["username"], repr(where))
403はキーがないかリクエストを使い切ったことを、429は1秒間に20リクエストを超えたことを示します。1秒待って再試行してください。失敗したリクエストに課金されることはありません。ほかの検索パラメーターや、数千ページに及ぶ実行については、Twitter検索APIのガイドを参照してください。
#near:が使えないときは地名で検索する
near: や geocode: で結果が空になったら、その場所を言葉で検索し、投稿者のプロフィールは自分で確認します。地元の投稿は、都市名、地区名、地域のハッシュタグを書いていることが多く、Sorsa APIの結果にはすべて投稿者の location が付いています。そのため、ステップ4と同じフィルターで、地元の人を絞り込めます。
地名で組んだクエリは、たとえば "power outage" (Austin OR ATX OR #atxwx OR "South Congress") lang:en のようになり、場所タグのない投稿にも届きます。これを POST /search-tweets で実行し、user.location が別名リストに一致する投稿だけを残します。別名リストには、都市名、愛称、空港コード、郡名を入れます。
2つの方法は答える問いが違うので、どちらで見つかった投稿かを記録しておいてください。
- 位置情報の演算子は、Xがその場所と結び付けている投稿を見つけます。そこでタグ付けされた投稿か、プロフィールに載せている人が最近書いた投稿です。
- 地名とプロフィールのフィルターの組み合わせは、その場所に住んでいると述べている人による、その場所についての投稿を、2006年までの任意の日付から見つけます。
1回の検索ではなく、数日にわたって場所を見守るには、スケジュールでクエリを再実行し、前回より新しい投稿だけを残します。ポーリングの側は、Twitterのリアルタイム監視で解説しています。また、1つの話題ではなく、都市全体が何を話題にしているかを知りたいなら、TwitterトレンドAPIが、その場所のXのトレンド一覧を返します。
#都市のTwitterアカウントを探す
ある場所のアカウントを探すには、投稿ではなくプロフィールを検索します。x.comなら、位置情報クエリを実行して「ユーザー」タブを開くか、都市名と話題を一緒に検索して、両方に触れているプロフィールを探します。
コードでは、Sorsa APIのPOST /search-users(新しいタブで開きます)が coffee roaster Austin のようなキーワードを受け取り、一致するプロフィールを返します。各プロフィールには location フィールドが付き、next_cursor でページをたどれます。それらのプロフィールを、上と同じ別名リストで絞り込みます。
プロフィールの所在地は、持ち主が入力したものです。X自身がアカウントに割り当てる国は別のフィールドで、「このアカウントについて」にある「アカウントの所在地」の行です。Xがその国をIPアドレスから推定します。Sorsa APIのGET /about(新しいタブで開きます)は、これを country として、1リクエストにつき1アカウント返します。どこまで信頼できるかは、Xの「アカウントの所在地」の意味を参照してください。フォロワーリスト全体を国別に地図化するには、Twitter位置情報APIのガイドが役立ちます。
#位置情報検索にかかる費用
Sorsa APIでは、位置情報検索は投稿1,000件あたり$0.07からで、投稿者のプロフィールも含まれます。公式X APIで同じ投稿を投稿者つきで取得すると、2026年11月22日から1,000件あたり$15.00です。この日からXは、1投稿あたり$0.005に加えて、エクスパンションが返す各ユーザーに$0.010を課金します(Xのお知らせ(新しいタブで開きます))。
公式X API
$1,500
投稿者つきの投稿10万件の場合
投稿者つきの投稿1件$0.015
Sorsa API
$7から
投稿者つきの投稿10万件の場合
1,000件あたり$0.07から
214分の1のコスト
公式のルートでは、さらに上乗せがあります。投稿の場所オブジェクトは、もう1つ$0.005のエクスパンションとして数えられ、投稿者と場所つきの、タグ付けされた投稿は$0.020になります。位置情報の演算子は、場所タグつきの投稿にしか一致しないため、x.comが直近1週間について示すプロフィールの所在地による一致は返ってきません。さらに、従量課金(新しいタブで開きます)は月間300万件の投稿読み取りで止まり、それを超える分は月約$42,000からのEnterprise契約になります。
Sorsa APIはリクエスト単位の課金です。1リクエストで約20投稿が返り、失敗したリクエストは無料で、全プラン毎秒20リクエストです。100回分の無料リクエストで、約2,000投稿を取得できます。
#Twitterの位置情報検索を始める
Xの位置情報検索とは、キーワードに near: か geocode: を加え、「最新」タブで読み、投稿者のプロフィールで確認するものです。1つの都市でも100の都市でもコードで実行するなら、Sorsa APIを使ってください。POST /search-tweets は同じクエリをAPIキー1つで受け付け、各投稿者の所在地を返し、投稿1,000件あたり$0.07からです。
#よくある質問
Xで自分の近くのツイートを見るにはどうすればよいですか?
x.comまたはXアプリでキーワードを検索し、検索フィルターを開いて「近くのポスト」を選びます。Xはお使いの端末の位置情報を使います。検索ボックスに near:me と入力することもできます。どちらもログイン中にしか動作せず、Xが場所タグや最近の投稿者のプロフィールの所在地を通じて、あなたの地域と結び付けた投稿を表示します。
Twitter検索を国で絞り込むにはどうすればよいですか?
X検索には、国コードの演算子がありません。x.comでは、国名を指定した near: か、Xが国に割り当てたIDを指定した place: を使います(米国は 96683cc9126741d1)。公式X APIの place_country:US は、場所タグつきの投稿にしか一致しません。Xが割り当てた国でアカウントをまとめるには、「アカウントの所在地」の表示を読み取ります。Sorsa APIの GET /about が、これを country として、1リクエストにつき1アカウント返します。
ツイートから自分の位置を知られることはありますか?
共有した情報だけです。投稿に場所が付くのは、自分で場所タグを付けたときだけで、正確なGPSが付くのは、位置情報をオンにしたXアプリのカメラを使ったときだけです。プロフィールの所在地は、自分で入力した内容です。Xは「このアカウントについて」に、あなたのIPアドレスから推定した国も表示します。これは誰でもプロフィールから開けます。
場所でツイートを検索するには、どのAPIを使えばよいですか?
Sorsa APIを使ってください。POST /search-tweets はx.comと同じ near:、within:、geocode: のクエリを受け付け、1リクエストで約20投稿を、各投稿者のプロフィールの所在地つきで返します。料金は投稿1,000件あたり$0.07からで、公式X APIの$15.00を大きく下回ります。APIキー1つで開発者アカウントは不要、全プラン毎秒20リクエストです。
無料でTwitterを場所検索する方法はありますか?
あります。x.comとXアプリでは、「近くのポスト」と位置情報の演算子は、Xアカウントがあれば無料です。コードで使うなら、Sorsa APIはどのアカウントも100回分の無料リクエストから始まります。位置情報検索で約2,000投稿を取得でき、カードは不要で、有効期限もありません。
#検証の方法
2026年11月2日に、Xヘルプセンターの検索、「近くのポスト」、投稿の位置情報に関するページ、検索演算子のリファレンス、データディクショナリ、料金、10月23日付のエクスパンション課金のお知らせを読みました。geocode: に関する2026年の報告(Xの開発者フォーラム、OSINT調査者、Reddit)は、Bellingcatの2021年のテストおよび2026年のツールキットの記述と照らし合わせています。ここで取り上げたエンドポイント、フィールド、ページサイズは、公開中のSorsa APIリファレンスに基づきます。この記事のために実際の位置情報クエリは実行していないため、上のレスポンスには仕様上のフィールドとサンプルの値を示しています。
出典
- How to use X search, X Help Center(新しいタブで開きます)
- How to add your location to a post, X Help Center(新しいタブで開きます)
- Search Recommendations, X Help Center(新しいタブで開きます)
- Search operators, X API documentation(新しいタブで開きます)
- Data dictionary, X API documentation(新しいタブで開きます)
- X API PPU expansions update, X Developer Community, Oct 23, 2026(新しいタブで開きます)
- Geofenced searches on Twitter, Bellingcat, May 19, 2021(新しいタブで開きます)
- Twitter/X location search, Bellingcat's Online Investigation Toolkit(新しいタブで開きます)
- Who Tweets with Their Location? Sloan and Morgan, PLOS ONE, 2015(新しいタブで開きます)
- POST /search-tweets, Sorsa API reference(新しいタブで開きます)