How to Find an X User ID (and Turn an ID Back Into a Username)

Updated October 17, 2026
Xholic's X ID Converter showing @xholicai converted to the X user ID 2000891624487026688, with the profile card and Copy ID and Copy username buttons.
On this page

Share

Every X account has two names. The one you see is the @username, which the owner can change whenever they like. The one X uses internally is a numeric user ID, a long number assigned when the account is created that never changes.

You rarely see the ID in the app, which is why “what is my X ID?” is such a common question. You need it the moment you work with the X API, keep a list of accounts in a spreadsheet, or try to find an account again after it renamed itself.

This guide shows how to find any account’s ID with Xholic’s free X ID converter, how to go the other way from an ID to a username, and what those long numbers actually contain.

User IDs vs usernames

@username (handle) User ID
Example @XholicAI 2000891624487026688
Who chooses it The account owner X, at sign-up
Can it change? Yes, any time in settings No, never
Case-sensitive? No (@xholicai and @XholicAI are the same account) Not applicable
Can it be reused? Yes, once released, someone else can claim it No
What it’s good for People finding and mentioning you Code, datasets and lists that must survive renames

The difference matters because a username is only a pointer. When @oldname becomes @newname, every link, list and database row that stored “oldname” now points at nothing, or worse, at whoever registers “oldname” next. A row that stored the ID still points at the right account. Our guide to changing your Twitter handle covers what else moves and what stays put when a handle changes.

How to find an X user ID, step by step

Annotated X ID Converter: 1 the Username or user ID field with @xholicai entered; 2 the Convert button; 3 the profile card for Xholic AI; 4 the result tiles showing X user ID 2000891624487026688 and username @XholicAI, looked up by username; 5 the Copy ID and Copy username buttons.
Converting @xholicai into its user ID. Numbers match the steps below.
  1. Enter the username. Type it into the “Username or user ID” field. xholicai, @xholicai and a profile link such as x.com/xholicai all work. Capitals don’t matter.
  2. Press Convert. The tool decides the direction for you: anything made only of digits is treated as a user ID, everything else as a username. There’s no mode to switch.
  3. Confirm the profile. Check the name, avatar and follower counts on the result card. This is the quickest way to catch a typo that happens to match a different real account.
  4. Read the ID. The left tile shows the X user ID, the right tile the current username and how it was looked up (“Looked up by username” or “Looked up by ID”).
  5. Copy it. Use Copy ID or Copy username rather than selecting the number by hand, so you don’t drop a digit.

So the answer to “what is my X ID?” takes about ten seconds: enter your own handle and copy the number. For @xholicai it’s 2000891624487026688.

How to turn an X ID into a username

Going the other way works the same. Paste the number into the same field and press Convert.

X ID Converter with the ID 2000891624487026688 entered, returning the Xholic AI profile, the username @XholicAI and the note Looked up by ID.
Pasting an ID returns the account that owns it today.

The result is the account’s current username, which is exactly what you want when an old handle in your notes no longer works. This is the “Twitter ID to username” lookup people usually need after a rename: if you saved the ID, you can always get back to the account.

Two edge cases worth knowing:

  • Handles that are all digits. Because a pure number is read as an ID, a username like 12345 would be looked up as user ID 12345. Type it with the @ (@12345) to force a username lookup.
  • Post links. If you paste a post URL such as x.com/xholicai/status/…, the tool reads the handle from the link and returns the author’s account. It doesn’t look up the post itself.

What’s inside an X ID

Snowflake IDs carry a timestamp

Post IDs, and the user IDs of newer accounts, are Snowflake IDs: 64-bit numbers X generates so that its servers never hand out the same ID twice. The first part of the number is a timestamp in milliseconds, counted from X’s own starting point, 1288834974657 (4 November 2010, 01:42:54 UTC). The rest identifies the machine that made the ID and a sequence number.

That means you can read a creation time out of an ID with one line of arithmetic: shift the ID right by 22 bits, then add 1288834974657 to get a Unix time in milliseconds.

const id = 2000891624487026688n; // @xholicai's user ID, as a BigInt
const ms = Number(id >> 22n) + 1288834974657;
new Date(ms).toISOString(); // "2025-12-16T11:31:52.703Z"

For a post, the result is when it was posted. For a user ID, it’s when the ID was issued, which is normally close to when the account was created. For the @xholicai ID the converter shows, the snippet gives 16 December 2025. Very old accounts have short IDs from before X used this format, and the formula gives nonsense for them, so only apply it to long IDs (17 to 19 digits).

The X ID Converter doesn’t decode timestamps. It shows the ID and the account, and the snippet above is there if you need the date.

Why IDs break in spreadsheets and JavaScript

