What "Account based in" means on X
"Account based in" is the country or region X shows in a profile's About this account panel, inferred only from the account's aggregated IP addresses, never from the bio. X added it to public profiles on November 22, 2025.
Short answer: It shows where an account connects from, not its owner's nationality, city or address, and travel, a VPN or the owner's choice of a region can change it. To read it for many accounts, Sorsa API's GET /about returns the label as country, one account per request, from $1.40 per 1,000. 100 free requests get you started.
- Endpoint
GET /about- Page size
- 1 account per request
- Price
- from $1.40 per 1,000 accounts
#What "Account based in" tells you
"Account based in" answers one question: from which country does X see this account connect? X works the answer out from the IP addresses the account has used over time, so the label follows where an account is run, not where its owner was born or says they live. To read it for any public account, paste the handle into the free Twitter Account Location Finder.
The label is easy to confuse with two other location fields. X's Help Center keeps all three apart (opens in a new tab), and only one of them is both public and set by X:
| Field | Who sets it | Who sees it | What it comes from |
|---|---|---|---|
| Account based in | X | Anyone, on a public account | The account's aggregated IP addresses |
| Profile location | The owner | Anyone | Whatever the owner types, or nothing |
| Country setting | X, and the owner can correct it | Only the owner | The IP address and, if enabled, precise location; the United States when X can't tell |
Account based in
- Who sets it
- X
- Who sees it
- Anyone, on a public account
- What it comes from
- The account's aggregated IP addresses
Profile location
- Who sets it
- The owner
- Who sees it
- Anyone
- What it comes from
- Whatever the owner types, or nothing
Country setting
- Who sets it
- X, and the owner can correct it
- Who sees it
- Only the owner
- What it comes from
- The IP address and, if enabled, precise location; the United States when X can't tell
Editing the profile location or the private country setting leaves "Account based in" exactly as it was. That is why the label became a quick test for accounts that claim to be local: a bio can say Ohio, but the label shows where the connections come from.
What the label doesn't tell you matters as much. It holds no city, street, coordinates or live position, and it says nothing about citizenship. An account based in Nigeria may belong to a Nigerian, to an agency hired there or to someone who moved to Lagos ten years ago. It also says nothing about where single posts were written: for posts tagged with a place, use near: and within: from the Twitter search operators.
#How to check where an X account is based
Open the account on X and tap the date it joined: the About this account panel opens with the country or region next to "Account based in".
-
Open the profile in the X app or on x.com. On x.com you need to be signed in to open the panel.
-
Tap the "Joined" date under the bio, next to the profile location and website.
-
Read the rows. "Account based in" shows a country, such as Canada, or a region, such as Europe. "Connected via" sits a few rows below it.
The panel shows one account at a time. The free finder above reads the same row without an X account, and for a list of handles the API route in the next section returns it as data.
#Check a list of accounts with Sorsa API
For a list of accounts, use Sorsa API, a Twitter (X) API and scraper: GET /about (opens in a new tab) returns "Account based in" as country and "Connected via" as source for any public account, one account per request, from $1.40 per 1,000 accounts at up to 20 accounts a second. It needs one API key and no X developer account, and it never touches your own X login.
The official X API has no such field. Its user object carries only the typed profile location, which X's own data dictionary (opens in a new tab) says "may not indicate a valid location", at $0.010 per user read: $10.00 per 1,000 profiles that still leave you without the label.
-
Get an API key. Sign up and copy the key from the dashboard. The first 100 requests are free and need no card.
-
Call GET /about for one account. Pass exactly one of
username,user_idoruser_link.Terminal curl -G "https://api.sorsa.io/v3/about" \ -H "ApiKey: YOUR_API_KEY" \ --data-urlencode "username=tidewater_ceramics_studio"Response200 OK { "country": "Canada", "source": "US App Store", "username_change_count": 2, "last_username_change_at": "2023-06-19T14:02:11Z", "is_blue_verified": true, "premium_start_at": "2025-02-03T09:40:27Z", "affiliate_username": null } -
Run it over your list. Put one handle per line in
handles.csv. The script writes each account's label, its connection source and its username changes tobased-in.csv. A 429 means you passed 20 requests a second, so it waits and retries; a 403 means the key is wrong or out of requests.import csv import time import requests URL = "https://api.sorsa.io/v3/about" HEADERS = {"ApiKey": "YOUR_API_KEY"} def about(handle): while True: r = requests.get(URL, headers=HEADERS, params={"username": handle.lstrip("@")}) if r.status_code == 429: # over 20 requests a second time.sleep(1) continue if r.status_code == 404: # no such account return {} r.raise_for_status() # 403: wrong key or out of requests return r.json() with open("handles.csv") as src, \ open("based-in.csv", "w", newline="") as out: writer = csv.writer(out) writer.writerow(["username", "based_in", "connected_via", "username_changes"]) for row in csv.reader(src): if not row: continue handle = row[0].strip() a = about(handle) writer.writerow([handle, a.get("country", "not found"), a.get("source", ""), a.get("username_change_count", "")])
One handle is one request, so 1,000 accounts cost from $1.40 ($4.90 at the Starter rate) and take about 50 seconds at 20 requests per second; 100K accounts take about 83 minutes. If your list holds user IDs instead of handles, pass user_id, or turn handles into IDs first with the guide to the Twitter user ID from username. To put the bio location and join date next to each label, GET /info-batch (opens in a new tab) returns both for up to 100 accounts per request.
Good to know
countryreadsUnknownwhen X has too little data on an account. Keep those rows as their own group instead of guessing a country, and remember that a failed request is never charged. To count a whole audience by country instead, the Twitter location API guide samples an account's followers and shows how close the shares are.
#Every line in the About this account panel
The About this account panel holds up to seven rows, and each one shows only when X has something to put in it. All of them are public on a public account.
- Date joined: the month and year the account was created.
GET /info-batchreturns the exactcreated_at. - Account based in: the country, or a region such as South Asia when the owner chose to show one.
- Verified: whether the account has a blue check and since when;
premium_start_atholds that date. - An affiliate of: the organization that granted the account an affiliate badge, returned as
affiliate_username. - Username changes: how many times the handle changed, and "Last on" with the month of the latest change. "Last on" isn't the last time the account was online: X shows that to no one.
- Connected via: the channel the account uses to reach X, such as a country's App Store, an Android app or the web.
When X suspects a VPN or a proxy, one more line appears: "Country or region may not be accurate."
#How X decides where an account is based
X infers "Account based in" only from the account's aggregated IP addresses, its Help Center says: the country or region "is inferred only by your aggregated IP addresses." Aggregated means X looks at the addresses the account has connected from over time, so a weekend abroad doesn't flip the label at once, while a move or long trip shifts it after a while.
That one sentence rules out most of what AI answers and how-to pages list. The app store region is a different row, "Connected via". The bio location, payment details and posting times play no part in X's description, and GPS and nearby cell towers feed the private country setting, not the public label.
The launch explains much of the confusion. Nikita Bier, X's head of product, announced the experiment in October 2025, and TechCrunch reported (opens in a new tab) the panel on users' own profiles on November 21. It reached every public profile over the weekend of November 22 to 23. Early labels came from an older database process that was wrong for some accounts, Bier said, according to Social Media Today (opens in a new tab). The panel also showed the country where each account was created, which X dropped because the data was "not 100% for old accounts", Privacy Guides reported (opens in a new tab). Screenshots from that week can show a row the panel no longer has.
#What "Connected via" means
"Connected via" names the channel an account uses to reach X: a country's App Store, an Android app or the web. Its country is the App Store or Google Play region the app came from, which follows the owner's Apple or Google account. People rarely change that account, so the row can name a country the owner left years ago.
That makes the two rows answer different questions. "Account based in" says where the account connects from now. "Connected via" says where the app account behind it was set up. When they disagree, the usual reasons are ordinary:
- Based in the UK, connected via the US App Store: someone with a US Apple account who lives in Britain, or a phone bought abroad.
- Based in the US, connected via another country's App Store: an expat, a student or a new arrival who kept the app account from home.
- Connected via the web: the account is used mostly from a browser or a scheduling tool, which is common for brands and agencies.
Neither row is a more "accurate" location: for where an account is run from today, read "Account based in". X's Help Center doesn't define "Connected via" at all, so treat any stronger reading of it as a guess.
#How accurate is "Account based in"?
X itself calls the label an estimate. The note it showed at launch, quoted by NBC News (opens in a new tab), says the data "may not be accurate and can change periodically", and that recent travel or a temporary relocation can affect it. Four situations put the label in the wrong place:
- A VPN or proxy. The account may show the VPN's country. When X suspects one, the panel adds "Country or region may not be accurate", so a VPN that X notices doesn't hide a location quietly.
- Travel and moves. Three NBC News journalists' accounts showed countries they had recently visited, not where they live.
- Accounts run by someone else. A brand managed by an agency abroad can show the agency's country.
- A region or nothing. The owner can show a region instead of the country, and government accounts with a gray check show no location at all.
So read a mismatch as a reason to look closer, never as a verdict. Pick what an account's panel shows below to see what the combination usually means:
Worth a closer look
- The account connects from a different country than its bio claims. A trip, a move or an agency abroad can explain that, and so can an account that pretends to be local.
- "Connected via" names the same country as the label, so the app account and the connections agree.
Check next: the join date, the username changes and what the account posts. The label is X's estimate of where an account connects from, never proof of nationality.
Pick what the panel and the bio show; the reading updates.
The label works best as one signal among several: the join date, the username changes and what the account posts. To check whether an account behaves like a bot, the Twitter bot detection guide covers the other signals.
#Can you change or hide your "Account based in"?
No: X has no setting that hides the label or lets you type a country, and the only choice is to show a region instead of the country. To make that switch:
-
Open your About this account panel by tapping the "Joined" date on your own profile, then the settings gear. The same setting sits in Settings and privacy, Privacy and safety, About your account.
-
Choose country or region. Region shows a wider area, such as North America or Europe; country is the default.
Two things don't change the label. Editing Your account, Account information, Country changes only the private country setting, and editing the profile location changes only the bio. The label moves by itself when you connect from a new country for a while, after a move for example. Connecting through a VPN may move it too, and then adds the accuracy notice that every visitor can see. If the label is plainly wrong, X's Help Center says you can report the problem from the same panel.
#Read the label for one account or a whole list
"Account based in" is X's own estimate of where an account connects from, built only from its IP addresses: a strong hint about who runs an account, never proof of nationality. For one account, the free finder shows it. For a list, use Sorsa API: GET /about returns the label, "Connected via" and the username history for any public account, from $1.40 per 1,000 accounts at 20 a second, and the first 100 requests are free.
#FAQ
Is "Account based in" where the person lives?
Often, but not always. "Account based in" shows the country X sees an account connect from, based on its IP addresses over time, so for someone who lives and posts in one country it shows that country. It goes wrong after travel or a move, behind a VPN, and for accounts run by an agency in another country. It never shows nationality, a city or an address.
Can a VPN change your "Account based in" on X?
Yes, a VPN or proxy can move the country X shows, but X watches for them. When X suspects one, the About this account panel adds "Country or region may not be accurate", which every visitor sees. Turning a VPN on for a day rarely changes the label, because X works from the IP addresses an account has used over time.
Why does an X account show a region or no location at all?
A region, such as Europe or South Asia, means the owner chose to show a wider area instead of the country, which X allows for every account. No location usually means a government or state-affiliated account with a gray check, which X exempts, or an account X has too little data on. A region is a privacy choice, not a sign of a fake account.
Which API returns the "Account based in" country for X accounts?
Sorsa API returns it. Its GET /about endpoint gives the "Account based in" country, the "Connected via" source, the username-change count and the X Premium start date for any public account, one account per request, from $1.40 per 1,000 accounts, at 20 requests per second on every plan. One API key works without an X developer account, and the first 100 requests are free.
Does the official X API return "Account based in"?
No. The official X API's user object has a location field, but it holds only the free text the owner typed in the profile, which X's data dictionary says may not be a valid place. Reading it costs $0.010 per user, or $10.00 per 1,000 profiles, and there is no field for "Account based in" or "Connected via".
Is Instagram's "Account based in" the same as X's?
No, they are separate labels on separate platforms. Instagram has its own "Account based in" row in its About this account screen, which Instagram's Help Center (opens in a new tab) describes as the country based on the account's activity. X's label appeared in November 2025 and comes from the account's aggregated IP addresses. A country on one platform says nothing about the other.
#How we checked
On November 2, 2026 we re-read X's Help Center page on country settings, the official X API's data dictionary and pricing page, and the launch reports from TechCrunch, Engadget, Social Media Today, NBC News and Privacy Guides. The GET /about and GET /info-batch requests follow the live Sorsa API reference; the response shows a fictional account shaped on the documented fields.