Online AIS decoder
Paste raw !AIVDM / !AIVDO sentences and read every field, from position and identity to voyage data, safety text and binary headers. All 27 AIS message types, decoded entirely in your browser. The sentences you paste are never uploaded.
Paste or drag and drop your data here
You can also drop a recording file on the box (.txt, .log, .nmea, .csv, or any text export with one sentence per line).
What it decodes
Every AIS message type assigned by ITU-R M.1371-6, with human-readable descriptions for the coded fields (navigation status, ship type, EPFD, aid-to-navigation type, DAC/FI application ids). “Not available” sentinel values (longitude 181°, heading 511, speed 102.3 kn) render as not available, never as fake numbers.
| Group | Types |
|---|---|
| Position reports | 1 · Position report (Class A); 2 · Position report (Class A, assigned); 3 · Position report (Class A, interrogated); 9 · SAR aircraft position report; 18 · Position report (Class B); 19 · Extended position report (Class B); 27 · Long-range broadcast position report |
| Static & voyage data | 5 · Static and voyage data (Class A); 24 · Static data report (Class B) |
| Base stations & aids to navigation | 4 · Base station report; 11 · UTC/date response; 21 · Aid-to-navigation report |
| Safety-related text | 12 · Addressed safety-related message; 14 · Safety-related broadcast message |
| Binary containers (header + raw payload) | 6 · Addressed binary message; 8 · Binary broadcast message; 25 · Single-slot binary message; 26 · Multi-slot binary message |
| Station traffic | 7 · Binary acknowledgement; 10 · UTC/date inquiry; 13 · Safety-related acknowledgement; 15 · Interrogation; 16 · Assignment mode command; 17 · DGNSS broadcast binary message; 20 · Data link management; 22 · Channel management; 23 · Group assignment command |
The input is tolerant the way real recordings demand: multipart messages assemble across lines, NMEA 4.10 tag blocks (\s:…,c:…*hh\) are stripped with their receive time preserved, non-standard talkers like $RAVDM (JRC VDRs) or !BSVDM (base stations) are normalized, and a wrong or missing checksum is diagnosed, got vs. expected, instead of failing silently. The full per-type handling, ship type codes and navigation statuses are published in the reference tables, rendered from the same code this decoder runs. Working with generic GPS/instrument sentences instead? Use the NMEA 0183 decoder.