X IDs are bigger than the largest whole number JavaScript can store exactly (about 9 quadrillion, or 2^53), and spreadsheets such as Excel keep only 15 digits of a number. Parse 2000891624487026688 as a normal number and you get 2000891624487026700: the last digits are rounded away and the ID now belongs to nobody.

The converter returns the ID as text for this reason, and Copy ID copies that exact text. When you store IDs yourself:

  • Keep them as strings in JSON and databases. The X API returns IDs as strings for the same reason.
  • Format the spreadsheet column as text before pasting, or the sheet may convert the ID to scientific notation and turn its last digits into zeros.
  • Use BigInt in JavaScript if you need to do arithmetic on one, as in the snippet above.

Why developers and tools need user IDs

Most of the X API identifies accounts by ID, not username. Looking up followers, a user’s posts, or who someone follows typically starts with a user ID, so the first step in many scripts is a username-to-ID lookup. If you’re building on the API, our Twitter API examples show where IDs come in, and our X analytics API alternative covers options if you only need the numbers.

Outside code, IDs are the safe way to keep any list of accounts:

  • Allowlists and blocklists keep working when someone renames.
  • Research datasets can follow one account across several handle changes.
  • CRM and outreach lists don’t silently point at a stranger when a handle is released and re-registered.
  • Checking a rename: if an ID you saved now returns a different username, the account was renamed. The ID tells you it’s still the same account.

Troubleshooting

X ID Converter showing the input xholic ai! with the error message X handles can't contain spaces. If that's a display name, enter the @handle shown under it instead, like @xholicai.
A display name with spaces isn't a username; the tool asks for the @handle instead.

These are the messages the tool shows, and what to do about each:

  • “Enter a username like @xholicai or a numeric user ID.” The field was empty when you pressed Convert.
  • “X handles can’t contain spaces.” You probably entered a display name. Enter the @handle shown under the name instead. Stray quotes, a trailing full stop and an @ inside a profile link are cleaned up for you.
  • “X handles use 1–15 letters, numbers, or underscores.” The input has a dash or another character X doesn’t allow, or it’s longer than 15 characters, so it can’t be a handle. A long number works as a user ID, even with commas in it.
  • “x.com/home is an X page, not a profile.” The link points to an X page such as Home or Explore. Open the profile and copy its link instead.
  • “This looks like a post ID from…” The number belongs to a post, not an account (post IDs also contain their date). Paste the account’s username or profile link instead.
  • “No public X account matches that username or ID.” The handle isn’t in use, the account isn’t publicly available (for example, it was suspended or deactivated), or the ID doesn’t belong to a current account. Check the spelling or the digits first.
  • “X didn’t respond in time. Try again in a moment.” X returned an error or timed out. Run it again.
  • “You’ve run a lot of checks in a short time.” You’ve hit the rate limit. The message tells you how many minutes to wait.
  • “This tool is very busy today.” The day’s shared lookup allowance is used up. Accounts Xholic already tracks still convert; others work again at the time shown.

If a lookup fails after a successful one, the previous result stays on screen under the error message. Check the “Looked up by” line to make sure you’re reading the result you expect. Profile details such as follower counts can be up to about 30 minutes old; the ID and username are what to rely on.

Frequently asked questions

What is an X user ID?

A unique number X assigns to every account when it’s created, such as 2000891624487026688 for @xholicai. Unlike the @username, it never changes and is never given to another account.

How do I find my X ID?

Enter your username in the X ID Converter and copy the number from the X user ID tile. You don’t need to log in or have a developer account.

Can I find someone’s X username from their ID?

Yes. Paste the ID into the same field and the tool shows the account that owns it now, with its current username, name and avatar. It only works for accounts that still exist and are publicly available.

Does my X ID change when I change my username?

No. Your ID stays the same through every rename, which is why code and lists should store the ID rather than the handle.

Is an X ID the same as a phone number or “X number”?

No. When people search for their “X number” they usually mean this user ID. It’s a public account identifier, not a phone number, and it doesn’t reveal any private details.

Can I tell when an account or post was created from its ID?

Usually, yes, for IDs with 17 or more digits. Long IDs are Snowflake IDs that contain a millisecond timestamp. Shift the ID right by 22 bits and add 1288834974657 to get the time in Unix milliseconds. The converter doesn’t do this for you, but the snippet in this guide does.

Why do other tools show a slightly different ID?

They likely stored the ID as a number, which changes the last digits in JavaScript (rounding) and in spreadsheets such as Excel (zeros after 15 digits). Compare the full ID from this converter, which keeps it as exact text.

Track the accounts that matter, not just their handles

Xholic AI watches X for people who match your ideal customer, saves them to your contacts and helps you reply in your own voice.

Live demo: no sign-up or login needed · takes about 2 minutes