ForHosting KIT · Science

Net ionic equation calculator

Silver, nitrate, sodium and chloride ions on one side and solid silver chloride with sodium and nitrate on the other reduce to Ag+(aq) + Cl-(aq) → AgCl(s). List the ions of each side and the spectators cancel. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon

A net ionic equation shows only the chemical species that actually change during a reaction in solution. Starting from the aqueous ions written on each side of a full ionic equation, this calculator cancels spectator ions that appear identically among reactants and products and returns the remaining net ionic equation as a single string. Precipitation, neutralization, and many redox-in-solution drills all reduce to that cancellation once every strong electrolyte is already split into ions. Students, tutors, and exam-prep scripts need a deterministic answer that fails loudly when a listed ion has an invalid charge format instead of silently dropping the token.

What a net ionic equation is and how spectator ions cancel

In aqueous chemistry the molecular equation writes intact compounds, the full ionic equation splits every strong electrolyte into the ions that actually exist in water, and the net ionic equation keeps only the species whose formulas or charges change. Ions that sit on both sides in equal amount are spectators: they balance charge and keep the solution electrically neutral, but they do not participate in forming a precipitate, a weak electrolyte, a gas, or a redox product. Canceling them is a multiset subtraction, not a chemical opinion.

If the left side lists Ag+, NO3-, Na+, and Cl-, and the right side lists AgCl(s), Na+, and NO3-, then Na+ and NO3- cancel one-for-one and the net ionic equation is Ag+(aq) + Cl-(aq) → AgCl(s). Coefficients matter: two chloride ions on the left cancel two chloride ions on the right, and a leftover coefficient stays on the net side. Molecular species such as AgCl(s), H2O(l), and CO2(g) are not spectators unless the same formula and state appear on both sides; they remain so the net equation stays complete.

The algorithm never invents a solid you did not list, never applies solubility rules, and never reorders atoms inside a formula. It only reads the lists you send, matches identical aqueous ions by formula and integer charge, and writes the remainder with a single arrow.

Input contract, accepted charge formats, and error behaviour

Each item is an object with a required ion string and an optional positive integer coefficient that defaults to one. You may also send a plain string in place of the object; a leading coefficient glued to the formula, such as 2Cl-, is honoured. Every aqueous ion must carry a valid charge format.

Accepted shapes include a trailing sign for magnitude one (Na+, Cl-, NH4+, NO3-, OH-), a magnitude from one through eight then a sign after a letter or bracket for simple ions (Ca2+, Al3+, Fe2+, O2-, [Fe(CN)6]4-), a caret form for polyatomic ions whose formula already ends in a digit (SO4^2-, PO4^3-, CO3^-2), a parenthetical charge (SO4(2-), Fe(3+)), and Unicode superscripts such as Na⁺ or SO₄²⁻ which are folded to ASCII before parsing. Optional (aq) on an ion is accepted and normalised.

Molecular species must carry a non-aqueous state in parentheses: (s), (l), or (g). Missing arrays, empty arrays, more than forty species on one side, coefficients outside one through fifty, and non-finite junk fail the same way and are not billed. Display writes magnitude-one charges as a trailing sign, writes Ca2+ without a caret, and writes SO4^2- with a caret so a formula that ends in a digit never collides with the charge.

Classroom precipitation checks

Let students submit the aqueous ions from AgNO3 + NaCl and verify that Na+ and NO3- cancel, leaving Ag+(aq) + Cl-(aq) → AgCl(s).

Exam and LMS auto-grading

Mark net ionic items with a deterministic oracle that rejects an invalid charge format and never invents a precipitate the student did not list.

Lab notebooks and APIs

Store the net ionic equation string beside a titration or precipitation observation without importing a full computer-algebra library.

How do I reduce a full ionic equation to the net ionic equation?

Send reactants and products as lists of ions. Identical aqueous ions on both sides cancel.

What charge formats does the calculator accept?

Use Na+, Ca2+, SO4^2-, SO4(2-), or Unicode superscripts such as Na⁺. Polyatomic ions with |charge| > 1 whose formula already ends in a digit need a caret or parentheses.

What are spectator ions?

Spectator ions appear with the same formula and charge on both sides of the full ionic equation.

Why was my ion rejected?

A listed ion must have a valid charge format, or a molecular species must carry a state such as (s), (l), or (g).

Does it predict the precipitate or apply solubility rules?

No. It only cancels ions that appear identically on both sides of the lists you give. It never invents a solid or applies solubility rules, so include any insoluble product yourself with its state, such as AgCl(s).

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.

POSThttps://api.kit.forhosting.com/chem/net-ionic-equation

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.

curl -X POST https://api.kit.forhosting.com/chem/net-ionic-equation \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reactants":[{"ion":"Ag+","coefficient":1},{"ion":"NO3-","coefficient":1},{"ion":"Na+","coefficient":1},{"ion":"Cl-","coefficient":1}],"products":[{"ion":"AgCl(s)","coefficient":1},{"ion":"Na+","coefficient":1},{"ion":"NO3-","coefficient":1}]}'
{
  "reactants": [
    {
      "ion": "Ag+",
      "coefficient": 1
    },
    {
      "ion": "NO3-",
      "coefficient": 1
    },
    {
      "ion": "Na+",
      "coefficient": 1
    },
    {
      "ion": "Cl-",
      "coefficient": 1
    }
  ],
  "products": [
    {
      "ion": "AgCl(s)",
      "coefficient": 1
    },
    {
      "ion": "Na+",
      "coefficient": 1
    },
    {
      "ion": "NO3-",
      "coefficient": 1
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "chem.net_ionic_equation",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_items40
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

What a net ionic equation is and how spectator ions cancel

When every aqueous ion cancels, there is no net reaction in solution and the calculator returns the string no net reaction rather than an empty success payload that a grader might misread.

Input contract, accepted charge formats, and error behaviour

POST a JSON body with two required arrays: reactants and products. A token with neither a charge nor such a state, a double sign such as Na++, a caret with nothing after it, a mixed Na+-, or a charged ion tagged as a solid, raises invalid_input naming the field and the row. On success the body includes net_ionic_equation, the reconstructed full_ionic_equation, spectator_ions, spectator_count, canceled_units, has_net_reaction, the remaining reactants_net and products_net display strings, method spectator_cancellation, and a short formula reminder.

Where a net ionic equation API earns its keep

Classrooms and tutoring platforms use a net ionic equation calculator so learners can check precipitation and acid-base nets without losing a spectator to a sign error. Laboratory notebooks that already dissociated the strong electrolytes can post the two ion lists and store the net string next to the observation, which is cheaper than pulling a computer-algebra system for a cancellation that is only multiset arithmetic. Failed validation does not consume balance, which keeps exploratory scripts cheap when students deliberately send a broken charge to see the contract. Exam-prep generators need a deterministic oracle that marks Na++ as invalid_input instead of quietly omitting the ion and producing a plausible but wrong net. Keep each side within the published forty-species cap, pin the returned net_ionic_equation string in tests, and you get reproducible nets for homework, LMS plugins, and edge workers without standing up a chemistry engine of your own. This landing is not a molecular-equation balancer, not a solubility-rule oracle, and not an oxidation-number worksheet; send the full ionic lists you already have and read back the canceled form.

What does the net ionic equation calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →