Skip to content

Salesforce ID Converter

Paste one Salesforce ID, a whole column or a SOQL query to convert 15-character IDs to 18 characters. 18-character IDs are checked too, and you can see which standard object each ID belongs to.

  • Runs in your browser
  • Nothing sent or saved
  • No login needed
  • Checks format, not records
Convert Salesforce IDs

Paste one ID per line, or text holding IDs such as a SOQL list, with the original letter case. Up to 100,000 rows.

Enable JavaScript to use the converter.

The first three characters, the key prefix, tell you the object: Account IDs start with 001 and Opportunity IDs with 006. A few objects share a prefix, so it doesn’t always pin down the object on its own.

The 15-character ID is the first 15 characters. The 18-character form adds the case suffix.

The converter names the object from a list of more than 1,000 standard objects, exported from two Winter ’27 orgs. Where a prefix is shared, the converter lists every object the prefix can mean. A custom object gets its prefix when it’s created, so the same prefix can mean different objects in different orgs: a00 is an Equipment Request object in one of those orgs and a Fundraiser object in the other. IDs for custom objects, and for any standard object missing from the list, show as Unlisted prefix.

Reports show 15-character IDs, while Data Loader, the weekly data export and the API return 18. You’ll often see them called 15-digit and 18-digit IDs, although they hold letters as well as digits. A 15-character Salesforce ID is case-sensitive: two IDs that differ only by letter case can belong to different records. Spreadsheets and many other systems treat uppercase and lowercase as equal, so a lookup or join can match the wrong record.

Salesforce's own example: two records whose 15-character IDs differ only in letter case. The case suffix keeps their 18-character IDs apart, even when case is ignored.

The 18-character form adds three characters that record which letters are uppercase, which makes the ID case-safe in those comparisons. Use it in API calls too, with the case exactly as Salesforce returned it.

Split the 15 characters into three chunks of five. In each chunk, an uppercase letter scores its position’s value, 1, 2, 4, 8 or 16 from left to right, and digits and lowercase letters score nothing. Each chunk’s total, from 0 to 31, picks one character from A to Z and then 0 to 5.

Highlighted letters are uppercase and score the number beneath them. Each chunk's total picks the next suffix character.

That’s the algorithm Salesforce publishes, and 001xx000003DHurAAG matches the result in its CASESAFEID example.

Because the suffix only records case, it can’t catch a mistyped digit or the wrong lowercase letter, and a matching suffix doesn’t prove the record exists. It’s also why the converter can restore case: when a system has put a whole 18-character ID in capitals or lowercase, the suffix still says which letters were uppercase.

Most results explain themselves. These are the ones that need a decision:

Result What to do
Already 18 characters; case suffix matches Nothing to change. The check covers letter case only.
Suffix capitalisation normalised Use the output: the suffix is back in capitals.
Case restoration available Turn on Restore letter case from suffix if you trust the suffix. A typo in it restores a different ID.
Case information does not match, unsupported case suffix, or suffix marks a digit as uppercase The ID changed after it left Salesforce. Copy it from Salesforce again.

A 15-character ID that has already lost its case still converts, but the result is a different ID. Paste 15-character IDs exactly as Salesforce shows them.

The converter keeps duplicates and blank rows, so the output lines up with the column you pasted from. Copy 18-character IDs becomes available once every non-blank row converts; until then, Show in input takes you to each problem. Copy and the report always cover the whole list, whichever page of results you’re viewing.

The summary above the results counts the IDs by object. When it starts with Mixed objects, check the column before you use it: a Contact ID in a list of Accounts converts like any other, and only the prefix gives it away.

Download CSV report gives one row per line of a column, or one row per ID found when the converter reads text, with line, item, input, output, status, input_omitted and object columns, even when rows fail. In text, item numbers the IDs on each line, and lines without an ID are left out. object holds the API name, so you can filter the report by object. Input that a spreadsheet could run as a formula is left out and flagged in input_omitted. Import the ID columns as text so the spreadsheet doesn’t reformat them.

IDs don’t always arrive in a column. You might copy them from a SOQL query, a CSV row, a debug log or a chat message. When a line holds an ID alongside quotes, commas, tabs or other IDs, the converter reads the input as text instead of one ID per line, and a note under the input says so.

Only the IDs change. Quotes, commas, keywords and line breaks come back exactly as you pasted them.

In text, the converter treats a run of 13 to 20 letters and digits as an ID when it holds at least one digit and one letter. Keywords and field names such as SELECT and AccountId, plain numbers and timestamps stay as text, while a damaged 14- or 17-character ID is still reported. So is an ID touching an unexpected character, such as an invisible one copied from a web page. Copy text with 18-character IDs returns everything you pasted, with each ID swapped for its 18-character form, so a converted SOQL query can go straight back into your editor.

If the converter guesses wrong, you can switch with Read one ID per line instead in the note. Copy as SOQL list works in both modes: it gives you each 18-character ID once, quoted and separated by commas, ready for an IN clause.

The Salesforce sources behind this page: