One open format for Dangerous Goods Declarations.
Free and openly licensed. Create the DGD once — every system in the chain reads it, checks it and prints the same IMDG form.
Machine-readable data catches what free text hides — misdeclared and undeclared cargo — and hands your team back the hours it spends re-keying and cross-checking.
Over 270 million dangerous goods declarations validated by Hazcheck — and counting. OpenDGD opens that same format to everyone, free, no API required.
{
"unNumber": "1309",
"properShippingName": "ALUMINIUM POWDER, COATED",
"class": ["4.1"],
"packingGroup": "III",
"emergencySchedule": {
"fire": "F-G",
"spillage": "S-G"
},
"packaging": {
"numberOfPackages": 10,
"kindOfPackages": "Steel drums"
}
}
UN 1309, ALUMINIUM POWDER, COATED, Class 4.1, PG III, EmS F-G,S-G, 10 x 1A1 Steel drum.
The problem
The form is standard. The data behind it is not.
Typed in again at every handover
The same declaration gets re-entered at each step. Every re-key is another chance for an error on cargo that cannot afford one.
Descriptions that don't agree
No two systems build box 14 the same way, so one line of goods reads differently on the shipper's copy, the forwarder's and the carrier's.
See the data, not just the document
Structured DGDs expose the information behind the declaration, making it easier to validate, exchange and integrate with other systems.
Same input, same output
One consignment, three systems, one description.
UN 1090 ACETONE, as box 14 reads on the shipper's copy, the forwarder's and the carrier's.
1090 Acetone cl.3 PGII FP -17 10 drums
Free text, typed by hand. No EmS, packaging code dropped.
UN1090 ACETONE 3 / II / 10 x 1A1 / FP -17C
Different order, different separators, no EmS.
ACETONE UN 1090 CLASS 3 PGII EmS F-E S-D
Flashpoint and packaging missing entirely.
Three readings of one consignment. Someone has to reconcile them by eye, and a dropped flashpoint or EmS is how an undeclared hazard gets aboard.
What OpenDGD is
A shared data format, and one way to render it.
The data model
A JSON Schema for a complete IMDG declaration. Every field maps to a numbered box on the IMDG form.
opendgd.schema.jsonCanonical rendering
A published algorithm for building box 14, so every implementation produces the same goods description from the same data.
rendering.mdOne document out
The completed IMDG form is the end product. Template and algorithm are part of the standard, so the same declaration gives the same DOCX and PDF everywhere.
openapi.yamlHow it works
Describe it once. Check it. Get the form.
Describe the consignment
Parties, transport, container and each dangerous goods line as OpenDGD JSON, or build it in the playground.
Check conformance
Check it conforms to the standard for free, then validate against the full IMDG Code with a validator such as Hazcheck Validate.
Get the form
A completed IMDG Multimodal Dangerous Goods Form as DOCX or PDF, the same document on every implementation.
The standard, on paper.
Open and free
Open format. Competitive validation.
Openly licensed
CC BY 4.0 for the spec, Apache 2.0 for the code. Use it for anything, including commercial products.
No lock-in
The core API needs no engine and no account. Host your own or use the reference service.
Public process
Proposals and changes happen in the open, with a route to neutral governance as adoption grows.
Implementations
Anyone can build one.
OpenDGD reference
api.opendgd.orgThe open core service: schema, conformance, DOCX and PDF. No account, no engine.
Core · openYour implementation here
Built something that reads or writes OpenDGD? Open a pull request to be listed.
Hazcheck Validate
Extended tier · NCB HazcheckThe open core gives you a well-formed declaration. A full validator takes it from correctly described to demonstrably compliant — and returns a validated, QR-stamped PDF.
Search, don't type
Look up any entry by UN number; proper shipping name, hazard class and packing group fill themselves in.
Packaging confirmed
Checks that inner and outer packaging on each line is permitted for the substance under the IMDG Code, not just plausible.
Loads checked end to end
Validates the whole consignment for segregation and stowage conflicts before it sails, across every line in the unit.
Backed by NCB Hazcheck's dangerous goods experts. hazcheck.com ↗
Get involved
Help set the standard for dangerous goods declarations.
OpenDGD, an open standard from NCB Hazcheck.