IMO Number Validator
Validate 7-digit IMO numbers (International Maritime Organization) with checksum.
The IMO number: a permanent identity for every ocean-going ship
The International Maritime Organization (IMO) is the United Nations agency in charge of shipping safety, security and pollution prevention. Founded in 1948 and headquartered in London, it administers the SOLAS Convention (Safety of Life at Sea) and other treaties that frame world maritime law. One of its most consequential decisions was the introduction of the IMO ship identification number, made mandatory for SOLAS-covered ships by IMO Resolution A.600(15) and later A.1078(28).
An IMO number is a 7-digit identifier assigned by the registry IHS Maritime (acting for the IMO) and stays with the hull for its entire life: it does not change when the ship is sold, renamed, reflagged, refitted, or even when the registered owner moves it to a different shell company. That permanence is precisely why it is the cornerstone of the global maritime tracking and sanctions regime.
Anatomy: 6 base digits + 1 check digit
An IMO number is displayed as the prefix IMO followed by 7 digits, for example IMO 9074729. The first six digits are a serial sequence; the seventh is a checksum digit. The validation algorithm is short and pleasingly obvious:
- Take the six base digits
d1 d2 d3 d4 d5 d6. - Multiply each by descending weights:
7, 6, 5, 4, 3, 2. - Sum the six products.
- The check digit is the ones place of that sum (the sum modulo 10).
Worked example on the test value 9074729: weighted sum = 9·7 + 0·6 + 7·5 + 4·4 + 7·3 + 2·2 = 63 + 0 + 35 + 16 + 21 + 4 = 139. The ones place of 139 is 9, which matches the published check digit. The number is valid.
function imoValid(n){
const d = String(n).padStart(7,'0');
if (!/^\d{7}$/.test(d)) return false;
const w = [7,6,5,4,3,2];
let s = 0;
for (let i=0;i<6;i++) s += +d[i] * w[i];
return s % 10 === +d[6];
}
Which ships need an IMO number — and which do not
The IMO number is mandatory for passenger ships of 100 GT (gross tonnage) and above and cargo ships of 300 GT and above engaged on international voyages, under SOLAS Chapter XI-1, Regulation 3. Below those thresholds the number is optional. Fishing vessels received a separate scheme: under IMO Resolution A.1078(28), fishing vessels of 100 GT or more engaged in international waters also get IMO numbers, but the millions of small artisanal fishing boats do not.
IMO, MMSI, call sign, flag: who is who
- IMO number: permanent, tied to the hull, 7 digits with checksum.
- MMSI (Maritime Mobile Service Identity): 9 digits, tied to the AIS transponder of the ship and to the flag state (first three digits = MID). Changes whenever the ship reflags.
- Call sign: alphanumeric radio identifier, also flag-state issued, also changes on reflag.
- Flag state: the country of registration (Panama, Liberia, Marshall Islands, Brazil, etc.) — changeable.
- Hull/yard number: shipyard's internal identifier; not unique across yards.
A typical AIS broadcast includes both MMSI and IMO. When the IMO is missing from AIS or mismatched, it is a strong red flag for AIS spoofing or dark-fleet behavior.
Where the IMO number is used in practice
- SOLAS compliance: every certificate and survey references the IMO number.
- Port entry and clearance: pre-arrival notifications (24h rule, ISPS) require it.
- P&I insurance: clubs underwrite by IMO number; reinsurance treaties reference it.
- Sanctions screening: OFAC SDN, EU consolidated list, UN consolidated list, OFSI all index sanctioned ships by IMO. Since the 2022 Russia sanctions, secondary-sanctions risk around Russian-linked tankers is checked almost entirely by IMO.
- Casualty/incident records: IMO's GISIS database, Equasis, Lloyd's List Intelligence — all keyed by IMO.
- Free lookups: Equasis (free, public, requires registration), VesselFinder, MarineTraffic, OpenSky-style ship trackers.
Brazilian maritime context: Marinha, ANTAQ and coastal ports
In Brazil, the Marinha do Brasil (Navy, via the Diretoria de Portos e Costas) is the flag-state authority and runs the Tribunal Marítimo. The ANTAQ (Agência Nacional de Transportes Aquaviários) regulates inland and ocean transport economics. Cabotagem — Brazilian coastal shipping — is governed by Law 14.301/2022 (BR do Mar), opening cabotage to foreign-built ships under specific conditions, while still requiring IMO numbers and SOLAS compliance for the vessels involved. Main commercial ports include Santos, Paranaguá, Itaqui, Suape, Rio Grande, Vitória and Rio de Janeiro.
Dark fleet, AIS spoofing and IMO transfer crime
Because the IMO is permanent and globally tracked, it has become the target of sophisticated evasion: transponders that broadcast a fabricated IMO, identity swaps between two real ships ("flag hopping" combined with name change), and ships that switch off AIS over sanctioned waters. Forging or transferring an IMO number is an international maritime crime, leads to port denial, P&I cover loss, and possible criminal prosecution under flag-state law.
FAQ
Does the IMO number always carry the "IMO" prefix?
In official display, yes — the format is the literal letters IMO followed by a space and 7 digits (IMO 9074729). In databases the prefix is often omitted, but on the ship's hull markings, certificates and lookup tools the prefix is standard.
Does the IMO number change when the ship is sold or reflagged?
No. The IMO number is permanent for the ship's entire life and cannot be reassigned. Only the name, the flag, the MMSI, the call sign and the registered owner change.
Do fishing vessels need an IMO number?
Only fishing vessels of 100 GT and above engaged in international waters are required to carry an IMO number under Resolution A.1078(28). Small artisanal boats are exempt.
How can I look up a ship by IMO number for free?
Equasis (equasis.org) is the most-cited free public lookup; registration is free. VesselFinder and MarineTraffic also accept IMO queries with free tiers.
What happens if a ship is scrapped?
The IMO number is retired with the ship and never reassigned to another hull. Public databases continue to display the historical record (final name, owner, scrap location and date), which is useful for forensic and insurance work.
Related Tools
CPF Validator
Validate Brazilian CPF numbers instantly using the official algorithm. Useful for testing document validation in applications. No data sent to servers.
Batch CPF Validator
Validate a list of CPFs (one per line) and see which are valid and which are not. No data sent to servers.
Batch CNPJ Validator
Validate a list of CNPJs (one per line) with a summary of valid, invalid and total. No data sent to servers.