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

- Enter the username. Type it into the “Username or user ID” field.
xholicai,@xholicaiand a profile link such asx.com/xholicaiall work. Capitals don’t matter. - 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.
- 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.
- 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”).
- 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.

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
12345would 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
BigIntin 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

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.
Related guides and tools
- Twitter Username Availability Checker: see if a handle is free before you rename.
- How to change your Twitter handle: what changes and what stays the same, including your ID.
- Username availability checker guide: how handle rules and release work.
- X Profile Analytics: look at how a public account’s posts perform.
- Live Twitter Follower Count: watch a public account’s follower count.
- Twitter Video Downloader: save video, GIFs and images from a public post.




