本文へスキップ

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の「アカウントの所在地」表示を読み取ります。

ある場所の投稿を探す手順は次のとおりです。

  1. 「近くのポスト」をオンにします。 キーワードで検索し、検索フィルター(デスクトップでは右の列、アプリでは検索バーの横のフィルターアイコン)を開いて、「近くのポスト」を選びます。Xはお使いの端末の位置情報を使います(Xヘルプセンター(新しいタブで開きます)による)。

  2. near: に半径を付けて入力します。 "street food" near:"Mexico City" within:10km は、その場所に結び付いた投稿を求めます。2語以上の地名は引用符で囲み、within: にはkmまたはmiで半径を指定します。

  3. geocode: に座標を付けて入力します。 "power outage" geocode:30.2672,-97.7431,25km は、オースティン中心部を中心とした半径25kmの円を描きます。緯度、経度、半径の順で、スペースは入れません。

そのあと「最新」タブを開いてください。Xの検索のレコメンデーション(新しいタブで開きます)のページによると、「最新」は一致した投稿を順位づけせずに時系列で返します。一方、「トップ」は利用者の位置と関心から候補を選びます。Xのフォーラムのある開発者は、2025年に geocode: の絞り込みが「最新」では効き、「トップ」では効かないことを確認しました。

x.com/search-advanced のXの詳細検索フォームにも「場所」の欄があり、クエリに場所を追加できます。

#Xが投稿の場所とみなすもの

Xは、2つの方法で投稿を場所と結び付けます。投稿者が付ける場所タグと、投稿者のプロフィールに入力された所在地です。どちらも任意なので、位置情報検索がカバーするのは、そのどちらかを持つ会話の一部だけです。

What an X location search matches: the place tag on a post, the author's profile location for about the last 7 days, never the Account based in label, and a city name in the text only as a keyword x.com、Xアプリ、またはX検索を使うAPIでの位置検索 "power outage" near:"Austin, TX" within:25km 投稿の場所タグ 投稿ごとに投稿者が追加。付いているのは100件に1件未満 一致 投稿者のプロフィールの所在地 「Austin, TX」などの自由入力。Xは検証しない 直近約7日間のみ 「アカウントの所在地」ラベル XがIPアドレスから推定した国 使われない テキスト内の都市名 クエリにその語を含めた場合のみヒット キーワードのみ
Xが保持する4つの場所のうち、位置情報検索に使われるのは2つで、そのうち1つは約1週間だけです。

投稿が一致しなくなる原因は2つあります。1つは、プロフィールの「アカウントの所在地」の国です。これはXがIPアドレスから推定するもので、Bellingcatの調査ツールキット(新しいタブで開きます)によれば、位置情報検索には関与しません。もう1つは、本文に書かれた都市名です。キーワードとしてしか一致しないため、near:"Austin, TX" で、単に「Austin」と書かれただけの投稿は見つかりません。

7日間の窓

プロフィールの所在地が使われるのは、最近の投稿に限られます。Bellingcatのテスト(新しいタブで開きます)では、Xは直近約7〜8日間にプロフィールの所在地を使っていました。それより古い結果は場所タグつきの投稿だけだったため、最近の件数が大きく見えていました。

An X location search over the last 7 to 8 days matches place-tagged posts and posts by authors whose profile location fits; older dates match place-tagged posts only 場所タグ付きの投稿 すべての日付で一致 プロフィールの所在地が合う投稿者の投稿 古い日付では一致しない 一致 4週間前 2週間前 7~8日前 今日 古い日付で検索すると、プロフィールの所在地による一致が外れるため、返る投稿が減ります。
位置情報検索の件数を比べるのは、直近1週間の内側どうし、またはそれ以前どうしに限り、境目をまたいで比べてはいけません。

#位置情報の検索演算子と例

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:は経度が先です。

地名で検索: x.com、Xアプリ、Sorsa API
"power outage" near:"Austin, TX" within:25km
座標で検索: x.com、Xアプリ、Sorsa API
"power outage" geocode:30.2672,-97.7431,25km
POST /search-tweetsのSorsa APIリクエストボディ
{"query": "\"power outage\" geocode:30.2672,-97.7431,25km", "order": "latest"}
公式X API: 位置情報タグ付きの投稿のみ、経度が先
"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つずつテストしてください。

今年報告された内容は次のとおりです。

位置情報クエリが今日動くかを確かめるには、「最新」タブで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のログイン情報を求めないため、あなたのアカウントが危険にさらされることはありません。

  1. キーを取得します。 登録して、ダッシュボードからAPIキーをコピーします。最初の100リクエストは無料です。

  2. クエリを送ります。 位置情報クエリを 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"
    }
    
  3. 結果のページをたどります。 next_cursor が返らなくなるまで、ボディに入れて送り返します。

  4. 各投稿者の所在地を確認します。 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リファレンスに基づきます。この記事のために実際の位置情報クエリは実行していないため、上のレスポンスには仕様上のフィールドとサンプルの値を示しています。

Sorsa APIチーム 読み取り専用のX(Twitter)APIとスクレイピングツール、Sorsa APIを開発・運営しています。2022年から本番稼働し(旧TweetScout API)、累計60億リクエスト以上を処理しています。 Sorsa APIについて

変更点
  • 初回公開。