Every Ship Has a Secret Resume
Somewhere in a shipyard in Saiki, Japan, in December 2010, workers laid a keel. Four months later, a 37,000-deadweight-tonne bulk carrier was delivered. She was named Copacabana — later renamed 21 Glory — and given a string of characters that would follow her for the rest of her working life:
NS*(BCM-A, BC-XII, GRAB)(PS-DA&FA)(IWS) MNS*
This is not a serial number. It is a professional credential — a coded statement, issued by a classification society, that specifies what this ship is built to do, what she has been inspected for, and what you can trust her with. In shipping, they call it a notation string. If you are a charterer about to commit a quarter-million dollars to move 35,000 tonnes of iron ore from Brazil to Qingdao, this string of letters is the first thing you check.
Lloyd's Register started recording ship conditions in a London coffee house in 1760. The core idea hasn't changed: an independent body examines a vessel and encodes what it found. The encoding just got more complex.
Reading the notation
Take 21 Glory's string and work through it left to right. Each token is a compressed fact about the ship.
| Token | What it means |
|---|---|
NS* | Hull notation assigned by ClassNK — the asterisk means plans were approved and construction was surveyed from the start |
BCM-A | Bulk carrier strengthened for heavy cargo in all holds, and approved for alternate hold loading |
BC-XII | Complies with SOLAS Chapter XII structural requirements for bulk carriers |
GRAB | Hull reinforced for grab discharge — mechanical unloading with clamshell buckets |
PS-DA&FA | Structural strength programme: Direct Analysis and Fatigue Assessment |
IWS | Eligible for In-Water Survey — divers can inspect the hull instead of requiring dry-dock |
MNS* | Machinery notation — same full-survey standard as the hull |
That single line tells you 21 Glory can carry heavy bulk cargoes like iron ore in any hold configuration (BCM-A), can be unloaded with grabs without structural damage (GRAB), meets modern safety standards for bulk carriers (BC-XII), and has an active structural monitoring programme (PS-DA&FA). A vessel without BCM-A would be unsuitable for iron ore with alternating empty holds — a distinction that matters when a fixture is being negotiated, and matters a lot more if something goes wrong at sea.
The GRAB notation is worth lingering on, because it shows how physical these abstract codes get. Grab discharge means a crane lowers a massive clamshell bucket into the hold and scoops cargo out. Every time those jaws close, they slam into the tank top — the inner bottom of the hull. A ship rated for grab discharge has heavier scantlings in the cargo holds: thicker plate, stronger transverse frames, additional stiffening. One that isn't rated for it might survive a few grabs before the damage shows up in the next survey. Or it might not make it to the next survey. The notation exists because the alternative is finding out the hard way.
The Rosetta Stone problem
Here is where it gets genuinely irritating if you are trying to build software around this data: there is no universal notation language. Each classification society invented its own.
There are about a dozen major societies worldwide (IACS has twelve members), and they each encode the same physical capabilities using different symbols. A bulk carrier strengthened for heavy cargo is BCM-A at ClassNK, but BC-A at Bureau Veritas, CCS, and Korean Register. The notation for an unattended machinery space — meaning the engine room can run without someone physically present — is AUT-UMS at Bureau Veritas, AUT-0 at CCS, UMA at Korean Register, and M0 at ClassNK.
| Capability | ClassNK | Bureau Veritas | CCS | Korean Register |
|---|---|---|---|---|
| Bulk carrier, heavy cargo | BCM-A | BC-A | BC-A | BC-A |
| Grab discharge reinforced | GRAB | GRAB[20] | GRAB[20] | GRAB[20] |
| Enhanced survey program | ESP | ESP | ESP | 'ESP' |
| Unattended machinery space | M0 | AUT-UMS | AUT-0 | UMA |
| Common structural rules | CSR | CSR | CSR | (CSR) |
Notice the brackets, the quotation marks, the subtle differences. GRAB versus GRAB[20] — the number in brackets indicates the grab capacity in tonnes, a detail ClassNK records in separate class conditions rather than the notation string itself. Korean Register wraps ESP in single quotes. CCS puts parentheses around CSR. If you are writing software that needs to determine whether a vessel can carry heavy cargo regardless of who classed it, you are parsing six different dialects of the same language.
Same ship capability, different notation language. Every society has its own dialect.
Our first attempt at a cross-society parser took about a day to write and about three weeks to debug. The edge cases are relentless — Korean Register's single quotes broke our tokenizer, CCS notation strings occasionally contain full-width Unicode parentheses, and one BV vessel had a notation string that was 847 characters long. We ended up writing a separate parser for each society and accepting that some things just don't converge.
Classification societies predate international standardization bodies by over a century. Lloyd's Register was 170 years old before the first International Load Line Convention in 1930. By the time anyone thought about harmonizing notation systems, they were already baked into thousands of certificates, contracts, and insurance policies. IACS has aligned some things — Common Structural Rules, adopted in 2006 and harmonized into a single set in 2015, are genuinely common, which is why CSR appears nearly identically across societies. But the legacy notations persist, and nobody is volunteering to rewrite their entire register.
What we built
We kept getting asked about notation data. Someone would be screening tonnage for a grain shipment and want to filter by BC-A or equivalent. Someone else wanted to flag vessels approaching their Special Survey deadline. The data existed — scattered across six different classification society registries, each with its own format, its own update cadence, its own way of structuring the same information.
So we built collectors for each one, parsed the notation strings in their native format, and served them through a single endpoint. No normalization — if ClassNK writes GRAB and Bureau Veritas writes GRAB[20], that is what you get. We considered normalizing and decided against it: the notation string is a legal document, and paraphrasing a legal document is how you get sued.
curl "https://api.vesselapi.com/v1/vessel/9468217/classification?filter.idType=imo" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"classification": {
"identification": {
"vesselName": "21 GLORY",
"imoNumber": "9468217",
"flagName": "Singapore",
"classStatusString": "In Class"
},
"classification": {
"mainClass": "NS*",
"classNotationString": "NS*(BCM-A, BC-XII, GRAB)(PS-DA&FA)(IWS) MNS*"
},
"surveys": [
{ "survey": "Special Survey", "lastDate": "21 Jan 2026", "dueFrom": "14 Sep 2030", "dueTo": null },
{ "survey": "Intermediate Survey", "dueFrom": "14 Jun 2027", "dueTo": "14 Dec 2027" },
{ "survey": "Annual Survey", "dueFrom": "14 Jun 2026", "dueTo": "14 Dec 2026" }
],
"yard": {
"hullYardName": "SAIKI HEAVY INDUSTRIES CO., LTD.",
"keelDate": "10 Dec 2010",
"dateOfBuild": "22 Apr 2011"
},
"dimensions": {
"dwt": 37202,
"grossTon69": 22863
}
}
}
Bureau Veritas writes GRAB[20] where ClassNK writes GRAB. The number is the grab capacity in tonnes.
Response abbreviated — the full record includes owner, machinery, hull details, certificates, and 44 survey entries (crane inspections, MARPOL surveys, ballast water management, the works). The flagName here reflects ClassNK's register, which still shows Singapore; the vessel has since reflagged to Liberia.
Coverage spans six classification societies:
| Society | Vessels with notation data |
|---|---|
| Nippon Kaiji Kyokai (ClassNK) | ~8,900 |
| Det Norske Veritas (DNV) | ~8,300 |
| Bureau Veritas (BV) | ~7,500 |
| China Classification Society (CCS) | ~4,000 |
| Registro Italiano Navale (RINA) | ~2,800 |
| Korean Register (KR) | ~1,900 |
| Total | ~33,400 |
Not every vessel in a society's register carries additional notations — some older or simpler ships have only the base class symbol.
What the notation string decides
The obvious use is cargo suitability. Before fixing a vessel for an iron ore shipment, you check for BC-A (or equivalent) and GRAB. A BC-B vessel can carry heavy cargo, but only in specified holds — it cannot use alternate hold loading at maximum draught, which restricts the loading patterns available and affects both stability and structural safety. Getting this wrong is not a paperwork problem. It is a the-ship-might-break problem.
21 Glory's record shows her Special Survey was completed on 21 January 2026, with the next one due by September 2030. The Special Survey is the big one — a comprehensive inspection every five years, often requiring dry-docking, costing hundreds of thousands of dollars. A vessel six months from her Special Survey deadline is a fundamentally different risk from one that just completed it. She might face delays, detention, or loss of class if it lapses. If you are chartering tonnage, you want to know where she sits in that cycle before you sign.
Then there are the compliance signals. Notations like PSPC-WBT (Performance Standard for Protective Coatings in ballast water tanks) and IHM (Inventory of Hazardous Materials) indicate compliance with specific IMO conventions. In some ports, missing an expected notation is functionally an invitation to be boarded and detained by port state control. The absence of a notation can tell you as much as its presence.
And across a fleet, notation depth works as a rough proxy for operational quality. Vessels carrying ESP (Enhanced Survey Programme), IWS, and CMS (Continuous Machinery Survey) tend to be better maintained. That's not proof of anything — plenty of well-notated ships are run by operators who collect certificates like merit badges. But when you are screening a hundred candidates for a fixture, it's a useful filter.
Try it
The endpoint is live at /vessel/{id}/classification?filter.idType=imo. Lloyd's Register and ABS are on the roadmap.
Somewhere right now, a surveyor is climbing into a ballast tank with a flashlight and an ultrasonic thickness gauge, measuring the steel plate by plate, writing down what she finds. That record — updated, verified, encoded into a notation string — is what this endpoint returns.