Chemical name from formula
Type a well-known formula and get the compound's everyday English name: H2O returns Water and C6H12O6 returns Glucose. It covers classroom gases, salts, acids, bases and common organics, and refuses to guess a name it does not know. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Paste a molecular formula and this chemical name lookup returns the everyday compound name used in labs, labels, and homework. It does not invent IUPAC names for arbitrary structures: it maps a closed set of well-known formula strings — water, carbon dioxide, sodium chloride, sulfuric acid, glucose, and dozens of classroom staples — onto their common English names.
What a known-compound name lookup actually answers
A molecular formula is a compact symbol for a compound, but the name printed on a bottle, a homework key, or a safety sheet is almost never the raw symbol string. H2O is water, NaCl is sodium chloride, C6H12O6 is glucose, and CaCO3 is calcium carbonate. This chemical name from formula tool exists for that last-mile mapping: you send a formula string from the known compound set, and you get the common English name that people actually say.
It is not a general IUPAC nomenclature engine and it will not invent a name for an unpublished research molecule. The table covers classroom gases, binary salts, mineral acids and bases, simple oxides, a handful of hydrates, and everyday organics such as methane, ethanol, benzene, sucrose, and acetic acid. Unicode subscripts are folded to ASCII digits before the lookup, so a formula copied from a typeset document still matches.
Hydrate separators written with a middle dot, an asterisk, or a period between the salt and the water count collapse to a single canonical middle-dot form. If your string is not in that set after normalization, the capability refuses to guess.
Where a formula-to-name lookup helps most
Classrooms and tutoring platforms use a chemical name from formula lookup so learners can check that H2SO4 is sulfuric acid without flipping a textbook index. Exam-prep generators need a deterministic oracle that marks unknown symbols as wrong instead of silently inventing a name that a buggy grader might treat as success. Failed validation does not consume balance.
Keep requests small, pin the returned name in tests, and you get reproducible common names for homework, LMS plugins, and edge workers without standing up a nomenclature model of your own.
What you can do with it
Classroom and homework checks
Let students paste H2O, NaCl, or C6H12O6 and verify the common name against the label used in the lesson.
Exam and LMS auto-grading
Mark formula-to-name items with a deterministic oracle that rejects unknown formulas instead of inventing a name.
Lab labels and inventory fields
Turn a stored formula string into the common English name for bottle labels, purchase lists, and search indexes.
FAQ
How do I get the chemical name from a formula?
Send a known formula string in formula (for example H2O or NaCl).
Which formulas are in the known set?
Classroom gases, mineral acids and bases, common salts and oxides, selected hydrates, and everyday organics such as methane, ethanol, glucose, and sucrose. Formulas outside that closed table are rejected.
What happens if my formula is not listed?
Unknown strings are never guessed, and failed validation is not billed.
Are H2O with subscript digits and H2O treated the same?
Yes. Unicode subscript digits are converted to ASCII before lookup, and hydrate separators written as a middle dot, asterisk, or period are folded to one canonical form.
Does uppercase or lowercase matter in a formula?
Yes. Element symbols are case-sensitive, so Co is not the same as CO, and the lookup never changes the case of what you type. Write each symbol with its capital letter exactly as in your textbook.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/chem/chemical-name \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"formula":"H2O"}'const res = await fetch("https://api.kit.forhosting.com/chem/chemical-name", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"formula": "H2O"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/chem/chemical-name",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"formula": "H2O"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/chem/chemical-name", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"formula":"H2O"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"formula":"H2O"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/chem/chemical-name", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"formula": "H2O"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "chem.chemical_name",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_chars | 80 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Unicode subscripts, hydrate dots, and a few structural aliases such as CH3CH2OH for ethanol are normalized before the lookup, so a formula copied from a PDF with subscript digits still resolves to Water. If the formula is missing, empty, or not in the known set, the task fails with invalid_input instead of guessing a name.
What a known-compound name lookup actually answers
A few structural aliases sit beside the displayed key, so CH3CH2OH and C2H5OH both return Ethanol.
Input contract, normalization, and error behaviour
Element symbols stay case-sensitive: Co is not CO, and the table never case-folds a whole formula. Example: formula H2O yields name Water. Example: formula CH3CH2OH yields canonical formula C2H5OH and name Ethanol. If the normalized string is not a key in the known set the task fails with a message that formula is not in the known compound set, and that failure is not billed. POST a JSON body with one required string field named formula. The value must be a string of at most eighty characters; numbers, objects, empty strings, and missing fields fail with invalid_input naming formula. On success the body returns formula as the canonical stored key, name as the common English displayed name, formula_input as the normalized string that was looked up, and method set to known_compound_lookup. Pair the response with your own inventory or gradebook code if you need extra fields; this endpoint returns the name, not molar mass, hazard phrases, or a structure drawing.
Where a chemical-name-from-formula API earns its keep
Laboratory information systems often store a formula field from a bottle or a SDS and need the common name for labels, purchase lists, and search; calling a tiny parse API avoids pulling a cheminformatics stack for a closed classroom set. When a formula is missing from the set, extend the table in a reviewable change rather than asking the endpoint to guess.
Technical questions
What does the chemical name from formula lookup cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.