CINXE.COM

AIS Fundamentals | Spire Maritime Documentation

<!doctype html><html class="no-js " lang="en"><head><meta charset="utf-8"><title>AIS Fundamentals | Spire Maritime Documentation</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="preconnect" href="https://fonts.gstatic.com"><link rel="preconnect" href="https://cdn.jsdelivr.net"><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /><link rel="canonical" href="https://documentation.spire.com/ais-fundamentals/" /><meta property="og:locale" content="en_US" /><meta property="og:type" content="article" /><meta property="og:title" content="AIS Fundamentals | Spire Maritime Documentation" /><meta property="og:url" content="https://documentation.spire.com/ais-fundamentals/" /><meta property="og:site_name" content="Spire Maritime Documentation" /><meta property="article:publisher" content="https://www.facebook.com/satelliteaisdata/" /><meta property="article:modified_time" content="2022-09-22T15:52:33+00:00" /><meta property="og:image" content="https://documentation.spire.com/wp-content/uploads/2022/10/spire-maritime-docs.jpg" /><meta property="og:image:width" content="1500" /><meta property="og:image:height" content="500" /><meta property="og:image:type" content="image/jpeg" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:site" content="@aisdata" /><style media="all">img:is([sizes="auto" i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}:root{--wp--preset--aspect-ratio--square:1;--wp--preset--aspect-ratio--4-3:4/3;--wp--preset--aspect-ratio--3-4:3/4;--wp--preset--aspect-ratio--3-2:3/2;--wp--preset--aspect-ratio--2-3:2/3;--wp--preset--aspect-ratio--16-9:16/9;--wp--preset--aspect-ratio--9-16:9/16;--wp--preset--color--black:#000;--wp--preset--color--cyan-bluish-gray:#abb8c3;--wp--preset--color--white:#fff;--wp--preset--color--pale-pink:#f78da7;--wp--preset--color--vivid-red:#cf2e2e;--wp--preset--color--luminous-vivid-orange:#ff6900;--wp--preset--color--luminous-vivid-amber:#fcb900;--wp--preset--color--light-green-cyan:#7bdcb5;--wp--preset--color--vivid-green-cyan:#00d084;--wp--preset--color--pale-cyan-blue:#8ed1fc;--wp--preset--color--vivid-cyan-blue:#0693e3;--wp--preset--color--vivid-purple:#9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple:linear-gradient(135deg,rgba(6,147,227,1) 0%,#9b51e0 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan:linear-gradient(135deg,#7adcb4 0%,#00d082 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange:linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red:linear-gradient(135deg,rgba(255,105,0,1) 0%,#cf2e2e 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray:linear-gradient(135deg,#eee 0%,#a9b8c3 100%);--wp--preset--gradient--cool-to-warm-spectrum:linear-gradient(135deg,#4aeadc 0%,#9778d1 20%,#cf2aba 40%,#ee2c82 60%,#fb6962 80%,#fef84c 100%);--wp--preset--gradient--blush-light-purple:linear-gradient(135deg,#ffceec 0%,#9896f0 100%);--wp--preset--gradient--blush-bordeaux:linear-gradient(135deg,#fecda5 0%,#fe2d2d 50%,#6b003e 100%);--wp--preset--gradient--luminous-dusk:linear-gradient(135deg,#ffcb70 0%,#c751c0 50%,#4158d0 100%);--wp--preset--gradient--pale-ocean:linear-gradient(135deg,#fff5cb 0%,#b6e3d4 50%,#33a7b5 100%);--wp--preset--gradient--electric-grass:linear-gradient(135deg,#caf880 0%,#71ce7e 100%);--wp--preset--gradient--midnight:linear-gradient(135deg,#020381 0%,#2874fc 100%);--wp--preset--font-size--small:13px;--wp--preset--font-size--medium:20px;--wp--preset--font-size--large:36px;--wp--preset--font-size--x-large:42px;--wp--preset--spacing--20:.44rem;--wp--preset--spacing--30:.67rem;--wp--preset--spacing--40:1rem;--wp--preset--spacing--50:1.5rem;--wp--preset--spacing--60:2.25rem;--wp--preset--spacing--70:3.38rem;--wp--preset--spacing--80:5.06rem;--wp--preset--shadow--natural:6px 6px 9px rgba(0,0,0,.2);--wp--preset--shadow--deep:12px 12px 50px rgba(0,0,0,.4);--wp--preset--shadow--sharp:6px 6px 0px rgba(0,0,0,.2);--wp--preset--shadow--outlined:6px 6px 0px -3px rgba(255,255,255,1),6px 6px rgba(0,0,0,1);--wp--preset--shadow--crisp:6px 6px 0px rgba(0,0,0,1)}:where(.is-layout-flex){gap:.5em}:where(.is-layout-grid){gap:.5em}body .is-layout-flex{display:flex}.is-layout-flex{flex-wrap:wrap;align-items:center}.is-layout-flex>:is(*,div){margin:0}body .is-layout-grid{display:grid}.is-layout-grid>:is(*,div){margin:0}:where(.wp-block-columns.is-layout-flex){gap:2em}:where(.wp-block-columns.is-layout-grid){gap:2em}:where(.wp-block-post-template.is-layout-flex){gap:1.25em}:where(.wp-block-post-template.is-layout-grid){gap:1.25em}.has-black-color{color:var(--wp--preset--color--black) !important}.has-cyan-bluish-gray-color{color:var(--wp--preset--color--cyan-bluish-gray) !important}.has-white-color{color:var(--wp--preset--color--white) !important}.has-pale-pink-color{color:var(--wp--preset--color--pale-pink) !important}.has-vivid-red-color{color:var(--wp--preset--color--vivid-red) !important}.has-luminous-vivid-orange-color{color:var(--wp--preset--color--luminous-vivid-orange) !important}.has-luminous-vivid-amber-color{color:var(--wp--preset--color--luminous-vivid-amber) !important}.has-light-green-cyan-color{color:var(--wp--preset--color--light-green-cyan) !important}.has-vivid-green-cyan-color{color:var(--wp--preset--color--vivid-green-cyan) !important}.has-pale-cyan-blue-color{color:var(--wp--preset--color--pale-cyan-blue) !important}.has-vivid-cyan-blue-color{color:var(--wp--preset--color--vivid-cyan-blue) !important}.has-vivid-purple-color{color:var(--wp--preset--color--vivid-purple) !important}.has-black-background-color{background-color:var(--wp--preset--color--black) !important}.has-cyan-bluish-gray-background-color{background-color:var(--wp--preset--color--cyan-bluish-gray) !important}.has-white-background-color{background-color:var(--wp--preset--color--white) !important}.has-pale-pink-background-color{background-color:var(--wp--preset--color--pale-pink) !important}.has-vivid-red-background-color{background-color:var(--wp--preset--color--vivid-red) !important}.has-luminous-vivid-orange-background-color{background-color:var(--wp--preset--color--luminous-vivid-orange) !important}.has-luminous-vivid-amber-background-color{background-color:var(--wp--preset--color--luminous-vivid-amber) !important}.has-light-green-cyan-background-color{background-color:var(--wp--preset--color--light-green-cyan) !important}.has-vivid-green-cyan-background-color{background-color:var(--wp--preset--color--vivid-green-cyan) !important}.has-pale-cyan-blue-background-color{background-color:var(--wp--preset--color--pale-cyan-blue) !important}.has-vivid-cyan-blue-background-color{background-color:var(--wp--preset--color--vivid-cyan-blue) !important}.has-vivid-purple-background-color{background-color:var(--wp--preset--color--vivid-purple) !important}.has-black-border-color{border-color:var(--wp--preset--color--black) !important}.has-cyan-bluish-gray-border-color{border-color:var(--wp--preset--color--cyan-bluish-gray) !important}.has-white-border-color{border-color:var(--wp--preset--color--white) !important}.has-pale-pink-border-color{border-color:var(--wp--preset--color--pale-pink) !important}.has-vivid-red-border-color{border-color:var(--wp--preset--color--vivid-red) !important}.has-luminous-vivid-orange-border-color{border-color:var(--wp--preset--color--luminous-vivid-orange) !important}.has-luminous-vivid-amber-border-color{border-color:var(--wp--preset--color--luminous-vivid-amber) !important}.has-light-green-cyan-border-color{border-color:var(--wp--preset--color--light-green-cyan) !important}.has-vivid-green-cyan-border-color{border-color:var(--wp--preset--color--vivid-green-cyan) !important}.has-pale-cyan-blue-border-color{border-color:var(--wp--preset--color--pale-cyan-blue) !important}.has-vivid-cyan-blue-border-color{border-color:var(--wp--preset--color--vivid-cyan-blue) !important}.has-vivid-purple-border-color{border-color:var(--wp--preset--color--vivid-purple) !important}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background:var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background:var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background:var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background:var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background:var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important}.has-cool-to-warm-spectrum-gradient-background{background:var(--wp--preset--gradient--cool-to-warm-spectrum) !important}.has-blush-light-purple-gradient-background{background:var(--wp--preset--gradient--blush-light-purple) !important}.has-blush-bordeaux-gradient-background{background:var(--wp--preset--gradient--blush-bordeaux) !important}.has-luminous-dusk-gradient-background{background:var(--wp--preset--gradient--luminous-dusk) !important}.has-pale-ocean-gradient-background{background:var(--wp--preset--gradient--pale-ocean) !important}.has-electric-grass-gradient-background{background:var(--wp--preset--gradient--electric-grass) !important}.has-midnight-gradient-background{background:var(--wp--preset--gradient--midnight) !important}.has-small-font-size{font-size:var(--wp--preset--font-size--small) !important}.has-medium-font-size{font-size:var(--wp--preset--font-size--medium) !important}.has-large-font-size{font-size:var(--wp--preset--font-size--large) !important}.has-x-large-font-size{font-size:var(--wp--preset--font-size--x-large) !important}:where(.wp-block-post-template.is-layout-flex){gap:1.25em}:where(.wp-block-post-template.is-layout-grid){gap:1.25em}:where(.wp-block-columns.is-layout-flex){gap:2em}:where(.wp-block-columns.is-layout-grid){gap:2em}:root :where(.wp-block-pullquote){font-size:1.5em;line-height:1.6} /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none;max-width:100%;height:auto}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.spiregradient{background-image:-webkit-linear-gradient(0deg,#04060f,#be0000);background-image:-moz-linear-gradient(0deg,#04060f,#be0000);background-image:-ms-linear-gradient(0deg,#04060f,#be0000);background-image:-o-linear-gradient(0deg,#04060f,#be0000);background-image:linear-gradient(90deg,#04060f,#be0000)}.maritimegradient{background-image:-webkit-linear-gradient(0deg,#0f447a,#008081,#00806c) !important;background-image:-moz-linear-gradient(0deg,#0f447a,#008081,#00806c) !important;background-image:-ms-linear-gradient(0deg,#0f447a,#008081,#00806c) !important;background-image:-o-linear-gradient(0deg,#0f447a,#008081,#00806c) !important;background-image:linear-gradient(90deg,#0f447a,#008081,#00806c) !important}.aviationgradient{background-image:-webkit-linear-gradient(0deg,#80146e,#3c2680,#0f447a) !important;background-image:-moz-linear-gradient(0deg,#80146e,#3c2680,#0f447a) !important;background-image:-ms-linear-gradient(0deg,#80146e,#3c2680,#0f447a) !important;background-image:-o-linear-gradient(0deg,#80146e,#3c2680,#0f447a) !important;background-image:linear-gradient(90deg,#80146e,#3c2680,#0f447a) !important}.weathergradient{background-image:-webkit-linear-gradient(0deg,#00806c,#c7904b,#c85a3d) !important;background-image:-moz-linear-gradient(0deg,#00806c,#c7904b,#c85a3d) !important;background-image:-ms-linear-gradient(0deg,#00806c,#c7904b,#c85a3d) !important;background-image:-o-linear-gradient(0deg,#00806c,#c7904b,#c85a3d) !important;background-image:linear-gradient(90deg,#00806c,#c7904b,#c85a3d) !important}.spaceservicesgradient,.space-servicesgradient,.spacegradient,.orbitalgradient{background-image:-webkit-linear-gradient(0deg,#04060f,#485463,#2280c5) !important;background-image:-moz-linear-gradient(0deg,#04060f,#485463,#2280c5) !important;background-image:-ms-linear-gradient(0deg,#04060f,#485463,#2280c5) !important;background-image:-o-linear-gradient(0deg,#04060f,#485463,#2280c5) !important;background-image:linear-gradient(90deg,#04060f,#485463,#2280c5) !important}.federalgradient{background-image:-webkit-linear-gradient(0deg,#00806c,#04060f,#be0000) !important;background-image:-moz-linear-gradient(0deg,#00806c,#04060f,#be0000) !important;background-image:-ms-linear-gradient(0deg,#00806c,#04060f,#be0000) !important;background-image:-o-linear-gradient(0deg,#00806c,#04060f,#be0000) !important;background-image:linear-gradient(90deg,#00806c,#04060f,#be0000) !important}.earthintelligencegradient,.earth-intelligencegradient,.earthintelgradient,.earthinformationgradient,.earthinfogradient{background-image:-webkit-linear-gradient(0deg,#008081,#00806c,#2280c5) !important;background-image:-moz-linear-gradient(0deg,#008081,#00806c,#2280c5) !important;background-image:-ms-linear-gradient(0deg,#008081,#00806c,#2280c5) !important;background-image:-o-linear-gradient(0deg,#008081,#00806c,#2280c5) !important;background-image:linear-gradient(90deg,#008081,#00806c,#2280c5) !important}@font-face{font-family:"Apercu";src:url(//documentation.spire.com/wp-content/themes/docs/css/../font/apercu-mono-regular.woff2) format("woff2"),url(//documentation.spire.com/wp-content/themes/docs/css/../font/apercu-mono-regular.woff) format("woff");font-weight:400;font-display:swap}@font-face{font-family:"Apercu";src:url(//documentation.spire.com/wp-content/themes/docs/css/../font/apercu-mono-bold.woff2) format("woff2"),url(//documentation.spire.com/wp-content/themes/docs/css/../font/apercu-mono-bold.woff) format("woff");font-weight:700;font-display:swap} /*! HTML5 Boilerplate v8.0.0 | MIT License | https://html5boilerplate.com/ */ html{color:#04060f;font-size:1em;line-height:1.4;overflow-x:hidden;background-color:#fff;overscroll-behavior-y:none}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid #c6c7c8;margin:1em 0;padding:0}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}a{color:inherit;text-decoration:none}nav ul{list-style:none;padding:0;margin:0}nav ul li+li{margin-top:0}dl,dt,dd{margin:0;padding:0}blockquote{padding:0;margin-left:0}.mobileonly{display:none}@media only screen and (max-width:750px){.desktoponly{display:none}.mobileonly{display:block}}.mobilehide{display:block}.desktophide{display:none}@media only screen and (max-width:750px){.desktophide{display:block}.mobilehide{display:none}}.clearfix .col{font-style:normal;float:left;margin:0 1.3%}.clearfix .col.col1{width:5.7%}.clearfix .col.col2{width:14%}.clearfix .col.col2five{width:17.363%}.clearfix .col.col3{width:22.3%}.clearfix .col.col4{width:30.6%}.clearfix .col.col5{width:38.9%}.clearfix .col.col6{width:47.2%}.clearfix .col.col7{width:55.5%}.clearfix .col.col8{width:63.8%}.clearfix .col.col9{width:72.1%}.clearfix .col.col10{width:80.4%}.clearfix .col.col11{width:88.7%}.clearfix .col.col12{width:97%}body{padding-top:50px}.wrapper{position:relative;max-width:1440px;width:100%;margin:0 auto}@media only screen and (max-width:1000px){.wrapper{width:97%}.clearfix .col.col5,.clearfix .col.col6,.clearfix .col.col7,.clearfix .col.col8,.clearfix .col.col9,.clearfix .col.col10,.clearfix .col.col11,.clearfix .col.col12{width:97.4%;float:none;clear:left}}@media only screen and (max-width:750px){.clearfix .col.col1,.clearfix .col.col2,.clearfix .col.col2five,.clearfix .col.col3,.clearfix .col.col4{width:97.4%;float:none}.clearfix .col.empty{display:none}}body{font-family:'Exo',sans-serif,sans-serif;letter-spacing:.02em;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:800;font-family:'Exo',sans-serif;letter-spacing:.02em;margin:0}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:#be0000;text-decoration:underline}h1 .beta_label,h2 .beta_label,h3 .beta_label,h4 .beta_label,h5 .beta_label,h6 .beta_label{background:#be0000;color:#fff;border-radius:.2em;display:inline-block;font-size:.6em;padding:.3em .3em .25em;text-transform:uppercase;margin-right:.7em;vertical-align:middle;line-height:1em;float:left;position:relative;top:.5em}*+h5,*+h6{margin-top:2em}h1{font-size:40px;line-height:1.1em}h1+p{margin-top:24px}h1+img,h1+figure{margin-top:32px}h2{font-size:34px;line-height:1.1em}h3{font-size:28px;line-height:1.2em}h2+p,h3+p{margin-top:16px}h2+figure,h3+figure,h2+img,h3+img{margin-top:32px}h4{font-size:24px;line-height:1.33em}h5,h6{font-size:18px;line-height:1.5em;font-weight:700}.lead p{font-size:18px;line-height:1.5em}p{font-size:15px;line-height:26px;letter-spacing:.02em;word-wrap:break-word}p.smaller{font-size:14px;line-height:22px}p.lead{font-size:18px;line-height:1.5em}p.lead+img,p.lead+figure{margin-top:24px}p.lead+.button,p.lead+button,p.lead+input[type=submit]{margin-top:32px}p:first-child{margin-top:0}p a{text-decoration:underline;font-weight:700;color:#be0000}p a.calltoaction,p a.arrowlink{text-decoration:none}caption,figcaption{font-family:'Apercu',monospace;font-size:13px;line-height:1.5em;font-weight:700;letter-spacing:0}.pagecontent li a{text-decoration:underline}ul{padding-left:1.1em;font-size:15px}ul li+li{margin-top:.75em}ul.advantages{list-style:none;padding-left:25px;font-size:14px;margin-bottom:2.5em}ul.advantages li{position:relative}ul.advantages li:before{content:'';left:-25px;top:3px;position:absolute;border-radius:100%;width:14px;height:14px;background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/check.svg) #be0000 no-repeat center 3px;background-size:8px 8px}ul.advantages li+li{margin-top:1.5em}ol{padding-left:1.9em}ol li a{text-decoration:underline;font-weight:700;color:#be0000}ol li+li{margin-top:.75em}ol li+li ol,ol li+li ul{margin:1em 0}.postdate{font-size:13px;font-family:'Apercu',monospace;font-weight:700;display:block;margin-bottom:1em;text-align:center;color:#c6c7c8}.thepostauthor{text-align:center;color:#c6c7c8;font-weight:700}.thepostauthor img{width:50px;height:50px;border-radius:100%}pre,code{background:#f5f2f0;font-size:1em}@media only screen and (max-width:750px){h1{font-size:40px !important;line-height:1.1em}h2{font-size:32px;line-height:1.2em}h3,h4{font-size:20px;line-height:24px}}i[class^=icon]{display:inline-block;width:1em;height:1em;background-repeat:no-repeat;background-position:center center;background-size:100% 100%;text-indent:9999px;overflow:hidden;vertical-align:middle}i.icon-government{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_government.svg?v2)}i.icon-port{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_port.svg?v2)}i.icon-environment{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_environment.svg?v2)}i.icon-insurance{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_insurance.svg?v2)}i.icon-rig{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_rig.svg?v2)}i.icon-container{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_container.svg?v2)}i.icon-weather_white{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_weather_white.svg?v2)}i.icon-aviation_white{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_aviation_white.svg?v2)}i.icon-maritime_white{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_maritime_white.svg?v2)}i.icon-wind{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_wind.svg?v2)}i.icon-orbit{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_orbit.svg?v2)}i.icon-atmosphere{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_atmosphere.svg?v2)}i.icon-maritime{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_maritime.svg?v2)}i.icon-database{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_database.svg?v2)}i.icon-faq{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_faq.svg?v2)}i.icon-api_cloud{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_api_cloud.svg?v2)}i.icon-api{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_api.svg?v2)}i.icon-weather{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_weather.svg?v2)}i.icon-chat{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_chat.svg?v2)}i.icon-coverage{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_coverage.svg?v2)}i.icon-orbit{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_orbit.svg?v2)}i.icon-satellite_red{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_satellite_red.svg?v2)}i.icon-family_leave{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_family_leave.svg?v2)}i.icon-screen{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_screen.svg?v2)}i.icon-travel{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_travel.svg?v2)}i.icon-benefits{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_benefits.svg?v2)}i.icon-instagram{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_instagram.svg?v2)}i.icon-linkedin{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_linkedin.svg?v2)}i.icon-twitter{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_twitter.svg?v2)}i.icon-facebook{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_facebook.svg?v2)}i.icon-facebook{background-size:75% 75%}.calltoaction{background:#be0000;color:#fff;font-weight:700;font-size:14px;line-height:1.1em;position:relative;z-index:1;letter-spacing:.05em;padding:13px 20px;min-width:142px;display:inline-block;text-align:center;outline:none}.calltoaction:before,.calltoaction:after{z-index:-1;background:#be0000;position:absolute;left:0;top:0;width:100%;height:100%;content:''}.calltoaction:after{background:#04060f;width:0;transition:width .3s ease-in-out}.calltoaction:hover:after{width:100%}.calltoaction.inverted{background:0 0;color:#be0000;border:1px solid #be0000;padding-top:12px;padding-bottom:12px;transition:color .3s}.calltoaction.inverted:hover{color:#fff}.calltoaction.inverted:after{background:#be0000}.calltoaction.inverted:before{background:0 0}.calltoaction+.calltoaction{margin-left:1.5em}.arrowlink{color:#be0000;font-weight:700;font-size:14px;padding-right:1.6em;position:relative;display:inline-block;margin:0 2em 1em 0}.arrowlink:after,.arrowlink:before{content:'';position:absolute}.arrowlink:before{width:1em;height:1em;border-radius:100%;right:0;background:#be0000;top:50%;margin-top:-.55em}.arrowlink:after{right:.32em;width:.37em;height:.37em;top:50%;margin-top:-.22em;border-top:2px solid #fff;border-right:2px solid #fff;box-sizing:border-box;transform:rotateZ(45deg)}.arrowlink:last-child{margin-bottom:0}@media only screen and (max-width:750px){.calltoaction+.calltoaction{margin-top:1em;margin-left:0}}dl{margin:2em 0 2em;background:#f5f2f0;border-radius:10px;overflow:hidden;padding:1em}dl dt{font-weight:700;padding-left:10px}dl dt code{font-size:1em}dl dt em{font-weight:300;font-size:.85em;font-style:normal}dl dd{padding-left:10px;font-size:12px}dl dd+dt{margin-top:1em;border-top:1px solid #e2e2e2;padding-top:1em}dl dd+dd{padding-top:.5em}dl dd ul{margin-top:1em;font-size:12px}table{font-size:14px;border:1px solid #c6c7c8;border-collapse:collapse;width:100%;margin:2em auto}table th,table td{padding:.6em;border:1px solid #c6c7c8}.boxed{background:#fafafa;padding:1em;border-radius:5px;position:relative}#mobiletrigger{display:none}#relevanssi-live-search-status{display:none}#chooser{display:none}#searchpane{display:none;position:fixed;background:rgba(0,0,0,.8);left:0;top:0;width:100%;height:100%;z-index:9999999}#searchpane.active{display:block}#searchpane>div{left:50%;top:50%;position:absolute;transform:translate(-50%,-100%);max-width:500px;min-width:350px}#docmap{position:fixed;left:0;top:50px;width:300px;border-right:1px solid #e2e2e2;bottom:0;font-size:14px;color:#485463;background:#fafafa;font-weight:300}#docmap>div>ul>li:first-child a{font-size:1.25em;padding-left:0;padding-bottom:.5em;border-bottom:1px solid #e2e2e2;margin-bottom:.5em}#docmap li .beta_label{background:#485463;color:#fff;border-radius:.2em;text-transform:uppercase;font-size:13px;margin-left:.2em}#docmap li>a{padding-left:1em;position:relative;display:block;line-height:1em;padding-top:.2em;padding-bottom:.2em}#docmap li.active>ul{height:auto}#docmap li.has-sub-menu>a:before{content:'';position:absolute;left:0;top:.35em;height:.5em;width:.5em;transform:rotate(-45deg);border-bottom:1px solid #ccc;border-right:1px solid #ccc}#docmap li.has-sub-menu.current>a:before,#docmap li.has-sub-menu.active>a:before,#docmap li.has-sub-menu.forceopen>a:before{top:.15em;transform:rotate(45deg)}#docmap>div{padding:1em;position:absolute;left:0;top:0;width:100%;height:100%;box-sizing:border-box;overflow:scroll}#docmap>div>ul li.active>a{font-weight:700;color:#485463}#docmap>div>ul li.active>a.current{font-weight:800}#docmap>div>ul li.forceopen>ul{height:auto}#docmap>div>ul>li ul{padding-left:.5em;height:0;overflow:hidden}#docmap>div>ul>li ul.active{height:auto}.search section:first-child{padding:5vw 0 0}#content section{padding:5vw 0;border-bottom:1px solid #e2e2e2}#content section.titleonly{border-bottom:0;padding-bottom:0}#content section.titleonly+section{padding-top:1em}#content section ul li a{text-decoration:underline;font-weight:700;color:#be0000}.ctabox{background:#fafafa;border-radius:10px;margin:2em 0;padding:1em}.ctabox h1,.ctabox h2,.ctabox h3,.ctabox h4,.ctabox h5,.ctabox h6{font-weight:800;font-size:25px}.ctabox ul li a{text-decoration:underline;color:#be0000;font-weight:700}.codebox{border-radius:5px;overflow:hidden;font-size:13px;font-family:'Apercu',monospace;background:#f5f2f0;margin:1em 0}.codebox .title,.codebox .code{padding:.5em 1.5em}.codebox .title{background:#00806c;color:#fff;font-weight:700}.codebox .code{font-size:15px}main{min-height:calc(100vh - 176px)}main pre{padding:1em;margin:.5em 0;white-space:break-spaces;overflow:auto}main pre code{padding:0}main code[class*=language-],main pre[class*=language-]{white-space:break-spaces;border-radius:5px}.page-template-template-blog h1,.single h1{margin-bottom:.35em}.page-template-default .col4,.single #content .col4,.blog #content .col4{padding-top:2.2em;position:sticky;top:60px}.page-template-default .col4 pre[class],.single #content .col4 pre[class],.blog #content .col4 pre[class]{font-size:12px}.page-template-default .col7 ul li a,.single #content .col7 ul li a,.blog #content .col7 ul li a{text-decoration:underline;color:#be0000;font-weight:700}main{padding-left:330px}.home main{padding-left:0}.home main h1{font-size:30px}.home main h2{font-size:22px}.home main p+h2{margin-top:1.5em}.home main h3{font-size:19px}.home main .spirebadge{width:80px;height:80px;position:relative;display:block;margin:0 auto -40px auto;top:-40px}.embed-container{padding-bottom:56.25%;height:0;overflow:hidden;width:100%;position:relative}.embed-container iframe,.embed-container object,.embed-container embed,.embed-container img,.embed-container video{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.bloglist{list-style:none;padding:0;margin:1em 0 0}.bloglist li{padding:0;margin:0}.bloglist li+li{margin-top:1em;padding-top:1em;border-top:1px solid #e2e2e2}.bloglist p{margin-top:0;font-weight:700}.bloglist .post_meta{font-size:.8em}.bloglist .product_tag{margin-right:1em;float:right}.post_meta{display:block;margin-bottom:.5em;font-family:Apercu,monospace;color:#04060f}.author_meta{margin-top:1em;margin-bottom:1em}.author_meta>div{display:inline-block;background:#f2f2f2;padding:10px;border-radius:40px}.author_meta img{float:left;width:2.9em;height:2.9em;border-radius:100%;border:2px solid #e2e2e2;margin-right:1em}.author_meta .cont{float:left}.author_meta span.name{font-weight:800}.author_meta span.job_title{font-size:.8em;display:block;line-height:1em;white-space:nowrap}.product_tag{background:#be0000;font-family:Apercu,monospace;color:#fff;padding:.2em .5em .1em;display:inline-block;border-radius:3px;font-size:.8em}.product_tag+.product_tag{margin-left:.25em}.product_tag.maritime-2-0{background:#185a8b}.product_tag.vessels-api,.product_tag.messages-api,.product_tag.historical-positions-api,.product_tag.routing-api{background:#00806c}.product_tag.tcp-stream-v2,.product_tag.uniproxy{background:#0f447a}.productlist{list-style:none;padding:0;margin:0}.productlist li{padding:0;margin:0;font-size:16px;clear:left}.productlist li+li{margin-top:.5em}.productlist li img{margin-right:.5em;margin-bottom:1em;float:left;width:auto;height:3em;transform:translateY(-.75em)}.productlist.legacy li{float:left;clear:none}.productlist.legacy li+li{margin-top:0;margin-left:2em}.productlist.legacy li img{height:1.5em;transform:none}.relevanssi-live-search-results-showing{left:0 !important;top:100% !important}.relevanssi-live-search-result{border-bottom:1px solid rgba(30,30,30,.1)}.relevanssi-live-search-result ul{padding:0 .9em .9em;margin:0;display:block}.relevanssi-live-search-result ul li{font-size:.7em;display:inline-block}.relevanssi-live-search-result ul li a span{text-decoration:underline}.relevanssi-live-search-result ul li+li{margin-top:0}.relevanssi-live-search-result ul li+li a:before{content:'»';display:inline-block;margin:0 .3em}.relevanssi-live-search-result p{padding-bottom:0 !important;border-bottom:0 !important}.searchresults{list-style:none;padding:0;margin:1em 0 5vw}.searchresults p,.searchresults p:first-child{padding:0;margin:0}.searchresults>li{padding:1em 0;border-bottom:1px solid #e2e2e2}.searchresults>li+li{margin-top:0}.result_breadcrumb{margin:0;padding:0;display:block;list-style:none}.result_breadcrumb li{font-size:.7em;display:inline-block}.result_breadcrumb li a span{text-decoration:underline}.result_breadcrumb li+li{margin-top:0}.result_breadcrumb li+li a:before{content:'»';display:inline-block;margin:0 .3em}body div.code-toolbar>.toolbar{top:-.7em;right:-.7em}html .rlv-has-spinner{border-color:#be0000}html .rlv-has-spinner:after{background:#be0000}@media only screen and (max-width:1000px){.tablewrapper{overflow-x:auto}main{padding-left:0}#docmap{position:static;top:auto;left:auto;width:100%;border-right:0;border-bottom:1px solid #f2f2f2}#docmap>div{position:static;display:none}#chooser{display:block;position:fixed;bottom:0;left:0;width:100%;z-index:10;background:#fff;padding:1em;box-sizing:border-box}#chooser select{width:100%}.home .col.col4,.home .col.col3{width:97.4%;clear:left;float:none}.home main .spirebadge{margin-top:40px}.productlist.legacy li+li{float:none;clear:left;margin-top:1em;margin-left:0}header.active #mobiletrigger{filter:invert(1)}header.active #mobilemenuwrapper{height:calc(100vh - 50px)}header #mobilemenuwrapper{position:fixed;top:50px;left:0;background:#fff;width:100%;height:0;overflow:scroll}header #mobiletrigger{display:block;position:absolute;right:50px;width:50px;height:50px;background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon-menu.svg) #fff no-repeat center center/70% 70%;border-left:1px solid #f2f2f2;top:0;z-index:100;overflow:hidden;text-indent:-9999px;transition:filter .3s}header #darkmodetoggle{display:none}header #mainmenu{position:static;left:auto;top:auto;height:auto;border-top:1px solid #f2f2f2}header #mainmenu>ul{height:auto;padding-left:0}header #mainmenu>ul>li{display:block;white-space:initial;height:auto}header #mainmenu>ul>li.apis>ul>li{min-width:0;padding:0;border-top:1px solid #f2f2f2}header #mainmenu>ul>li.apis>ul>li ul li{border-top:1px solid #f2f2f2}header #mainmenu>ul>li.apis>ul>li ul li:before{left:-.3em;top:1em}header #mainmenu>ul>li.apis>ul>li:after{top:50%;right:1em;transform:translateY(-50%)}header #mainmenu>ul>li.apis>ul>li a:hover{font-weight:400}header #mainmenu>ul>li.apis>ul a{padding-left:1em;padding-bottom:1em;padding-top:1em;display:block}header #mainmenu>ul>li+li{border-top:1px solid #f2f2f2}header #mainmenu>ul>li>ul{display:block;position:relative;padding:0;box-shadow:none;top:auto;left:auto}header #mainmenu>ul>li:hover>ul{display:block}header #mainmenu>ul>li>a{display:block;height:auto;padding:1em;line-height:1.1em}header #mainmenu+nav{float:none;margin-right:0}header #mainmenu+nav ul{border-bottom:1px solid #f2f2f2}header #mainmenu+nav ul li{border-top:1px solid #f2f2f2;display:block;opacity:1;width:100%;height:auto;line-height:1.1em;padding:0}header #mainmenu+nav ul li>a{padding:1em;display:block;background:#fafafa}header #mainmenu+nav ul li.hasdm{display:none}header #mainmenu+nav ul li+li{margin-left:0;border-top:1px solid #f2f2f2}}@media only screen and (max-width:550px){header #logo{height:20px;margin-top:16px}}.hubspot_form_lazyloader.not_loaded{min-height:50px;background:url(https://insights.spire.com/hubfs/raw_assets/public/maritime_weather_tool_v2/img/loader.svg) no-repeat center center/50px 50px}form{display:block;font-size:14px}form>.field,form>.legal-consent-container{clear:both;margin-bottom:2em}form .inputs-list li{clear:left}form p{font-size:14px}form fieldset.form-columns-1,form fieldset.form-columns-2,form fieldset.form-columns-3{max-width:none}form fieldset.form-columns-1>.field,form fieldset.form-columns-2>.field,form fieldset.form-columns-3>.field,form fieldset.form-columns-1>.hs-dependent-field,form fieldset.form-columns-2>.hs-dependent-field,form fieldset.form-columns-3>.hs-dependent-field{margin-bottom:1em}form fieldset.form-columns-1 .input .hs-fieldtype-intl-phone.hs-input,form fieldset.form-columns-2 .input .hs-fieldtype-intl-phone.hs-input,form fieldset.form-columns-3 .input .hs-fieldtype-intl-phone.hs-input{width:100%}form fieldset.form-columns-3{display:table;margin-bottom:2em}form fieldset.form-columns-3 .field.hs-form-field{display:table-cell;border-right:1px solid #c6c7c8;padding:0 1em;float:none}form fieldset.form-columns-3 .field.hs-form-field:first-child{padding-left:0}form fieldset.form-columns-3 .field.hs-form-field:last-child{border-right:0;padding-right:0}form .multi-container{margin-top:1em}form label{font-weight:700}form label.hs-error-msg{color:#be0000;font-weight:400;margin-top:.5em;display:inline-block}form label .hs-form-required{color:#be0000}form select,form input[type=text],form input[type=email],form input[type=tel],form input[type=search]{box-sizing:border-box;height:40px;border-radius:0 !important;border:1px solid #c6c7c8;display:block;width:100%;margin-top:.5em}form input[type=search]{outline-color:#be0000;outline-offset:0;padding:1em}form select{background:#fafafa}form textarea{width:100%;margin-top:.5em;border:1px solid #c6c7c8;height:90px}form input[type=file]{margin-top:.5em}form fieldset.form-columns-1 .input select.hs-input,form fieldset.form-columns-1 .input input[type=text].hs-input,form fieldset.form-columns-1 .input input[type=email].hs-input,form fieldset.form-columns-1 .input input[type=tel].hs-input,form fieldset.form-columns-1 .input input[type=tel].hs-input,form fieldset.form-columns-1 .input textarea.hs-input{width:100%}form .hs-form-booleancheckbox{margin-bottom:1em}form .hs-form-booleancheckbox label,form .hs-form-radio label,form .hs-form-checkbox label{font-weight:400;cursor:pointer}form .hs-form-booleancheckbox p,form .hs-form-radio p,form .hs-form-checkbox p{display:inline;line-height:1em}form .hs-form-booleancheckbox input[type=radio],form .hs-form-radio input[type=radio],form .hs-form-checkbox input[type=radio],form .hs-form-booleancheckbox input[type=checkbox],form .hs-form-radio input[type=checkbox],form .hs-form-checkbox input[type=checkbox]{margin-right:.5em;position:relative;top:.15em}form .hs-form-booleancheckbox-display,form .hs-form-radio-display,form .hs-form-checkbox-display{display:flex;align-items:flex-start}form .legal-consent-container .hs-form-booleancheckbox-display p{line-height:1em}form .legal-consent-container .hs-form-booleancheckbox-display>span{margin-left:0;display:inline}form ul{list-style:none;margin:0;padding:0}form ul li{margin-left:0;padding-left:0}form input[type=submit],form button{border-radius:0 !important;appearance:none;background:#be0000;color:#fff;font-weight:700;font-size:14px;line-height:1.1em;position:relative;z-index:1;letter-spacing:.05em;padding:13px 20px;min-width:142px;display:inline-block;text-align:center;outline:none;margin-top:1em;border:0;cursor:pointer}form input[type=submit]:before,form button:before,form input[type=submit]:after,form button:after{z-index:-1;background:#be0000;position:absolute;left:0;top:0;width:100%;height:100%;content:''}form input[type=submit]:after,form button:after{background:#04060f;width:0;transition:width .3s ease-in-out}form input[type=submit]:hover:after,form button:hover:after{width:100%}form input[type=submit].inverted,form button.inverted{background:0 0;color:#be0000;border:1px solid #be0000;padding-top:12px;padding-bottom:12px;transition:color .3s}form input[type=submit].inverted:hover,form button.inverted:hover{color:#fff}form input[type=submit].inverted:after,form button.inverted:after{background:#be0000}form input[type=submit].inverted:before,form button.inverted:before{background:0 0}form input[type=submit],form input[type=submit].calltoaction{background:#be0000;background-size:0 100%;background-position:0 0;background-repeat:no-repeat;transition:all .3s;background-image:-webkit-linear-gradient(#56544b,#04060f) !important;background-image:-moz-linear-gradient(#56544b,#04060f) !important;background-image:-ms-linear-gradient(#56544b,#04060f) !important;background-image:-o-linear-gradient(#56544b,#04060f) !important;background-image:linear-gradient(#04060f,#04060f) !important}form input[type=submit]:hover,form input[type=submit].calltoaction:hover{background-size:100% 100%}form input[type=submit]:before,form input[type=submit].calltoaction:before,form input[type=submit]:after,form input[type=submit].calltoaction:after{display:none}form .hs_error_rollup .hs-error-msgs{margin:1em auto;color:#be0000}form .hs_recaptcha{margin:0 auto 1em}@media only screen and (max-width:750px){form fieldset.form-columns-3{display:block}form fieldset.form-columns-3>.field,form fieldset.form-columns-3>.hs-dependent-field{display:block}form fieldset.form-columns-3>.field.field.hs-form-field,form fieldset.form-columns-3>.hs-dependent-field.field.hs-form-field{display:block;padding:0;border:0}form fieldset.form-columns-3>.field.field.hs-form-field:first-child,form fieldset.form-columns-3>.hs-dependent-field.field.hs-form-field:first-child{display:block}form fieldset.form-columns-2 .field input[type=text],form fieldset.form-columns-3 .field input[type=text],form fieldset.form-columns-2 .field input[type=email],form fieldset.form-columns-3 .field input[type=email],form fieldset.form-columns-2 .field input[type=tel],form fieldset.form-columns-3 .field input[type=tel],form fieldset.form-columns-2 .field input[type=tel],form fieldset.form-columns-3 .field input[type=tel]{width:100% !important}}#darkmodetoggle{display:inline-block;border:1px solid #aeb1b4;height:20px;width:40px;border-radius:20px;margin-top:15px;overflow:hidden;position:relative}#darkmodetoggle:before{position:absolute;content:'';background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/sun.svg) #be0000 no-repeat center center/78% 78%;height:16px;width:16px;left:2px;top:2px;border-radius:18px;box-sizing:border-box;box-shadow:0 0 5px -1px #000;transition:left .3s,background-color .3s}html.darkmode{background:#04060f;color:#fff}html.darkmode #darkmodetoggle:before{left:22px;background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/moon.svg) #fff no-repeat center center/60% 60%}html.darkmode header{background:#04060f}html.darkmode #logo img{filter:invert(1) brightness(255)}html.darkmode #homepage_intro img.aligncenter{filter:invert(1)}html.darkmode #mainmenu+nav ul li img{filter:invert(1)}html.darkmode .boxed,html.darkmode dl,html.darkmode .ctabox,html.darkmode .codebox{background:rgba(255,255,255,.2)}html.darkmode .codebox pre[class*=language-]{background:0 0}html.darkmode .codebox .title{background:#fff;color:#04060f}html.darkmode footer{border-top:1px solid #fff}html.darkmode #docmap{background:rgba(255,255,255,.1);color:#fff}html.darkmode #docmap>div>ul li.active>a{color:#fff}html.darkmode pre,html.darkmode code{color:#04060f}html.darkmode #mainmenu>ul>li>ul{background:#04060f;border:1px solid #fff}html.darkmode #mainmenu li.apis>ul>li+li{border-top-color:#fff}html.darkmode #mainmenu>ul>li.current-menu-item>a:hover,html.darkmode #mainmenu>ul>li.current-menu-ancestor>a:hover,html.darkmode #mainmenu>ul>li.current-menu-parent>a:hover,html.darkmode #mainmenu>ul>li.current_page_parent>a:hover,html.darkmode #mainmenu>ul>li.current_page_ancestor>a:hover{background:#fff;color:#04060f}html.darkmode #mainmenu>ul>li:hover>a{background:#fff;color:#04060f}html.darkmode .calltoaction.inverted{background:#fff}html.darkmode pre[class*=language-]{background:rgba(255,255,255,.1)}html.darkmode pre[class*=language-] code{filter:invert(1)}html.darkmode :not(pre)>code[class*=language-]{background:rgba(0,0,0,.1);filter:invert(1)}html.darkmode form input[type=search]{background:0 0;color:#fff}html.darkmode .relevanssi-live-search-results{background:#04060f;border:1px solid #fff}html.darkmode .relevanssi-live-search-result,html.darkmode .relevanssi-live-search-result p,html.darkmode .relevanssi-live-search-result-status p{border-bottom:1px solid rgba(255,255,255,.3)}html.darkmode .post_meta{color:#fff}html.darkmode #searchpane .boxed{background:#343435}html.darkmode .home main .spirebadge{filter:invert(1) brightness(255)}body #onetrust-consent-sdk #onetrust-policy-title,body #onetrust-consent-sdk #onetrust-policy-text,body #onetrust-consent-sdk #onetrust-policy-text *:not(.onetrust-vendors-list-handler){font-weight:300}body #onetrust-consent-sdk .pc-logo-container,body #onetrust-consent-sdk .pc-footer-logo{display:none}body #onetrust-consent-sdk #onetrust-banner-sdk{background-color:#fff;border-top:1px solid #ccc}body #onetrust-consent-sdk #onetrust-banner-sdk a[href]{color:#be0000}body #onetrust-consent-sdk #onetrust-pc-btn-handler.cookie-setting-link{width:auto !important;color:#be0000}body #onetrust-consent-sdk #cookie-preferences .always-active{color:#be0000}body #onetrust-consent-sdk #onetrust-pc-sdk .privacy-notice-link,body #onetrust-consent-sdk #onetrust-pc-sdk .category-vendors-list-handler,body #onetrust-consent-sdk #onetrust-pc-sdk .category-host-list-handler,body #onetrust-consent-sdk #onetrust-pc-sdk .vendor-privacy-notice,body #onetrust-consent-sdk #onetrust-pc-sdk #hosts-list-container .host-title a,body #onetrust-consent-sdk #onetrust-pc-sdk #hosts-list-container .accordion-header .host-view-cookies,body #onetrust-consent-sdk #onetrust-pc-sdk #hosts-list-container .cookie-name-container a{color:#be0000}body #onetrust-consent-sdk #onetrust-pc-sdk h3,body #onetrust-consent-sdk #onetrust-pc-sdk h4,body #onetrust-consent-sdk #onetrust-pc-sdk h6,body #onetrust-consent-sdk #onetrust-pc-sdk p,body #onetrust-consent-sdk #onetrust-pc-sdk #pc-policy-text,body #onetrust-consent-sdk #onetrust-pc-sdk #pc-title{font-weight:300}body #onetrust-consent-sdk #onetrust-pc-sdk .switch-inner:before{background:#ffd8d8}body #onetrust-consent-sdk #onetrust-pc-sdk .switch-checkbox:checked+.switch-label{border-color:#be0000}body #onetrust-consent-sdk #onetrust-pc-sdk .switch-checkbox:checked+.switch-label .switch-nob{background-color:#be0000;border-color:#be0000}body #onetrust-consent-sdk #onetrust-banner-sdk.ot-buttons-fw:not(.ot-iab-2) #onetrust-button-group{margin-top:0}body #onetrust-consent-sdk #onetrust-accept-btn-handler,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon){width:auto !important;color:#fff;border-radius:0;font-weight:700;text-transform:uppercase;text-decoration:none;font-family:'Exo',sans-serif;z-index:1;border:3px solid #be0000;display:inline-block;padding:.6em 1.4em .5em;position:relative;line-height:1em;-webkit-appearance:none;appearance:none}body #onetrust-consent-sdk #onetrust-accept-btn-handler:after,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon):after,body #onetrust-consent-sdk #onetrust-accept-btn-handler:before,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon):before{width:100%;left:0;top:0;position:absolute;content:'';height:0;z-index:-1;background:#be0000}body #onetrust-consent-sdk #onetrust-accept-btn-handler:after,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon):after{transition:height .1s ease-out}body #onetrust-consent-sdk #onetrust-accept-btn-handler:before,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon):before{background:#be0000;height:100%}body #onetrust-consent-sdk #onetrust-accept-btn-handler:hover:after,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon):hover:after{height:100%}body #ot-sdk-cookie-policy{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body #ot-sdk-cookie-policy div,body #ot-sdk-cookie-policy p,body #ot-sdk-cookie-policy table{line-height:1.5em;font-weight:300;color:#555}body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy h6,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy li,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy p,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy span,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-description{color:#555;font-weight:300;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a{color:#be0000}body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-description,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-cookie-policy-group-desc,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-table-header,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy span{font-size:1em}body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-title,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-cookie-policy-group{color:#04060f;text-transform:uppercase;font-family:'Exo',sans-serif;font-weight:400}@media only screen and (min-width:650px){body #onetrust-banner-sdk .ot-sdk-row{padding-right:90px}}.banner{background-color:#04060f;text-align:center;color:#fff;padding:60px 0 80px;margin-bottom:0}.banner h2{margin-bottom:.5em}.banner h3{margin-bottom:1em}.banner h4{margin-bottom:1em;width:90%;margin-left:auto;margin-right:auto}.banner .icon{width:auto;height:85px;margin:0 auto;margin-bottom:35px}.banner .icon img{width:100%;height:100%;display:block;max-height:85px}.banner .tag:only-child{margin-bottom:30px}.banner.default{background-image:none !important}.banner:not(.grey) .tag:not(.inverted){border:1px solid #fff;background:0 0}.banner.white{background-color:#fff;background-image:none !important;color:#04060f}.banner.light-grey{background-color:#fafafa;background-image:none !important;color:#04060f}.banner.grey{background-color:#f2f2f2;color:#04060f;text-align:left;margin-top:110px;background-image:none !important}.banner.grey#content-block_601a7c549f437{margin-bottom:0}.banner.bleedbottom{padding-bottom:230px}.banner.bleedtop{padding-top:145px}.banner .calltoaction.inverted{border-color:#fff;color:#fff;transition:color .3s}.banner .calltoaction.inverted:hover{color:#04060f}.banner .calltoaction.inverted:after{background:#fff}.banner p:last-child{margin-bottom:0}.banner p a.calltoaction{text-decoration:none}.banner.orbitalgradient:not(.bleedbottom){padding:95px 0 105px}.banner.orbitalgradient:not(.bleedbottom) .calltoaction:not(.inverted){transition:color .3s;color:#04060f}.banner.orbitalgradient:not(.bleedbottom) .calltoaction:not(.inverted):before{background:#fff}.banner.orbitalgradient:not(.bleedbottom) .calltoaction:not(.inverted):hover{color:#fff}.banner.verbose{text-align:left;padding-bottom:40px}.banner.verbose h5{margin-bottom:2em}.banner.verbose p{font-size:14px}.banner.verbose .wrapper+.wrapper{margin-top:56px}.banner.verbose .wrapper:last-child{padding-bottom:80px}.banner.verbose .wrapper:last-child .col{position:relative}.banner.verbose .wrapper:last-child hr:last-child{position:absolute;left:0;bottom:-80px;width:97.3%;margin:0}.banner.verbose .wrapper.solo,.banner.verbose .wrapper.solo:last-child{padding-bottom:0}.banner.verbose .wrapper.solo+.wrapper,.banner.verbose .wrapper.solo:last-child+.wrapper{margin-top:0}.banner.logos{text-align:left}.banner.logos .col8+.col7 .tag{margin-top:2.5em}.banner.logos ul{list-style:none;text-align:center;margin:1em 0 0;padding:0;height:110px;display:flex;justify-content:space-between;align-items:center;width:100%}.banner.logos ul li{display:inline}.banner.logos ul li img{max-width:120px}.banner.logos ul+ul{margin-top:70px}.banner.cta{background:#485463;background-image:none !important;color:#fff;padding:88px 0 60px}.banner.cta .calltoaction{margin-top:2em}.banner.banner-bg{padding:140px 0;position:relative}.banner.banner-bg:after{content:"";position:absolute;top:0;height:100%;z-index:0;background-color:#04060f;width:100%;opacity:.5;left:0}.banner.banner-bg .wrapper{z-index:1}@media only screen and (max-width:1000px){.banner{padding:40px 0}.banner#content-block_601a7c549f437 .col.col4 h2{font-size:20px}.banner.bleedtop{padding-top:80px}.banner.bleedbottom{padding-bottom:80px}.banner.cta{padding:40px 0}.banner.logos .col.col3{width:100%}.banner.logos .col.col3 ul{justify-content:flex-start;margin-bottom:1em}.banner.logos ul{flex-wrap:wrap;height:auto}.banner.logos ul li{width:25%}.banner.logos ul li img{height:auto}.banner .col.col1{display:none}.banner .col.col1+.col.col5,.banner .col.col1+.col.col5+.col.col5{width:47.4%;float:left;clear:none}.banner.verbose .col.col5{width:47.4%;float:left}.banner.verbose .wrapper:last-child{padding-bottom:40px}.banner#content-block_60198c8b97a67.logos ul li,.banner#content-block_60197c32db02a.logos ul li,.banner#content-block_60199674eb8fe.logos ul li,.banner#content-block_602145fb2d4f0.logos ul li{width:26%}.banner#content-block_601924416cfc4.logos ul li{width:33%;justify-content:space-around}}@media only screen and (max-width:750px){.banner p{width:100% !important}.banner.grey{margin-top:40px;margin-bottom:40px}.banner.orbitalgradient:not(.bleedbottom){padding:40px 0}.banner .icon{margin-bottom:10px}.banner .col5+.col5,.banner .col4+.col4,.banner .col2five+.col2five{margin-top:2em}.banner .col.col1+.col.col5,.banner .col.col1+.col.col5+.col.col5{width:97.4%;float:none}.banner.logos .col+.col,.banner#content-block_60198c8b97a67.logos .col+.col,.banner#content-block_60197c32db02a.logos .col+.col,.banner#content-block_60199674eb8fe.logos .col+.col,.banner#content-block_602145fb2d4f0.logos .col+.col{margin-top:2em}.banner.logos .col12+.col12,.banner#content-block_60198c8b97a67.logos .col12+.col12,.banner#content-block_60197c32db02a.logos .col12+.col12,.banner#content-block_60199674eb8fe.logos .col12+.col12,.banner#content-block_602145fb2d4f0.logos .col12+.col12{margin-top:0}.banner.logos .col12+.col12 ul,.banner#content-block_60198c8b97a67.logos .col12+.col12 ul,.banner#content-block_60197c32db02a.logos .col12+.col12 ul,.banner#content-block_60199674eb8fe.logos .col12+.col12 ul,.banner#content-block_602145fb2d4f0.logos .col12+.col12 ul{margin-top:0}.banner.logos ul li,.banner#content-block_60198c8b97a67.logos ul li,.banner#content-block_60197c32db02a.logos ul li,.banner#content-block_60199674eb8fe.logos ul li,.banner#content-block_602145fb2d4f0.logos ul li{width:50%}.banner.logos ul li img,.banner#content-block_60198c8b97a67.logos ul li img,.banner#content-block_60197c32db02a.logos ul li img,.banner#content-block_60199674eb8fe.logos ul li img,.banner#content-block_602145fb2d4f0.logos ul li img{width:75%}.banner.verbose .col.col5{float:none;width:97.4%}.banner.verbose .wrapper+.wrapper{margin-top:0}.banner.verbose .wrapper+.wrapper .col{margin-top:2.25em}.banner.verbose .wrapper+.wrapper .col.col10{margin-top:0}.banner.verbose .wrapper:last-child{padding-bottom:40px}}.feedback{opacity:0;transition:opacity .3s;margin-top:1.5em;padding:1em;background:#fafafa;font-size:.85em}.feedback form>.field{margin-bottom:1em}.feedback .hs-form-booleancheckbox-display{font-size:.85em}.feedback .hs-form-field{margin-top:1em}.feedback.active{opacity:1}.feedback .hubspot_form_lazyloader{margin-top:1.5em}.feedback .hubspot_form_lazyloader .legal-consent-container{display:none}.feedback a{border-radius:1em;padding:.1em .25em 0 1.75em;font-weight:800;display:inline-block;position:relative}.feedback a:first-child{margin-left:1em}.feedback a:first-child+a{margin-left:.5em}.feedback a:before{background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/thumbsup.svg) no-repeat center center/1em 1em;width:1em;height:1em;position:absolute;content:'';left:.5em;top:.35em}.feedback a.yes:before{top:.2em}.feedback a.yes:hover{background:#00806c;color:#fff}.feedback a.yes:hover:before{filter:brightness(100)}.feedback a.no:before{top:.3em;transform:rotate(180deg);transform-origin:center center}.feedback a.no:hover{background:#be0000;color:#fff}.feedback a.no:hover:before{filter:brightness(100)}section:hover .feedback{opacity:1}.video_chapters{list-style:none;padding:0;margin:0 0 1em;border:1px solid #fafafa;border-top:0}.video_chapters li{padding:.5em}.video_chapters li+li{margin-top:0}.video_chapters li:nth-child(odd){background:#fafafa}.video_chapters li a{display:block;text-decoration:none}.video_chapters li a:hover{text-decoration:underline}.popup,.popupcontent{position:relative;background:#fff;max-width:600px;padding:56px 25px 25px;margin:2em auto}.popup h1:first-child,.popupcontent h1:first-child,.popup h2:first-child,.popupcontent h2:first-child,.popup h3:first-child,.popupcontent h3:first-child,.popup h4:first-child,.popupcontent h4:first-child,.popup h5:first-child,.popupcontent h5:first-child,.popup h6:first-child,.popupcontent h6:first-child{margin-top:0}.popup>*:last-child,.popupcontent>*:last-child{margin-bottom:0}.popup>p,.popupcontent>p{font-size:14px;line-height:1.5em}.popup *+form,.popupcontent *+form{border-top:1px solid #c6c7c8;padding-top:1.75em}body .mfp-bg{background:#04060f;opacity:.65}.leadinModal.leadinModal-v3 .leadin-button{position:relative}.mfp-wrap.hastcs .mfp-content{max-width:800px;max-height:80vh;overflow:hidden}.mfp-wrap.hastcs .mfp-content .popup{height:80vh;overflow:scroll;max-width:800px;padding-bottom:90px;padding-top:50px;box-sizing:border-box}.mfp-wrap.hastcs .mfp-content .popup h1,.mfp-wrap.hastcs .mfp-content .popup h2,.mfp-wrap.hastcs .mfp-content .popup h3,.mfp-wrap.hastcs .mfp-content .popup h4,.mfp-wrap.hastcs .mfp-content .popup h5,.mfp-wrap.hastcs .mfp-content .popup h6{font-size:1rem}.mfp-wrap.hastcs .mfp-content .title{text-align:center;background:#04060f;color:#fff;position:absolute;left:0;top:0;width:100%;padding:1em;box-sizing:border-box;box-shadow:0 0 5px 0px rgba(0,0,0,.4);z-index:2}.mfp-wrap.hastcs .mfp-content .title:after{content:''}.mfp-wrap.hastcs .mfp-content .acceptance{height:70px;position:absolute;left:0;bottom:0;width:100%;background:#fff;z-index:2;padding:1em;box-sizing:border-box;box-shadow:0 0 5px 0px rgba(0,0,0,.4);text-align:center}.mfp-wrap.hastcs .mfp-content .acceptance .calltoaction.inactive{opacity:.5;cursor:default}.mfp-wrap.hastcs .mfp-content .acceptance .calltoaction.inactive:hover:after{height:0}#fundamentalcontent{background:#f2f2f2;font-weight:500;padding:1em;font-size:.85em}#fundamentalcontent h1,#fundamentalcontent h2,#fundamentalcontent h3,#fundamentalcontent h4,#fundamentalcontent h5,#fundamentalcontent h6{font-family:'exo',sans-serif;text-transform:none}#fundamentalcontent ul{list-style:disc;padding-left:1.1em}.mfp-content .popup{background:#fff;padding:2em;border-bottom:0;max-width:600px;margin:0 auto}.mfp-content .popup>.question{text-align:center}.mfp-content .popup>.answer{display:none}.mfp-content .popup#todownload{text-align:center}.mfp-content .popup#cartaddconfirmation,.mfp-content .popup#cartupdateconfirmation{text-align:center}.mfp-content .popup#cartaddconfirmation h2,.mfp-content .popup#cartupdateconfirmation h2{margin-bottom:.25em;font-size:1.5em}.mfp-content .popup#cartaddconfirmation img,.mfp-content .popup#cartupdateconfirmation img{margin:0 auto 2em auto;width:100px;height:100px;border-radius:100%;display:block;border:3px solid #be0000}.mfp-content .popup#cartaddconfirmation p,.mfp-content .popup#cartupdateconfirmation p{font-weight:700;font-size:1.25em;color:#04060f}.mfp-content .popup h1,.mfp-content .popup h2,.mfp-content .popup h3,.mfp-content .popup h4,.mfp-content .popup h5,.mfp-content .popup h6{color:#04060f;font-size:2rem}.mfp-content .popup label,.mfp-content .popup legend{text-align:left}.mfp-content .popup label.hs-error-msg,.mfp-content .popup legend.hs-error-msg{color:#fff}.mfp-content .popup p{font-size:.85em}.mfp-content .popup .poploader{background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/loader.svg) no-repeat center center;background-size:200px 200px;height:0;overflow:hidden;width:100%;padding-bottom:30%;position:relative}.mfp-content .popup .poploader span{position:absolute;left:0;top:50%;color:#fff;text-transform:uppercase;font-size:12px;font-weight:700;text-align:center;width:100%;margin-top:-.5em;background:#04060f}.mfp-content .popup #countdown{width:6em;height:6em;margin:0 auto;position:relative;font-family:'Apercu';font-weight:700}.mfp-content .popup #countdown span,.mfp-content .popup #countdown svg{position:absolute;top:0;width:100%;height:100%;left:0;z-index:1}.mfp-content .popup #countdown span{font-size:4.4rem;line-height:6.2rem;text-align:center;z-index:2}.mfp-close{right:.7em;top:.7em}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:none !important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.single-stories .mfp-content{position:absolute;left:0;top:8%}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;box-shadow:none;touch-action:manipulation}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:hover,.mfp-close:focus{opacity:1}.mfp-close-btn-in .mfp-close{color:#333}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1}.mfp-arrow:before,.mfp-arrow:after{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}header{position:fixed;left:0;right:0;top:0;height:50px;background:#fff;z-index:11;border-bottom:1px solid #ccc;box-shadow:0 0 5px -3px #000}#homepage_intro{padding-top:3vw}#homepage_intro img{max-width:100%;height:auto;margin-bottom:.5em}#homepage_intro img.aligncenter{margin:0 auto .5em;display:block}#logo{float:left;display:block;height:25px;margin-top:12px;margin-left:15px;z-index:13;position:relative}#logo img{height:100%;width:auto;display:block}#searchtrigger{position:absolute;color:#fff;right:0;width:50px;height:50px;background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon-search.svg) #be0000 no-repeat center center/50% 50%;top:0;z-index:100;overflow:hidden;text-indent:-9999px;transition:background .3s}#searchtrigger:hover{background-color:#04060f}#mainmenu{position:fixed;left:0;top:0;height:50px;width:100%;z-index:12}#mainmenu+nav{float:right;margin-right:50px;position:relative;z-index:13;font-weight:400}#mainmenu+nav ul li{white-space:nowrap;display:inline-block;height:50px;line-height:50px;padding-left:10px;padding-right:10px;overflow:hidden;font-weight:700;opacity:.5;position:relative;transition:background-color .3s,opacity .3s}#mainmenu+nav ul li.hasdm{opacity:1;padding-left:0}#mainmenu+nav ul li.sales{opacity:1}#mainmenu+nav ul li.sales a{background:#be0000;color:#fff;padding:.25em 1em .25em .5em;border-radius:30px;box-shadow:0 0 5px -3px rgba(0,0,0,.35)}#mainmenu+nav ul li.sales a img{filter:invert(1);transform:scale(.8)}#mainmenu+nav ul li.sales a:hover{background:#04060f}#mainmenu+nav ul li:hover{opacity:1}#mainmenu+nav ul li+li{margin-left:.5em}#mainmenu+nav ul li img{width:1.5em;height:auto;position:relative;top:-.075em;margin-right:.5em}#mainmenu li.apis>ul a{display:block;padding-right:80px}#mainmenu li.apis>ul>li{position:relative;min-width:420px;padding-top:.5em;padding-bottom:.5em}#mainmenu li.apis>ul>li+li{border-top:1px solid #f2f2f2}#mainmenu li.apis>ul>li ul{padding-top:.5em;padding-left:1em}#mainmenu li.apis>ul>li ul li{position:relative}#mainmenu li.apis>ul>li ul li a:hover{font-weight:700}#mainmenu li.apis>ul>li ul li:before{content:'';position:absolute;left:-1em;top:0;width:.8em;height:.7em;box-sizing:border-box;border-left:1px dashed #c6c7c8;border-bottom:1px dashed #c6c7c8}#mainmenu li.apis>ul>li>a{position:relative;z-index:1}#mainmenu li.apis>ul>li>a:hover{font-weight:700}#mainmenu li.apis>ul>li:after{content:'';position:absolute;right:0;top:1.2em;padding:.5em;border-radius:5px;color:#fff;text-transform:uppercase;font-weight:800;font-size:.5em}#mainmenu li.apis>ul>li.graphql:after{content:'GraphQL API';background:#2280c5}#mainmenu li.apis>ul>li.rest:after{content:'REST APIs';background:#00806c}#mainmenu li.apis>ul>li.webservice:after{content:'Web Service';background:#be0000}#mainmenu li.apis>ul>li.tcp:after{content:'NMEA feed';background:#0f447a}#mainmenu>ul{height:50px;position:relative;text-align:left;padding-left:300px}#mainmenu>ul>li{display:inline-block;position:relative;white-space:nowrap;height:50px}#mainmenu>ul>li>ul{padding:10px 20px;background:#fff;box-shadow:0 0 5px -3px #000;position:absolute;top:100%;left:0;display:none}#mainmenu>ul>li:hover>ul{display:block}#mainmenu>ul>li.current-menu-item>a,#mainmenu>ul>li.current-menu-ancestor>a,#mainmenu>ul>li.current-menu-parent>a,#mainmenu>ul>li.current_page_parent>a,#mainmenu>ul>li.current_page_ancestor>a{background:#be0000;color:#fff}#mainmenu>ul>li.current-menu-item>a:hover>a,#mainmenu>ul>li.current-menu-ancestor>a:hover>a,#mainmenu>ul>li.current-menu-parent>a:hover>a,#mainmenu>ul>li.current_page_parent>a:hover>a,#mainmenu>ul>li.current_page_ancestor>a:hover>a{color:#fff}#mainmenu>ul>li.current-menu-item.page-item-2>a{background:#fff;color:#04060f}#mainmenu>ul>li>a{display:inline-block;height:50px;line-height:50px;padding-left:20px;padding-right:20px;overflow:hidden;font-weight:700;position:relative;transition:background-color .3s}#mainmenu>ul>li>a:after{position:absolute;left:0;top:0;width:30px;height:100%;content:'';background-size:60% 60%;background-position:center center;background-repeat:no-repeat}#mainmenu>ul>li#main_search,#mainmenu>ul>li#main_logout{text-indent:-999px;float:right;width:50px}#mainmenu>ul>li#main_search a,#mainmenu>ul>li#main_logout a{display:block;padding:0;width:50px}#mainmenu>ul>li#main_search+li,#mainmenu>ul>li#main_logout+li{margin-left:0}#mainmenu>ul>li#main_search a:after,#mainmenu>ul>li#main_logout a:after{width:50px;background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_search.svg);background-size:35% 35%;background-position:center center;opacity:.5}#mainmenu>ul>li#main_logout a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_logout.svg)}#mainmenu>ul>li#domain_switcher{float:right;height:30px;background:#fff;position:relative;margin-top:11px;margin-right:20px;border:1px solid #ddd;border-radius:5px}#mainmenu>ul>li#domain_switcher>span,#mainmenu>ul>li#domain_switcher>a{display:inline-block;height:auto;box-sizing:border-box;padding:.5em .25em;line-height:16px}#mainmenu>ul>li#domain_switcher>span{float:left;background:#fafafa;border-right:1px solid #ddd;width:30px;border-radius:5px 0 0 5px;line-height:14px;font-weight:800;color:#ccc}#mainmenu>ul>li#domain_switcher>a{float:right;width:125px;text-align:left;padding-left:10px;border-radius:0 5px 5px 0;display:block;position:relative}#mainmenu>ul>li#domain_switcher>a:after{height:28px;width:15px;background:#fafafa;border-left:1px solid #ddd;right:0;top:0;content:'';position:absolute;left:auto;border-radius:0 5px 5px 0}#mainmenu>ul>li#domain_switcher>a>i{position:relative;top:-.15em}#mainmenu>ul>li#domain_switcher>a:hover{color:#04060f}#mainmenu>ul>li#domain_switcher:hover>a{color:#04060f}#mainmenu>ul>li#domain_switcher:hover ul{display:block}#mainmenu>ul>li#domain_switcher ul{display:none;position:absolute;left:29px;top:calc(100% - 2px);padding-left:10px;width:111px;text-align:left;background:#fff;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;padding-top:.35em;padding-bottom:.35em}#mainmenu>ul>li#domain_switcher ul li{padding:.25em 0}#mainmenu>ul>li#domain_switcher ul li a{color:#fff}#mainmenu>ul>li#domain_switcher ul li a.tag{display:block;box-sizing:border-box;width:90px}#mainmenu>ul>li#domain_switcher ul li+li{margin-top:.25em}#mainmenu>ul>li.main_dashboard a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_dashboard.svg);background-size:50% 50%}#mainmenu>ul>li.main_customers a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_company.svg)}#mainmenu>ul>li.main_add_customer a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_company_add.svg)}#mainmenu>ul>li.main_users a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_user.svg);background-position:center 45%;background-size:50% 50%}#mainmenu>ul>li.main_add_user a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_account.svg)}#mainmenu>ul>li.main_tools a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_tools.svg);background-position:center 45%;background-size:50% 50%}#mainmenu>ul>li.main_create_token a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_new_token.svg);background-size:50% 50%}#mainmenu>ul>li.main_tokens a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_token.svg)}#extendedtoggle{position:absolute;left:50%;margin-left:-25px;width:50px;height:50px;bottom:0}#extendedtoggle:after{top:0;left:0;width:100%;height:100%;position:absolute;content:'';background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_arrow_left.svg) no-repeat center top;background-size:20px 20px;opacity:.3}#extendedtoggle span{color:rgba(255,255,255,.3);font-size:14px;position:absolute;left:0;text-align:center;width:100%;top:23px;font-weight:700;text-transform:uppercase}footer{background:#04060f;color:#fff;padding-top:80px;padding-bottom:155px;font-weight:700;position:relative;z-index:1}footer.simple{padding:0}footer.simple #postfooterlegal .col.col12{border-top:0;padding-bottom:30px;margin-top:0}footer img{width:70%;height:auto}footer #postfooterlegal .col.col12{border-top:1px solid #fff;padding-top:30px;margin-top:20px}footer #postfooterlegal .col.col12 a{transition:color .3s}footer #postfooterlegal .col.col12 a:hover{color:rgba(255,255,255,.7)}footer #postfooterlegal .col.col12>a{margin-right:1.5em}footer #postfooterlegal .col.col12 #legalmenu{padding-top:1em}footer #postfooterlegal .col.col12 #legalmenu li{display:inline-block;padding:0 1em;margin-bottom:.5em}footer #postfooterlegal .col.col12 #legalmenu li+li{border-left:1px solid #fff}footer #postfooterlegal .col.col12 #legalmenu li:first-child{padding-left:0}footer #postfooterlegal .col.col12 #socialicons{float:right;font-size:1.3em}footer #postfooterlegal .col.col12 #socialicons li{float:left;margin-left:1.2em}@media only screen and (max-width:1000px){footer{padding-top:50px;padding-bottom:120px}footer img{width:113px;height:33px;margin-bottom:35px}footer #postfooterlegal .col.col12>a{margin-bottom:1em}footer #postfooterlegal .col.col12 #legalmenu li:first-child{padding-left:0}footer #footermenu{grid-template-columns:31.5% 31.5% 31.5%}footer #footermenu>li{height:6em}footer #footermenu>li:nth-child(1){grid-area:1/1/8/1}footer #footermenu>li:nth-child(2){grid-area:4/1/4/1;height:22em}footer #footermenu>li:nth-child(3){grid-area:1/2/1/2}footer #footermenu>li:nth-child(4){grid-area:2/2/2/2}footer #footermenu>li:nth-child(5){grid-area:3/2/3/2}footer #footermenu>li:nth-child(6){grid-area:1/3/1/3}footer #footermenu>li:nth-child(7){grid-area:2/3/2/3;margin-top:-2em}footer #footermenu>li:nth-child(8){grid-area:3/3/3/3;margin-top:-4em}footer #footermenu>li:nth-child(6),footer #footermenu>li:nth-child(7),footer #footermenu>li:nth-child(8){height:4em;padding-top:0}}@media only screen and (max-width:750px){footer{padding-bottom:80px}footer.simple{padding-bottom:80px}footer #footermenu{grid-template-columns:48.75% 48.75%}footer #footermenu>li{height:auto}footer #footermenu>li:nth-child(1){grid-area:1/1/8/1}footer #footermenu>li:nth-child(2){grid-area:7/1/7/1;margin-top:-21em;height:auto}footer #footermenu>li:nth-child(3){grid-area:1/2/1/2}footer #footermenu>li:nth-child(4){grid-area:2/2/2/2}footer #footermenu>li:nth-child(5){grid-area:3/2/3/2}footer #footermenu>li:nth-child(6){grid-area:4/2/4/2}footer #footermenu>li:nth-child(7){grid-area:5/2/5/2;margin-top:0}footer #footermenu>li:nth-child(8){grid-area:6/2/6/2;margin-top:0}footer #footermenu>li:nth-child(9){grid-area:7/2/7/2}footer #footermenu>li:nth-child(7),footer #footermenu>li:nth-child(8),footer #footermenu>li:nth-child(9){height:auto;padding-top:0}footer #postfooterlegal .col.col12 #legalmenu li{padding:0;display:block}footer #postfooterlegal .col.col12 #legalmenu li+li{margin-top:.5em;border-left:0}footer.simple #postfooterlegal .col.col12{margin-top:0}}img.alignright{float:right;margin:0 0 1em 1em}img.alignleft{float:left;margin:0 1em 1em 0}img.aligncenter{display:block;margin-left:auto;margin-right:auto}.alignright{float:right}.alignleft{float:left}.aligncenter{display:block;margin-left:auto;margin-right:auto}.hidden,[hidden]{display:none !important}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sr-only.focusable:active,.sr-only.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;white-space:inherit;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}@media print{*,*:before,*:after{background:#fff !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#454f59}.token.punctuation{color:#4f4f4f}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#344d00}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#00567a}.token.class-name,.token.function{color:#971c34}.token.important,.token.regex,.token.variable{color:#704900}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:10;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:rgba(224,224,224,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none}.relevanssi-live-search-results{box-sizing:border-box;-moz-box-sizing:border-box;background:#fff;-webkit-box-shadow:0 0 2px 0 rgba(30,30,30,.4);box-shadow:0 0 2px 0 rgba(30,30,30,.4);border-radius:3px;width:315px;min-height:175px;max-height:300px}.relevanssi-live-search-result p,.relevanssi-live-search-result-status p{font-size:.9em;padding:1em;margin:0;border-bottom:1px solid rgba(30,30,30,.1)}.relevanssi-live-search-result-status p{font-size:.8em;padding:0 1em}.relevanssi-live-search-result--focused{background:#ddd}.relevanssi-live-search-result--focused a{color:#000}.relevanssi-live-search-result:last-of-type p{border-bottom:0}.relevanssi-live-search-result a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.relevanssi-live-search-instructions{border:0 !important;clip:rect(1px,1px,1px,1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.rlv-has-spinner{width:56px;height:56px;border:8px solid #0052ec;border-right-color:transparent;border-radius:50%;position:relative;animation:loader-rotate 1s linear infinite;margin:1em auto}.rlv-has-spinner:after{content:"";width:8px;height:8px;background:#0052ec;border-radius:50%;position:absolute;top:-1px;left:33px}@keyframes loader-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.relevanssi-live-search-results{opacity:0;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out;height:0;overflow:hidden;z-index:9999995;position:absolute;display:none}.relevanssi-live-search-results-showing{display:block;opacity:1;height:auto;overflow:auto}.relevanssi-live-search-no-results,.relevanssi-live-search-didyoumean{padding:0 1em}</style><script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"TechArticle","@id":"https://documentation.spire.com/ais-fundamentals/#article","isPartOf":{"@id":"https://documentation.spire.com/ais-fundamentals/"},"author":{"name":"Simão Oliveira","@id":"https://documentation.spire.com/#/schema/person/4df42cb1e6de22f486e7c397cbbb7878"},"headline":"AIS Fundamentals","datePublished":"2022-09-09T08:32:11+00:00","dateModified":"2022-09-22T15:52:33+00:00","mainEntityOfPage":{"@id":"https://documentation.spire.com/ais-fundamentals/"},"wordCount":2,"publisher":{"@id":"https://documentation.spire.com/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https://documentation.spire.com/ais-fundamentals/","url":"https://documentation.spire.com/ais-fundamentals/","name":"AIS Fundamentals | Spire Maritime Documentation","isPartOf":{"@id":"https://documentation.spire.com/#website"},"datePublished":"2022-09-09T08:32:11+00:00","dateModified":"2022-09-22T15:52:33+00:00","breadcrumb":{"@id":"https://documentation.spire.com/ais-fundamentals/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://documentation.spire.com/ais-fundamentals/"]}]},{"@type":"BreadcrumbList","@id":"https://documentation.spire.com/ais-fundamentals/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://documentation.spire.com/"},{"@type":"ListItem","position":2,"name":"AIS Fundamentals"}]},{"@type":"WebSite","@id":"https://documentation.spire.com/#website","url":"https://documentation.spire.com/","name":"Spire Maritime Documentation","description":"Get started with Spire Maritime APIs and Web Services","publisher":{"@id":"https://documentation.spire.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://documentation.spire.com/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://documentation.spire.com/#organization","name":"Spire Maritime","url":"https://documentation.spire.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://documentation.spire.com/#/schema/logo/image/","url":"https://documentation.spire.com/wp-content/uploads/2022/10/maritime_icon.png","contentUrl":"https://documentation.spire.com/wp-content/uploads/2022/10/maritime_icon.png","width":512,"height":512,"caption":"Spire Maritime"},"image":{"@id":"https://documentation.spire.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/satelliteaisdata/","https://twitter.com/aisdata","https://www.linkedin.com/showcase/spire-maritime/"]},{"@type":"Person","@id":"https://documentation.spire.com/#/schema/person/4df42cb1e6de22f486e7c397cbbb7878","name":"Simão Oliveira","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://documentation.spire.com/#/schema/person/image/","url":"https://documentation.spire.com/wp-content/uploads/2022/10/T01T6C4676G-U01TB0PM6S2-ba6089b50aab-512-150x150.jpg","contentUrl":"https://documentation.spire.com/wp-content/uploads/2022/10/T01T6C4676G-U01TB0PM6S2-ba6089b50aab-512-150x150.jpg","caption":"Simão Oliveira"}}]}</script> <link rel='dns-prefetch' href='//spire.com' /><link rel='dns-prefetch' href='//cdn.jsdelivr.net' /><link rel='dns-prefetch' href='//cdnjs.cloudflare.com' /><link rel='dns-prefetch' href='//fonts.googleapis.com' /><link rel='preload' as='style' crossorigin='anonymous' id='exo-font-preload-css' href='https://fonts.googleapis.com/css2?family=Exo%3Awght%40300%3B400%3B500%3B700%3B800&#038;display=swap' type='text/css' media='' /><link rel='preload' as='font' type='font/woff2' crossorigin='anonymous' id='apercu-font-preload-css' href='https://documentation.spire.com/wp-content/themes/docs/font/apercu-mono-regular.woff2' type='text/css' media='' /><link rel='stylesheet' id='exo-font-css' href='https://fonts.googleapis.com/css2?family=Exo%3Awght%40300%3B400%3B500%3B700%3B800&#038;display=swap' type='text/css' media='' /><link rel='stylesheet' id='magnific-css' href='https://cdn.jsdelivr.net/npm/magnific-popup@1.1.0/dist/magnific-popup.css?ver=6.7.1' type='text/css' media='' /> <script defer type="text/javascript" src="https://documentation.spire.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_5226652de4f7a179e760bf7e9a3d0232.js?ver=1679901433" id="darkmode_apply-js"></script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://documentation.spire.com/xmlrpc.php?rsd" /><link rel='shortlink' href='https://documentation.spire.com/?p=186' /><link rel="icon" href="https://documentation.spire.com/wp-content/uploads/2022/10/cropped-maritime_icon-32x32.png" sizes="32x32" /><link rel="icon" href="https://documentation.spire.com/wp-content/uploads/2022/10/cropped-maritime_icon-192x192.png" sizes="192x192" /><link rel="apple-touch-icon" href="https://documentation.spire.com/wp-content/uploads/2022/10/cropped-maritime_icon-180x180.png" /><meta name="msapplication-TileImage" content="https://documentation.spire.com/wp-content/uploads/2022/10/cropped-maritime_icon-270x270.png" /> <script defer src="data:text/javascript;base64,dmFyIGJ1c2luZXNzMT0nbWFyaXRpbWUnOw=="></script> <script defer type="text/javascript" src="https://cookie-cdn.cookiepro.com/consent/de7f49f2-6902-4173-9229-932c6d04aac7/OtAutoBlock.js" ></script> <script defer src="https://cookie-cdn.cookiepro.com/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="de7f49f2-6902-4173-9229-932c6d04aac7" ></script> <script defer src="data:text/javascript;base64,CiAgICBmdW5jdGlvbiBPcHRhbm9uV3JhcHBlcigpIHsgfQogICAg"></script> <script defer src="data:text/javascript;base64,KGZ1bmN0aW9uKHcsZCxzLGwsaSl7d1tsXT13W2xdfHxbXTt3W2xdLnB1c2goeydndG0uc3RhcnQnOgogICAgbmV3IERhdGUoKS5nZXRUaW1lKCksZXZlbnQ6J2d0bS5qcyd9KTt2YXIgZj1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKHMpWzBdLAogICAgaj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2RhdGFMYXllcic/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9CiAgICAnaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPScraStkbDtmLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGosZik7CiAgICB9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJ2RhdGFMYXllcicsJ0dUTS1OMzI2M1ZDJyk7"></script> </head><body class="page-template-default page page-id-186 page-parent"> <script defer src="data:text/javascript;base64,dmFyIGFqYXh1cmw9J2h0dHBzOi8vZG9jdW1lbnRhdGlvbi5zcGlyZS5jb20vd3AtYWRtaW4vYWRtaW4tYWpheC5waHAnOw=="></script> <script defer src="data:text/javascript;base64,dmFyIHNpdGVUaXRsZT0nU3BpcmUgTWFyaXRpbWUgRG9jdW1lbnRhdGlvbic7"></script> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N3263VC" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script id="hs-script-loader" type="text/plain" class="optanon-category-C0004" async defer src="//js.hs-scripts.com/6779491.js"></script> <header> <a href="https://documentation.spire.com" id="logo"><img width="249" height="25" src="https://documentation.spire.com/wp-content/themes/docs/img/spire_maritime_documentation_logo.svg" alt="Logo of the Spire Maritime Documentation platform"/></a><div id="mobilemenuwrapper"><nav id="mainmenu"><ul><li id="menu-item-84" class="apis menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-has-children menu-item-84"><a href="https://documentation.spire.com/"><span>APIs &#038; Solutions</span></a><ul class="sub-menu"><li id="menu-item-23" class="graphql menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-23"><a href="https://documentation.spire.com/maritime-2-0/"><span>Maritime 2.0</span></a><ul class="sub-menu"><li id="menu-item-282" class="graphql menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-282"><a href="https://documentation.spire.com/maritime-2-0/vessels/"><span>Vessels 2.0</span></a><ul class="sub-menu"><li id="menu-item-1448" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1448"><a href="https://documentation.spire.com/maritime-2-0/vessels/output-objects/validated-static-data/"><span>Validated Static Data</span></a></li><li id="menu-item-1311" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1311"><a href="https://documentation.spire.com/maritime-2-0/vessels/output-objects/vessel-characteristics/"><span>Vessel characteristics</span></a></li><li id="menu-item-1172" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1172"><a href="https://documentation.spire.com/maritime-2-0/vessels/output-objects/vessel-to-port-eta/"><span>Vessel to Port ETA</span></a></li></ul></li><li id="menu-item-1101" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1101"><a href="https://documentation.spire.com/maritime-2-0/port-events/"><span>Port Events</span></a></li><li id="menu-item-1424" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1424"><a href="https://documentation.spire.com/maritime-2-0/port-congestion/"><span>Port Congestion</span></a></li><li id="menu-item-1480" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1480"><a href="https://documentation.spire.com/routing-api/"><span>Routing</span></a></li></ul></li><li id="menu-item-115" class="webservice menu-item menu-item-type-post_type menu-item-object-page menu-item-115"><a href="https://documentation.spire.com/latest-vessel-information-lvi/"><span>Latest Vessel Information (LVI)</span></a></li><li id="menu-item-142" class="webservice menu-item menu-item-type-post_type menu-item-object-page menu-item-142"><a href="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/"><span>Historical Vessel Points / Tracks (HVP/HVT)</span></a></li><li id="menu-item-1321" class="webservice menu-item menu-item-type-post_type menu-item-object-page menu-item-1321"><a href="https://documentation.spire.com/ais-position-validation/"><span>AIS Position Validation</span></a></li><li id="menu-item-188" class="tcp menu-item menu-item-type-post_type menu-item-object-page menu-item-188"><a href="https://documentation.spire.com/tcp-stream-v2/"><span>TCP Stream v2</span></a></li><li id="menu-item-355" class="tcp menu-item menu-item-type-post_type menu-item-object-page menu-item-355"><a href="https://documentation.spire.com/uniproxy/"><span>UniProxy</span></a></li><li id="menu-item-663" class="rest menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-663"><a href="#"><span>Legacy</span></a><ul class="sub-menu"><li id="menu-item-26" class="rest menu-item menu-item-type-post_type menu-item-object-page menu-item-26"><a href="https://documentation.spire.com/vessels-api/"><span>Vessels API</span></a></li><li id="menu-item-208" class="rest menu-item menu-item-type-post_type menu-item-object-page menu-item-208"><a href="https://documentation.spire.com/messages-api/"><span>Messages API</span></a></li><li id="menu-item-189" class="rest menu-item menu-item-type-post_type menu-item-object-page menu-item-189"><a href="https://documentation.spire.com/historical-positions-api/"><span>Historical Positions API</span></a></li></ul></li></ul></li><li id="menu-item-187" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-186 current_page_item menu-item-187"><a href="https://documentation.spire.com/ais-fundamentals/" aria-current="page"><span>AIS Fundamentals</span></a></li><li id="menu-item-366" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-366"><a href="https://documentation.spire.com/blog/"><span>Blog</span></a></li><li id="menu-item-1496" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1496"><a href="https://spire.com/"><span>Visit Spire Global</span></a></li></ul></nav><nav><ul><li class="sales"><a href="https://spire.com/maritime/configure-your-ais-solution" target="_blank" title="Contact Spire sales for API access - opens in a new tab"><img height="23" width="23" src="https://documentation.spire.com/wp-content/themes/docs/img/icon-support.svg?v1" alt="Sales icon"/>Contact sales</a></li><li><a href="https://status.spire.com" target="_blank"><img height="23" width="23" src="https://documentation.spire.com/wp-content/themes/docs/img/icon-status.svg" alt="Status icon"/>Platform status</a></li><li><a href="https://documentation.spire.com/make-a-support-request/" target="_blank"><img height="23" width="23" src="https://documentation.spire.com/wp-content/themes/docs/img/icon-question.svg" alt="Support icon"/>Get support</a></li><li class="hasdm"> <a href="javascript:void(0)" id="darkmodetoggle" title="Toggle between light/dark mode"></a></li></ul></nav></div> <a href="javascript:void(0);" id="searchtrigger">Search</a> <a href="javascript:void(0);" id="mobiletrigger">Open menu</a></header><main><nav id="docmap"><div><ul><li><a href="#ais-fundamentals">AIS Fundamentals</a></li><li class="has-sub-menu"> <a href="#ais-data-sources">AIS data sources</a><ul class="sub-menu"><li class=""><a href="#satellite-ais">Satellite AIS</a></li><li class=""><a href="#terrestrial-ais">Terrestrial AIS</a></li><li class=""><a href="#dynamic-ais">Dynamic AIS™</a></li></ul></li><li class=""> <a href="#ais-message-downsampling">AIS downsampling</a></li><li class=""> <a href="#ais-messages-download-priority">AIS messages download priority</a></li><li class="has-sub-menu"> <a href="#different-classes-of-ais">AIS classes</a><ul class="sub-menu"><li class=""><a href="#ais-channel-access-methods">AIS channel access methods</a></li><li class=""><a href="#ais-channel-access-priority">AIS channel access priority</a></li></ul></li><li class=""> <a href="#ais-message-latency">AIS latency</a></li><li class="has-sub-menu"> <a href="#ais-message-types">AIS message types</a><ul class="sub-menu"><li class=""><a href="#position-messages">Position messages</a></li><li class=""><a href="#static-messages">Static messages</a></li><li class=""><a href="#other-messages">Other messages</a></li></ul></li><li class=""> <a href="#ais-data-cleansing-methods">Data cleansing methods</a></li><li class=""> <a href="#vessel-flag-codes">Flag codes</a></li><li class=""> <a href="#how-to-interpret-navigational-status-codes">Navigational status codes</a></li><li class=""> <a href="#understanding-ais-performance-in-high-traffic-zones">Performance in HTZs</a></li><li class=""> <a href="#rate-of-turn-rot">Rate of turn (rot)</a></li><li class=""> <a href="#ship-type-mappings">Ship Type mappings</a></li><li class=""> <a href="#speed-over-ground-sog-rules">Speed over ground (sog) rules</a></li><li class=""> <a href="#tokens-api-keys">Tokens & API keys</a></li><li class=""> <a href="#vessel-duplicates">Vessel duplicates</a></li><li class=""> <a href="#handling-vessel-mmsi-changes">Vessel MMSI changes</a></li></ul></div> <label id="chooser"> <select name="sectionchooser" id="sectionchooser"></select> </label></nav><div id="content"><section data-id="186" id="ais-fundamentals" class="level1 titleonly" data-url="https://documentation.spire.com/ais-fundamentals/"><div class="wrapper clearfix"><div class="col col7"><h1>AIS Fundamentals</h1></div></div></section><section data-id="637" id="ais-data-sources" class="level2 titleonly" data-url="https://documentation.spire.com/ais-fundamentals/ais-data-sources/"><div class="wrapper clearfix"><div class="col col7"><h2>AIS data sources</h2></div></div></section><section data-id="685" id="satellite-ais" class="level3 " data-url="https://documentation.spire.com/ais-fundamentals/ais-data-sources/satellite-ais/"><div class="wrapper clearfix"><div class="col col7"><h3>Satellite AIS</h3><p>Spire satellites spend most of their time over open ocean listening for AIS messages. These messages are published shortly after our satellites pass over a Spire ground station to download them. Given this, satellite-received AIS (S-AIS) messages are often published in &#8220;bursts&#8221;. <strong>The primary advantage of S-AIS is global coverage.</strong></p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="685" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="685" data-value="-1">No</a><div class="formcontainer" id="container-67b8a45979adb"></div></div></div></section><section data-id="687" id="terrestrial-ais" class="level3 " data-url="https://documentation.spire.com/ais-fundamentals/ais-data-sources/terrestrial-ais/"><div class="wrapper clearfix"><div class="col col7"><h3>Terrestrial AIS</h3><p>Terrestrial AIS message (T-AIS) collection generally occurs near coastlines and takes place after a ship transmits them. Given that, terrestrially-received AIS messages are immediately made available to you. <strong>The primary advantage of T-AIS is extremely low latency.</strong></p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="687" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="687" data-value="-1">No</a><div class="formcontainer" id="container-67b8a45979d3a"></div></div></div></section><section data-id="639" id="dynamic-ais" class="level3 " data-url="https://documentation.spire.com/ais-fundamentals/ais-data-sources/dynamic-ais/"><div class="wrapper clearfix"><div class="col col7"><h3>Dynamic AIS™</h3><p>Dynamic AIS™ addresses the growing problem of gaps in AIS data, which directly impact ship safety, trading, revenue, and insurance claims. It delivers more unique MMSIs (up to ten thousand per day) with near-real-time latency, and up to six million additional AIS messages per day.</p><p>D-AIS™ leverages thousands of satellite-enabled AIS receivers traveling throughout the busiest shipping lanes in the world, and provides an unprecedented frequency of position updates in areas that are out of the reach of terrestrial collection and overwhelm other satellite AIS providers, particularly in High Traffic Zones such as the South China Sea.</p><p>These 2860+ satellite-enabled AIS receivers track vessels and the traffic within 60 nautical miles, sending this data to communication satellites at least every 15 minutes. Approximately 15 receivers a month are added to the network.</p></div><div class="col col1">&nbsp;</div><div class="col col4"><div class="ctabox"><h3 style="text-align: center;">View a Dynamic AIS™ demo</h3><p style="text-align: center;">Without Dynamic data to improve position update frequency in high traffic zones, the risk of acting on stale or inaccurate data is ever present. Watch the demo to understand the positive impact of D-AIS™:</p><p style="text-align: center;"><a class="calltoaction" href="https://dynamic-ais.spire.com" target="_blank" rel="noopener">Watch the demo</a></p></div></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="639" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="639" data-value="-1">No</a><div class="formcontainer" id="container-67b8a45979fe0"></div></div></div></section><section data-id="689" id="ais-message-downsampling" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/ais-message-downsampling/"><div class="wrapper clearfix"><div class="col col7"><h2>AIS message downsampling</h2><p>Due to the sheer number of Terrestrial AIS (T-AIS) messages Spire receives, we do not by default provide all of Terrestrial AIS messages within the <a href="https://documentation.spire.com/messages-api/">Messages API</a> or <a href="https://documentation.spire.com/tcp-stream-v2/">TCP Stream</a>. T-AIS messages are<strong> downsampled within 5-minute periods </strong>based on MMSI and message type<strong>.</strong> For example, if we receive 2 position messages with a particular MMSI 3 minutes apart from terrestrial sources, only the first of the two position messages would get published. If these messages were 7 minutes apart, both would get published.</p><p><strong>Note:</strong>  There is an option for clients to receive full (non-downsampled) Terrestrial AIS data.</p><p>As an example of data volumes 2021-06-22. A client receiving Spire Satellite AIS and downsampled Terrestrial AIS would receive up to about 80 million AIS messages per day. If they were to receive full (non-downsampled) Terrestrial AIS then the number would jump to over 300 million AIS messages per day.</p><p>Neither Satellite AIS nor Dynamic AIS™ messages are downsampled.</p></div><div class="col col1">&nbsp;</div><div class="col col4"><div class="ctabox"><h3>Virtual Downsampling through Maritime 2.0 and legacy Vessels API</h3><p>If a client wishes to receives updates at a different frequency, perhaps every 10 or 15 minutes, hourly or even daily, then this can be achieved using <a href="https://documentation.spire.com/maritime-2-0/vessels/">the <code>vessels</code> root query of Maritime 2.0</a>, or the <a href="https://documentation.spire.com/vessels-api/">legacy Vessels API</a>, and calling it at the required frequency for updates, i.e. calling the API hourly will give you the latest updates at an hourly interval. This is virtual downsampling controlled by the client.</p></div></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="689" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="689" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597a283"></div></div></div></section><section data-id="692" id="ais-messages-download-priority" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/ais-messages-download-priority/"><div class="wrapper clearfix"><div class="col col7"><h2>AIS messages download priority</h2><h3>Combined Satellite &amp; Terrestrial Feeds</h3><p>Given that Terrestrial AIS is published immediately and there&#8217;s often some delay between the collection and download of a Satellite AIS message, it will often be the case that AIS messages are published within our services out of timestamp order. (We don&#8217;t store our AIS messages in a buffer and sort them before publishing them.) <strong>This is to give you access to our AIS messages as soon as they&#8217;re downloaded.</strong></p><h3>Satellite AIS Message Download Priority</h3><p>Spire has many satellites in a variety of orbits and a number of global ground stations to collect and download AIS data. It’s not always realistic for us to get all of the AIS messages off of a satellite on the initial pass of a ground station.</p><p>In order to get the most important data down first, <strong>we prioritize the most recent message for each MMSI and get all of those down first</strong> before moving on to the older messages either during that same contact or during subsequent ones with other ground stations.</p><p>What that means in terms of how we push data to our AIS production services is that <strong>you’ll get the “freshest” data for an MMSI from each satellite quickly but then in some cases get the “backfill” a little bit later</strong>.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="692" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="692" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597a4da"></div></div></div></section><section data-id="243" id="different-classes-of-ais" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/different-classes-of-ais/"><div class="wrapper clearfix"><div class="col col7"><h2>Different classes of AIS</h2><p>AIS on board vessels can be classified as Class A and Class B.</p><h3>AIS class A</h3><p>AIS is included in the International Convention for the Safety of Life at Sea (SOLAS) convention for:</p><ul><li>vessels of 300 gross tonnage and upwards engaged on international voyages</li><li>vessels of 500 gross tonnage and upwards not engaged on international voyages</li><li>passenger ships irrespective of size.</li></ul><p>The AIS referred to in the SOLAS convention is often defined as ‘AIS Class A’.</p><h3>AIS class B</h3><p>AIS Class B is intended for use on non-SOLAS vessels. These can include domestic commercial vessels and pleasure craft.</p><h3>Static and Voyage information difference between Class A and B AIS</h3><p>In regards to voyage information, AIS class A vessels reports <code>IMO</code>, <code>destination</code> and <code>eta</code> more as compared to AIS Class B vessels.</p><p>When looking at global AIS, it is commonplace that Class B vessels and small Class A vessels do not report voyage data.</p></div><div class="col col1">&nbsp;</div><div class="col col4"><p><strong>24-hour count of vessels reporting destination and eta by AIS Class</strong></p><div class="tablewrapper"><table><thead><tr><th rowspan="2"><strong>Ship Type</strong></th><th colspan="2"><strong>AIS Vessel Class</strong></th></tr><tr><th><strong>A</strong></th><th><strong>B</strong></th></tr></thead><tbody><tr><td>GENERAL_CARGO</td><td>15982</td><td>234</td></tr><tr><td>OTHER</td><td>7025</td><td>118</td></tr><tr><td>DRY_BULK</td><td>6983</td><td>36</td></tr><tr><td>GENERAL_TANKER</td><td>6374</td><td>108</td></tr><tr><td>TUG</td><td>5434</td><td>92</td></tr><tr><td>FISHING</td><td>3664</td><td>104</td></tr><tr><td>VEHICLE_PASSENGER</td><td>2722</td><td>40</td></tr><tr><td>TANKER_PRODUCT</td><td>2637</td><td>49</td></tr><tr><td>CONTAINER</td><td>2394</td><td>11</td></tr><tr><td>OFFSHORE</td><td>1827</td><td>16</td></tr><tr><td>TANKER_CHEMICALS</td><td>1209</td><td>23</td></tr><tr><td>TANKER_CRUDE</td><td>1098</td><td>6</td></tr><tr><td>GAS_CARRIER</td><td>598</td><td>4</td></tr><tr><td>LNG_CARRIER</td><td>414</td><td>5</td></tr><tr><td>CAR_CARRIER</td><td>376</td><td>0</td></tr><tr><td>ROLL_ON_ROLL_OFF</td><td>323</td><td>3</td></tr><tr><td>REEFER</td><td>226</td><td>2</td></tr><tr><td>LIVESTOCK</td><td>16</td><td>0</td></tr><tr><td>COMBINATION_CARRIER</td><td>9</td><td>0</td></tr></tbody></table></div></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="243" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="243" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597a9c5"></div></div></div></section><section data-id="624" id="ais-channel-access-methods" class="level3 " data-url="https://documentation.spire.com/ais-fundamentals/different-classes-of-ais/ais-channel-access-methods/"><div class="wrapper clearfix"><div class="col col7"><h3>AIS channel access methods</h3><p>Class A transceivers reserve their time slots for AIS transmission via <strong>Self Organized Time Division Multiple Access (SOTDMA).</strong> They first perform a scan of the area to ascertain which slots have been taken by other vessels and reserve an empty slot. Any transmissions in the newly reserved slot will contain information notifying other nearby AIS devices that the transceiver intends to continue using this slot.</p><p>Class B transceivers are permitted to transmit via <strong>Carrier Sense Time Division Multiple Access (CSTDMA)</strong>. Unlike SOTDMA, slots are not reserved. They instead simply scan for available space and transmit when a free one is determined to be available.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="624" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="624" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597abf6"></div></div></div></section><section data-id="627" id="ais-channel-access-priority" class="level3 " data-url="https://documentation.spire.com/ais-fundamentals/different-classes-of-ais/ais-channel-access-priority/"><div class="wrapper clearfix"><div class="col col7"><h3>AIS channel access priority</h3><p>Transmission priority is given to Class A transceivers which use SOTDMA since they reserve time slots. The timing of Class B transmissions via CSTDMA must work around the time slots reserved by Class A transceivers. If a Class B transceiver is unable to find an empty space, their transmissions are delayed.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="627" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="627" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597adf6"></div></div></div></section><section data-id="699" id="ais-message-latency" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/ais-message-latency/"><div class="wrapper clearfix"><div class="col col7"><h2>AIS message latency</h2><p>Latency is the amount of time it takes for a transmitted AIS message to get ingested into Spire Maritime&#8217;s systems. In other words, latency is the difference in time between <a href="https://documentation.spire.com/messages-api/handling-api-responses/available-fields/difference-between-created_at-and-timestamp/" target="_blank" rel="noopener">the <code>created_at</code> and <code>timestamp</code> fields in Messages API</a>.</p><p>The average latency for AIS messages collected from a <a href="#terrestrial-ais">Terrestrial AIS</a> source is significantly lower than the average latency for AIS messages collected from a <a href="#satellite-ais">satellite</a>, since there are fewer opportunities for a satellite to download AIS messages while over open ocean. In comparison, once a terrestrial source collects an AIS message, it&#8217;s ingested immediately.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="699" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="699" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597affb"></div></div></div></section><section data-id="247" id="ais-message-types" class="level2 titleonly" data-url="https://documentation.spire.com/ais-fundamentals/ais-message-types/"><div class="wrapper clearfix"><div class="col col7"><h2>AIS Message Types</h2></div></div></section><section data-id="227" id="position-messages" class="level3 " data-url="https://documentation.spire.com/ais-fundamentals/ais-message-types/position-messages/"><div class="wrapper clearfix"><div class="col col7"><h3>Position messages</h3><p>AIS position messages mostly broadcast information about a vessel&#8217;s physical location and motion.</p><p>This includes a vessel&#8217;s MMSI number, longitude, latitude, rate of turn, speed, true heading, and other parameters.</p><p>Spire offers the following position messages to customers:</p><ul><li>Messages 1, 2, and 3 from Class A vessels</li><li>Message 4 from base stations</li><li>Message 18 from Class B vessels</li><li>Message 27 from Class A or B vessels (for long-range applications)</li></ul><p>The Nominal Reporting Interval for Class A and B vessels traveling at most 3 knots and 2 knots respectively, or when Anchored/Moored, is a broadcast every 3 minutes.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="227" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="227" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597b3a4"></div></div></div></section><section data-id="228" id="static-messages" class="level3 " data-url="https://documentation.spire.com/ais-fundamentals/ais-message-types/static-messages/"><div class="wrapper clearfix"><div class="col col7"><h3>Static messages</h3><p>AIS static messages mostly broadcast information about vessel characteristics that should remain (relatively) static over the during of their voyage.</p><p>This includes a vessel&#8217;s MMSI number, AIS version number, IMO number, call sign, name, type of ship/cargo, ship dimensions, destination, and other parameters.</p><p>Spire offers the following static messages to customers:</p><ul><li>Message 5 from Class A vessels</li><li>Message 24 from Class B vessels</li></ul><p>The Nominal Reporting Interval for both Class A and B vessels is a broadcast static message every 6 minutes, when an information change has been made, or upon request.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="228" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="228" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597b5bd"></div></div></div></section><section data-id="245" id="other-messages" class="level3 " data-url="https://documentation.spire.com/ais-fundamentals/ais-message-types/other-messages/"><div class="wrapper clearfix"><div class="col col7"><h3>Other messages</h3><p>Spire offers Message 19 from Class B vessels, which contains some parameters from Messages 18, 24A, and 24B.</p><p>We also offer the following AIS messages<strong> in an encoded fashion</strong> along with their <code>mmsi</code> and <code>flag</code> or <code>origin</code>:</p><dl><dt>Message 6</dt><dd>Addressed binary Message</dd><dt>Message 7</dt><dd>Binary acknowledge</dd><dt>Message 8</dt><dd>Binary broadcast Message</dd><dt>Message 9</dt><dd>Standard search and rescue aircraft position report</dd><dt>Message 10</dt><dd>Coordinated universal time and date inquiry</dd><dt>Message 11</dt><dd>Coordinated universal time/date response</dd><dt>Message 12</dt><dd>Addressed safety related Message</dd><dt>Message 14</dt><dd>Safety related broadcast Message</dd><dt>Message 15</dt><dd>Interrogation</dd><dt>Message 16</dt><dd>Assigned mode command</dd><dt>Message 17</dt><dd>Global navigation-satellite system broadcast binary Message</dd><dt>Message 20</dt><dd>Data link management Message</dd><dt>Message 21</dt><dd>Aids-to-navigation report</dd></dl></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="245" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="245" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597b8e7"></div></div></div></section><section data-id="652" id="ais-data-cleansing-methods" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/ais-data-cleansing-methods/"><div class="wrapper clearfix"><div class="col col7"><h2>AIS data cleansing methods</h2><p>Often times raw AIS messages can contain errors, empty or default values, and points over land due to GPS issues or spoofing.</p><p>In our API data delivery, we do our best to clean out some of these errors. Below is a list of some of the steps that we take to clean the data:</p><ul><li>Check values against the AIS standard.</li><li>Remove position data with unavailable coordinates (91 / 181).</li><li>Filter out messages with invalid MMSI numbers. (Ships should report 9-digit MMSIs. Base stations should report 7-digit MMSIs.)</li><li>Filter out messages with IMO numbers more than 7 digits. Note 7 digit IMO numbers still returned even when not matching the IMO checksum calculation.</li><li>Positions reported over land. (Note. feature enabled in data from 2019-08-27)</li></ul><p>By default, <a href="https://documentation.spire.com/messages-api/">Messages API</a> implements the above data cleaning rules. If you prefer to receive the full feed, including possible errors, simply attach a <code>cleansed=false</code> parameter within your calls to the API.</p><p>We do <strong>not</strong> perform cleansing for:</p><ul><li>Ships reporting an unintelligible name or destination field</li><li>Ships reporting inappropriate dimensions or speeds.</li><li>Other data errors.</li></ul><p>If you need a raw AIS feed which does not include data cleansing, please refer to our <a href="https://documentation.spire.com/tcp-stream-v2/">TCP stream v2</a>.</p></div><div class="col col1">&nbsp;</div><div class="col col4"><div class="ctabox"><p>Example of AIS reported positions which are excluded by Spire Maritime&#8217;s land filter:<img fetchpriority="high" decoding="async" class="alignnone size-large wp-image-653" src="https://documentation.spire.com/wp-content/uploads/2022/10/land_filter_reversed-1024x561.jpeg" alt="Example of reversed land filter, showing positions removed by our cleansing algorithms." width="1024" height="561" srcset="https://documentation.spire.com/wp-content/uploads/2022/10/land_filter_reversed-1024x561.jpeg 1024w, https://documentation.spire.com/wp-content/uploads/2022/10/land_filter_reversed-300x164.jpeg 300w, https://documentation.spire.com/wp-content/uploads/2022/10/land_filter_reversed-768x421.jpeg 768w, https://documentation.spire.com/wp-content/uploads/2022/10/land_filter_reversed-1536x841.jpeg 1536w, https://documentation.spire.com/wp-content/uploads/2022/10/land_filter_reversed.jpeg 1990w" sizes="(max-width: 1024px) 100vw, 1024px" /></p></div></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="652" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="652" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597c08f"></div></div></div></section><section data-id="201" id="vessel-flag-codes" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/vessel-flag-codes/"><div class="wrapper clearfix"><div class="col col7"><h2>Vessel flag codes</h2><p>Vessel flag codes are derived from AIS, more specifically from the uniquely assigned 9 digit MMSI (Maritime Mobile Service Identity) number to the vessel. The first 3 digits of a vessel&#8217;s MMSI, also known as MID (Maritime Identification Digits), specify the Vessel&#8217;s flag and country.</p><h3>Full list of MIDs and country codes</h3><div class="tablewrapper"><table><tbody><tr><th>MID</th><th>Country Name</th><th>Country Code</th></tr><tr><td>201</td><td>Albania</td><td>AL</td></tr><tr><td>202</td><td>Andorra</td><td>AD</td></tr><tr><td>203</td><td>Austria</td><td>AT</td></tr><tr><td>204</td><td>Portugal</td><td>PT</td></tr><tr><td>205</td><td>Belgium</td><td>BE</td></tr><tr><td>206</td><td>Belarus</td><td>BY</td></tr><tr><td>207</td><td>Bulgaria</td><td>BG</td></tr><tr><td>208</td><td>Vatican</td><td>VA</td></tr><tr><td>209</td><td>Cyprus</td><td>CY</td></tr><tr><td>210</td><td>Cyprus</td><td>CY</td></tr><tr><td>211</td><td>Germany</td><td>DE</td></tr><tr><td>212</td><td>Cyprus</td><td>CY</td></tr><tr><td>213</td><td>Georgia</td><td>GE</td></tr><tr><td>214</td><td>Moldova</td><td>MD</td></tr><tr><td>215</td><td>Malta</td><td>MT</td></tr><tr><td>216</td><td>Armenia</td><td>AM</td></tr><tr><td>218</td><td>Germany</td><td>DE</td></tr><tr><td>219</td><td>Denmark</td><td>DK</td></tr><tr><td>220</td><td>Denmark</td><td>DK</td></tr><tr><td>224</td><td>Spain</td><td>ES</td></tr><tr><td>225</td><td>Spain</td><td>ES</td></tr><tr><td>226</td><td>France</td><td>FR</td></tr><tr><td>227</td><td>France</td><td>FR</td></tr><tr><td>228</td><td>France</td><td>FR</td></tr><tr><td>229</td><td>Malta</td><td>MT</td></tr><tr><td>230</td><td>Finland</td><td>FI</td></tr><tr><td>231</td><td>Faroe Is</td><td>FO</td></tr><tr><td>232</td><td>United Kingdom</td><td>GB</td></tr><tr><td>233</td><td>United Kingdom</td><td>GB</td></tr><tr><td>234</td><td>United Kingdom</td><td>GB</td></tr><tr><td>235</td><td>United Kingdom</td><td>GB</td></tr><tr><td>236</td><td>Gibraltar</td><td>GI</td></tr><tr><td>237</td><td>Greece</td><td>GR</td></tr><tr><td>238</td><td>Croatia</td><td>HR</td></tr><tr><td>239</td><td>Greece</td><td>GR</td></tr><tr><td>240</td><td>Greece</td><td>GR</td></tr><tr><td>241</td><td>Greece</td><td>GR</td></tr><tr><td>242</td><td>Morocco</td><td>MA</td></tr><tr><td>243</td><td>Hungary</td><td>HU</td></tr><tr><td>244</td><td>Netherlands</td><td>NL</td></tr><tr><td>245</td><td>Netherlands</td><td>NL</td></tr><tr><td>246</td><td>Netherlands</td><td>NL</td></tr><tr><td>247</td><td>Italy</td><td>IT</td></tr><tr><td>248</td><td>Malta</td><td>MT</td></tr><tr><td>249</td><td>Malta</td><td>MT</td></tr><tr><td>250</td><td>Ireland</td><td>IE</td></tr><tr><td>251</td><td>Iceland</td><td>IS</td></tr><tr><td>252</td><td>Liechtenstein</td><td>LI</td></tr><tr><td>253</td><td>Luxembourg</td><td>LU</td></tr><tr><td>254</td><td>Monaco</td><td>MC</td></tr><tr><td>255</td><td>Portugal</td><td>PT</td></tr><tr><td>256</td><td>Malta</td><td>MT</td></tr><tr><td>257</td><td>Norway</td><td>NO</td></tr><tr><td>258</td><td>Norway</td><td>NO</td></tr><tr><td>259</td><td>Norway</td><td>NO</td></tr><tr><td>261</td><td>Poland</td><td>PL</td></tr><tr><td>262</td><td>Montenegro</td><td>ME</td></tr><tr><td>263</td><td>Portugal</td><td>PT</td></tr><tr><td>264</td><td>Romania</td><td>RO</td></tr><tr><td>265</td><td>Sweden</td><td>SE</td></tr><tr><td>266</td><td>Sweden</td><td>SE</td></tr><tr><td>267</td><td>Slovakia</td><td>SK</td></tr><tr><td>268</td><td>San Marino</td><td>SM</td></tr><tr><td>269</td><td>Switzerland</td><td>CH</td></tr><tr><td>270</td><td>Czech Republic</td><td>CZ</td></tr><tr><td>271</td><td>Turkey</td><td>TR</td></tr><tr><td>272</td><td>Ukraine</td><td>UA</td></tr><tr><td>273</td><td>Russia</td><td>RU</td></tr><tr><td>274</td><td>FYR Macedonia</td><td>MK</td></tr><tr><td>275</td><td>Latvia</td><td>LV</td></tr><tr><td>276</td><td>Estonia</td><td>EE</td></tr><tr><td>277</td><td>Lithuania</td><td>LT</td></tr><tr><td>278</td><td>Slovenia</td><td>SI</td></tr><tr><td>279</td><td>Serbia</td><td>RS</td></tr><tr><td>301</td><td>Anguilla</td><td>AI</td></tr><tr><td>303</td><td>USA</td><td>US</td></tr><tr><td>304</td><td>Antigua Barbuda</td><td>AG</td></tr><tr><td>305</td><td>Antigua Barbuda</td><td>AG</td></tr><tr><td>306</td><td>Curacao</td><td>CW</td></tr><tr><td>307</td><td>Aruba</td><td>AW</td></tr><tr><td>308</td><td>Bahamas</td><td>BS</td></tr><tr><td>309</td><td>Bahamas</td><td>BS</td></tr><tr><td>310</td><td>Bermuda</td><td>BM</td></tr><tr><td>311</td><td>Bahamas</td><td>BS</td></tr><tr><td>312</td><td>Belize</td><td>BZ</td></tr><tr><td>314</td><td>Barbados</td><td>BB</td></tr><tr><td>316</td><td>Canada</td><td>CA</td></tr><tr><td>319</td><td>Cayman Is</td><td>KY</td></tr><tr><td>321</td><td>Costa Rica</td><td>CR</td></tr><tr><td>323</td><td>Cuba</td><td>CU</td></tr><tr><td>325</td><td>Dominica</td><td>DM</td></tr><tr><td>327</td><td>Dominican Rep</td><td>DO</td></tr><tr><td>329</td><td>Guadeloupe</td><td>GP</td></tr><tr><td>330</td><td>Grenada</td><td>GD</td></tr><tr><td>331</td><td>Greenland</td><td>GL</td></tr><tr><td>332</td><td>Guatemala</td><td>GT</td></tr><tr><td>334</td><td>Honduras</td><td>HN</td></tr><tr><td>336</td><td>Haiti</td><td>HT</td></tr><tr><td>338</td><td>USA</td><td>US</td></tr><tr><td>339</td><td>Jamaica</td><td>JM</td></tr><tr><td>341</td><td>St Kitts Nevis</td><td>KN</td></tr><tr><td>343</td><td>St Lucia</td><td>LC</td></tr><tr><td>345</td><td>Mexico</td><td>MX</td></tr><tr><td>347</td><td>Martinique</td><td>MQ</td></tr><tr><td>348</td><td>Montserrat</td><td>MS</td></tr><tr><td>350</td><td>Nicaragua</td><td>NI</td></tr><tr><td>351</td><td>Panama</td><td>PA</td></tr><tr><td>352</td><td>Panama</td><td>PA</td></tr><tr><td>353</td><td>Panama</td><td>PA</td></tr><tr><td>354</td><td>Panama</td><td>PA</td></tr><tr><td>355</td><td>Panama</td><td>PA</td></tr><tr><td>356</td><td>Panama</td><td>PA</td></tr><tr><td>357</td><td>Panama</td><td>PA</td></tr><tr><td>358</td><td>Puerto Rico</td><td>PR</td></tr><tr><td>359</td><td>El Salvador</td><td>SV</td></tr><tr><td>361</td><td>St Pierre Miquelon</td><td>PM</td></tr><tr><td>362</td><td>Trinidad Tobago</td><td>TT</td></tr><tr><td>364</td><td>Turks Caicos Is</td><td>TC</td></tr><tr><td>366</td><td>USA</td><td>US</td></tr><tr><td>367</td><td>USA</td><td>US</td></tr><tr><td>368</td><td>USA</td><td>US</td></tr><tr><td>369</td><td>USA</td><td>US</td></tr><tr><td>370</td><td>Panama</td><td>PA</td></tr><tr><td>371</td><td>Panama</td><td>PA</td></tr><tr><td>372</td><td>Panama</td><td>PA</td></tr><tr><td>373</td><td>Panama</td><td>PA</td></tr><tr><td>374</td><td>Panama</td><td>PA</td></tr><tr><td>375</td><td>St Vincent Grenadines</td><td>VC</td></tr><tr><td>376</td><td>St Vincent Grenadines</td><td>VC</td></tr><tr><td>377</td><td>St Vincent Grenadines</td><td>VC</td></tr><tr><td>378</td><td>British Virgin Is</td><td>VG</td></tr><tr><td>379</td><td>US Virgin Is</td><td>VI</td></tr><tr><td>401</td><td>Afghanistan</td><td>AF</td></tr><tr><td>403</td><td>Saudi Arabia</td><td>SA</td></tr><tr><td>405</td><td>Bangladesh</td><td>BD</td></tr><tr><td>408</td><td>Bahrain</td><td>BH</td></tr><tr><td>410</td><td>Bhutan</td><td>BT</td></tr><tr><td>412</td><td>China</td><td>CN</td></tr><tr><td>413</td><td>China</td><td>CN</td></tr><tr><td>414</td><td>China</td><td>CN</td></tr><tr><td>416</td><td>Taiwan</td><td>TW</td></tr><tr><td>417</td><td>Sri Lanka</td><td>LK</td></tr><tr><td>419</td><td>India</td><td>IN</td></tr><tr><td>422</td><td>Iran</td><td>IR</td></tr><tr><td>423</td><td>Azerbaijan</td><td>AZ</td></tr><tr><td>425</td><td>Iraq</td><td>IQ</td></tr><tr><td>428</td><td>Israel</td><td>IL</td></tr><tr><td>431</td><td>Japan</td><td>JP</td></tr><tr><td>432</td><td>Japan</td><td>JP</td></tr><tr><td>434</td><td>Turkmenistan</td><td>TM</td></tr><tr><td>436</td><td>Kazakhstan</td><td>KZ</td></tr><tr><td>437</td><td>Uzbekistan</td><td>UZ</td></tr><tr><td>438</td><td>Jordan</td><td>JO</td></tr><tr><td>440</td><td>Korea</td><td>KR</td></tr><tr><td>441</td><td>Korea</td><td>KR</td></tr><tr><td>443</td><td>Palestine</td><td>PS</td></tr><tr><td>445</td><td>DPR Korea</td><td>KP</td></tr><tr><td>447</td><td>Kuwait</td><td>KW</td></tr><tr><td>450</td><td>Lebanon</td><td>LB</td></tr><tr><td>451</td><td>Kyrgyz Republic</td><td>KG</td></tr><tr><td>453</td><td>Macao</td><td>MO</td></tr><tr><td>455</td><td>Maldives</td><td>MV</td></tr><tr><td>457</td><td>Mongolia</td><td>MN</td></tr><tr><td>459</td><td>Nepal</td><td>NP</td></tr><tr><td>461</td><td>Oman</td><td>OM</td></tr><tr><td>463</td><td>Pakistan</td><td>PK</td></tr><tr><td>466</td><td>Qatar</td><td>QA</td></tr><tr><td>468</td><td>Syria</td><td>SY</td></tr><tr><td>470</td><td>UAE</td><td>AE</td></tr><tr><td>471</td><td>UAE</td><td>AE</td></tr><tr><td>472</td><td>Tajikistan</td><td>TJ</td></tr><tr><td>473</td><td>Yemen</td><td>YE</td></tr><tr><td>475</td><td>Yemen</td><td>YE</td></tr><tr><td>477</td><td>Hong Kong</td><td>HK</td></tr><tr><td>478</td><td>Bosnia and Herzegovina</td><td>BA</td></tr><tr><td>501</td><td>Antarctica</td><td>AQ</td></tr><tr><td>503</td><td>Australia</td><td>AU</td></tr><tr><td>506</td><td>Myanmar</td><td>MM</td></tr><tr><td>508</td><td>Brunei</td><td>BN</td></tr><tr><td>510</td><td>Micronesia</td><td>FM</td></tr><tr><td>511</td><td>Palau</td><td>PW</td></tr><tr><td>512</td><td>New Zealand</td><td>NZ</td></tr><tr><td>514</td><td>Cambodia</td><td>KH</td></tr><tr><td>515</td><td>Cambodia</td><td>KH</td></tr><tr><td>516</td><td>Christmas Is</td><td>CX</td></tr><tr><td>518</td><td>Cook Is</td><td>CK</td></tr><tr><td>520</td><td>Fiji</td><td>FJ</td></tr><tr><td>523</td><td>Cocos Is</td><td>CC</td></tr><tr><td>525</td><td>Indonesia</td><td>ID</td></tr><tr><td>529</td><td>Kiribati</td><td>KI</td></tr><tr><td>531</td><td>Laos</td><td>LA</td></tr><tr><td>533</td><td>Malaysia</td><td>MY</td></tr><tr><td>536</td><td>N Mariana Is</td><td>MP</td></tr><tr><td>538</td><td>Marshall Is</td><td>MH</td></tr><tr><td>540</td><td>New Caledonia</td><td>NC</td></tr><tr><td>542</td><td>Niue</td><td>NU</td></tr><tr><td>544</td><td>Nauru</td><td>NR</td></tr><tr><td>546</td><td>French Polynesia</td><td>PF</td></tr><tr><td>548</td><td>Philippines</td><td>PH</td></tr><tr><td>553</td><td>Papua New Guinea</td><td>PG</td></tr><tr><td>555</td><td>Pitcairn Is</td><td>PN</td></tr><tr><td>557</td><td>Solomon Is</td><td>SB</td></tr><tr><td>559</td><td>American Samoa</td><td>AS</td></tr><tr><td>561</td><td>Samoa</td><td>WS</td></tr><tr><td>563</td><td>Singapore</td><td>SG</td></tr><tr><td>564</td><td>Singapore</td><td>SG</td></tr><tr><td>565</td><td>Singapore</td><td>SG</td></tr><tr><td>566</td><td>Singapore</td><td>SG</td></tr><tr><td>567</td><td>Thailand</td><td>TH</td></tr><tr><td>570</td><td>Tonga</td><td>TO</td></tr><tr><td>572</td><td>Tuvalu</td><td>TV</td></tr><tr><td>574</td><td>Vietnam</td><td>VN</td></tr><tr><td>576</td><td>Vanuatu</td><td>VU</td></tr><tr><td>577</td><td>Vanuatu</td><td>VU</td></tr><tr><td>578</td><td>Wallis Futuna Is</td><td>WF</td></tr><tr><td>601</td><td>South Africa</td><td>ZA</td></tr><tr><td>603</td><td>Angola</td><td>AO</td></tr><tr><td>605</td><td>Algeria</td><td>DZ</td></tr><tr><td>607</td><td>St Paul Amsterdam Is</td><td>TF</td></tr><tr><td>608</td><td>Ascension Is</td><td>IO</td></tr><tr><td>609</td><td>Burundi</td><td>BI</td></tr><tr><td>610</td><td>Benin</td><td>BJ</td></tr><tr><td>611</td><td>Botswana</td><td>BW</td></tr><tr><td>612</td><td>Cen Afr Rep</td><td>CF</td></tr><tr><td>613</td><td>Cameroon</td><td>CM</td></tr><tr><td>615</td><td>Congo</td><td>CG</td></tr><tr><td>616</td><td>Comoros</td><td>KM</td></tr><tr><td>617</td><td>Cape Verde</td><td>CV</td></tr><tr><td>618</td><td>Antarctica</td><td>AQ</td></tr><tr><td>619</td><td>Ivory Coast</td><td>CI</td></tr><tr><td>620</td><td>Comoros</td><td>KM</td></tr><tr><td>621</td><td>Djibouti</td><td>DJ</td></tr><tr><td>622</td><td>Egypt</td><td>EG</td></tr><tr><td>624</td><td>Ethiopia</td><td>ET</td></tr><tr><td>625</td><td>Eritrea</td><td>ER</td></tr><tr><td>626</td><td>Gabon</td><td>GA</td></tr><tr><td>627</td><td>Ghana</td><td>GH</td></tr><tr><td>629</td><td>Gambia</td><td>GM</td></tr><tr><td>630</td><td>Guinea-Bissau</td><td>GW</td></tr><tr><td>631</td><td>Equ. Guinea</td><td>GQ</td></tr><tr><td>632</td><td>Guinea</td><td>GN</td></tr><tr><td>633</td><td>Burkina Faso</td><td>BF</td></tr><tr><td>634</td><td>Kenya</td><td>KE</td></tr><tr><td>635</td><td>Antarctica</td><td>AQ</td></tr><tr><td>636</td><td>Liberia</td><td>LR</td></tr><tr><td>637</td><td>Liberia</td><td>LR</td></tr><tr><td>642</td><td>Libya</td><td>LY</td></tr><tr><td>644</td><td>Lesotho</td><td>LS</td></tr><tr><td>645</td><td>Mauritius</td><td>MU</td></tr><tr><td>647</td><td>Madagascar</td><td>MG</td></tr><tr><td>649</td><td>Mali</td><td>ML</td></tr><tr><td>650</td><td>Mozambique</td><td>MZ</td></tr><tr><td>654</td><td>Mauritania</td><td>MR</td></tr><tr><td>655</td><td>Malawi</td><td>MW</td></tr><tr><td>656</td><td>Niger</td><td>NE</td></tr><tr><td>657</td><td>Nigeria</td><td>NG</td></tr><tr><td>659</td><td>Namibia</td><td>NA</td></tr><tr><td>660</td><td>Reunion</td><td>RE</td></tr><tr><td>661</td><td>Rwanda</td><td>RW</td></tr><tr><td>662</td><td>Sudan</td><td>SD</td></tr><tr><td>663</td><td>Senegal</td><td>SN</td></tr><tr><td>664</td><td>Seychelles</td><td>SC</td></tr><tr><td>665</td><td>St Helena</td><td>SH</td></tr><tr><td>666</td><td>Somalia</td><td>SO</td></tr><tr><td>667</td><td>Sierra Leone</td><td>SL</td></tr><tr><td>668</td><td>Sao Tome Principe</td><td>ST</td></tr><tr><td>669</td><td>Swaziland</td><td>SZ</td></tr><tr><td>670</td><td>Chad</td><td>TD</td></tr><tr><td>671</td><td>Togo</td><td>TG</td></tr><tr><td>672</td><td>Tunisia</td><td>TN</td></tr><tr><td>674</td><td>Tanzania</td><td>TZ</td></tr><tr><td>675</td><td>Uganda</td><td>UG</td></tr><tr><td>676</td><td>DR Congo</td><td>CD</td></tr><tr><td>677</td><td>Tanzania</td><td>TZ</td></tr><tr><td>678</td><td>Zambia</td><td>ZM</td></tr><tr><td>679</td><td>Zimbabwe</td><td>ZW</td></tr><tr><td>701</td><td>Argentina</td><td>AR</td></tr><tr><td>710</td><td>Brazil</td><td>BR</td></tr><tr><td>720</td><td>Bolivia</td><td>BO</td></tr><tr><td>725</td><td>Chile</td><td>CL</td></tr><tr><td>730</td><td>Colombia</td><td>CO</td></tr><tr><td>735</td><td>Ecuador</td><td>EC</td></tr><tr><td>740</td><td>UK</td><td>UK</td></tr><tr><td>745</td><td>Guiana</td><td>GF</td></tr><tr><td>750</td><td>Guyana</td><td>GY</td></tr><tr><td>755</td><td>Paraguay</td><td>PY</td></tr><tr><td>760</td><td>Peru</td><td>PE</td></tr><tr><td>765</td><td>Suriname</td><td>SR</td></tr><tr><td>770</td><td>Uruguay</td><td>UY</td></tr><tr><td>775</td><td>Venezuela</td><td>VE</td></tr></tbody></table></div></div><div class="col col1">&nbsp;</div><div class="col col4"><p>The first digit of the MID represents the assigned region, and can have a value of 2 to 7:</p><dl><dt><code>2</code> <em>Europe</em></dt><dd>(e.g., Italy has MID 247; Denmark has MIDs 219 and 220)</dd><dt><code>3</code> <em>North and Central America and Caribbean</em></dt><dd>(e.g., Canada, 316; Greenland, 331; Panama, 351 through 357, plus 370 through 373; United States, 303(Alaska), 338(domestic), plus 366 through 369)</dd><dt><code>4</code> <em>Asia (not the southeast)</em></dt><dd>( Maldives, 455; Japan, 431)</dd><dt><code>5</code> <em>Oceania, and Southeast Asia</em></dt><dd>(Australia, 503; New Zealand, 512; Philippines, 548; Indonesia, 525)</dd><dt><code>6</code> <em>Africa</em></dt><dd>(Eritrea, 625)</dd><dt><code>7</code> <em>South America</em></dt><dd>(Peru, 760)</dd></dl></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="201" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="201" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597e176"></div></div></div></section><section data-id="210" id="how-to-interpret-navigational-status-codes" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/how-to-interpret-navigational-status-codes/"><div class="wrapper clearfix"><div class="col col7"><h2>How to interpret Navigational Status codes</h2><h3>What is navigational status?</h3><p>Ships broadcast their navigational status within position message types 1, 2, 3 and 27. It can take on a value from 0 to 15, and each number represents a unique piece of metadata associated with the vessel&#8217;s activity. We provide this value within the <code>status</code> field.</p><h3>What does each number mean?</h3><dl><dt><code>0</code></dt><dd>Under way using its engine</dd><dt><code>1</code></dt><dd>Anchored</dd><dt><code>2</code></dt><dd>Not under command</dd><dt><code>3</code></dt><dd>Has restricted maneuverability</dd><dt><code>4</code></dt><dd>Ship draught is limiting its movement</dd><dt><code>5</code></dt><dd>Moored (tied to another object to limit free movement)</dd><dt><code>6</code></dt><dd>Aground</dd><dt><code>7</code></dt><dd>Engaged in fishing</dd><dt><code>8</code></dt><dd>Under way sailing</dd><dt><code>9</code></dt><dd>(Number reserved for modifying reported status of ships carrying dangerous goods/harmful substances/marine pollutants)</dd><dt><code>10</code></dt><dd>(Number reserved for modifying reported status of ships carrying dangerous goods/harmful substances/marine pollutants)</dd><dt><code>11</code></dt><dd>Power-driven vessel towing astern</dd><dt><code>12</code></dt><dd>Power-driven vessel pushing ahead/towing alongside</dd><dt><code>13</code></dt><dd>(Reserved for future use)</dd><dt><code>14</code></dt><dd>Any of the following are active: AIS-SART (Search and Rescue Transmitter), AIS-MOB (Man Overboard), AIS-EPIRB (Emergency Position Indicating Radio Beacon)</dd><dt><code>15</code></dt><dd>Undefined (default)</dd></dl><h3>References &amp; Other Resources</h3><ol><li><a href="https://www.itu.int/rec/R-REC-M.1371/en" target="_blank" rel="noopener">International Telecommunications Union (ITU) AIS Technical Characteristics Documentation</a></li></ol></div><div class="col col1">&nbsp;</div><div class="col col4"><p>Below is a sample (taken 2020-01-05) of decoded navigation status values and their counts by MMSI or IMO, as reported by vessels and returned as the decoded values by Vessels API:</p><div class="tablewrapper"><table style="width: 100%;"><tbody><tr><th style="width: 79.2035%;">navigational_status</th><th style="width: 9.64602%;">mmsi_count</th><th style="width: 8.31858%;">imo_count</th></tr><tr><td style="width: 79.2035%;"></td><td style="width: 9.64602%;">85332</td><td style="width: 8.31858%;">676</td></tr><tr><td style="width: 79.2035%;">AIS-SART (active), MOB-AIS, EPIRB-AIS</td><td style="width: 9.64602%;">25</td><td style="width: 8.31858%;">11</td></tr><tr><td style="width: 79.2035%;">Aground</td><td style="width: 9.64602%;">138</td><td style="width: 8.31858%;">50</td></tr><tr><td style="width: 79.2035%;">At anchor</td><td style="width: 9.64602%;">24618</td><td style="width: 8.31858%;">18226</td></tr><tr><td style="width: 79.2035%;">Constrained by her draught</td><td style="width: 9.64602%;">372</td><td style="width: 8.31858%;">217</td></tr><tr><td style="width: 79.2035%;">Engaged in fishing</td><td style="width: 9.64602%;">2738</td><td style="width: 8.31858%;">1017</td></tr><tr><td style="width: 79.2035%;">Moored</td><td style="width: 9.64602%;">37135</td><td style="width: 8.31858%;">24191</td></tr><tr><td style="width: 79.2035%;">Not under command</td><td style="width: 9.64602%;">1209</td><td style="width: 8.31858%;">1036</td></tr><tr><td style="width: 79.2035%;">Power-driven vessel pushing ahead or towing alongside</td><td style="width: 9.64602%;">789</td><td style="width: 8.31858%;">124</td></tr><tr><td style="width: 79.2035%;">Power-driven vessel towing astern</td><td style="width: 9.64602%;">203</td><td style="width: 8.31858%;">114</td></tr><tr><td style="width: 79.2035%;">Reserved for future amendment of navigational status for ships carrying DG, HS, or MP, or IMO hazard or pollutant category C, high speed craft (HSC)</td><td style="width: 9.64602%;">193</td><td style="width: 8.31858%;">84</td></tr><tr><td style="width: 79.2035%;">Reserved for future amendment of navigational status for ships carrying dangerous goods (DG), harmful substances (HS) or marine pollutants (MP), or IMO hazard or pollutant category A, wing in ground (WIG)</td><td style="width: 9.64602%;">93</td><td style="width: 8.31858%;">47</td></tr><tr><td style="width: 79.2035%;">Reserved for future use</td><td style="width: 9.64602%;">82</td><td style="width: 8.31858%;">27</td></tr><tr><td style="width: 79.2035%;">Restricted maneuverability</td><td style="width: 9.64602%;">2047</td><td style="width: 8.31858%;">1586</td></tr><tr><td style="width: 79.2035%;">Undefined</td><td style="width: 9.64602%;">87789</td><td style="width: 8.31858%;">51115</td></tr><tr><td style="width: 79.2035%;">Under way sailing</td><td style="width: 9.64602%;">2965</td><td style="width: 8.31858%;">1920</td></tr><tr><td style="width: 79.2035%;">Under way using engine</td><td style="width: 9.64602%;">70872</td><td style="width: 8.31858%;">42180</td></tr></tbody></table></div></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="210" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="210" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597e7f0"></div></div></div></section><section data-id="211" id="understanding-ais-performance-in-high-traffic-zones" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/understanding-ais-performance-in-high-traffic-zones/"><div class="wrapper clearfix"><div class="col col7"><h2>Understanding AIS performance in High-Traffic Zones</h2><p>Ship activity in some global regions is significantly more dense than average. These regions are called <strong>high traffic zones (HTZs)</strong>.</p><p>High traffic zones generally occur near areas with major ports, like the South China Sea or the Mediterranean Sea.</p><h3>Terrestrial AIS Performance within High Traffic Zones</h3><p>AIS was originally designed for ground-to-ground reception, so terrestrial stations don&#8217;t experience any significant performance degradation in HTZs within their estimated 80-kilometer radius.</p><h3>Satellite AIS Performance over High Traffic Zones</h3><p>As compared to terrestrial stations, our satellites are listening to ships within a 2000-kilometer radius, making them prone to <strong>AIS message collisioning</strong> &#8211; an effect that impacts all satellite AIS providers.</p><p>When a satellite passes over a HTZ, it becomes difficult for the satellite to differentiate between the higher number of AIS messages being transmitted at the same time. The end result is actually fewer than usual AIS messages being decoded.</p><p>As an analogy, this is similar to the effect of listening to one conversation, as compared to 20 simultaneous conversations. Understanding a single conversation is significantly easier than attempting to follow 20.</p><p>Spire has and continues to develop methods of reducing the impact of AIS message collisioning on its satellites.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="211" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="211" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597ea3d"></div></div></div></section><section data-id="672" id="rate-of-turn-rot" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/rate-of-turn-rot/"><div class="wrapper clearfix"><div class="col col7"><h2>Rate of turn (rot)</h2><p>Class A vessels periodically report the rate at which they are rotating (if at all) within AIS Messages 1, 2 &amp; 3. This parameter is called the <strong>rate-of-turn</strong> of the vessel. Vessels reporting this parameter generally have an external &#8220;rate-of-turn indicator&#8221; (TI) onboard that feeds the measured value from the sensor into the AIS transceiver, where it then gets converted into the &#8220;raw&#8221; value stored in the AIS messages.</p><h3>How to convert the decoded &#8220;rate-of-turn&#8221; (rot) value into degrees per minute</h3><p>The formula is as follows:</p><pre><code data-prismjs-copy="Copy to clipboard">ROT_ais = 4.733 * √(ROT_sensor)</code></pre><p>Where:</p><dl><dt><code>ROT_ais</code></dt><dd>&#8220;raw&#8221; rate-of-turn value stored in the AIS message</dd><dt><code>ROT_sensor</code></dt><dd>rate-of-turn in °/min as reported by the TI onboard the vessel</dd></dl><p>For instance, a value of <code>+126</code> for <code>ROT_ais</code> translates into a value of <code>+708 <strong>°/</strong>min</code> for <code>ROT_sensor</code>.</p><p><strong>Note: </strong>Be aware that without special handling, converting a negative <code>ROT_ais</code> value to the <code>ROT_sensor</code> value will cause it to lose its negative (<code>-</code>) sign in the process. This means that the vessel&#8217;s rotation would get reported as turning right/clockwise when it is actually turning left/anti-clockwise.</p><h4>Range of Possible Values</h4><dl><dt><code>0</code> to <code>+126</code></dt><dd>Vessel is turning right/clockwise at up to <code>708 <strong>°/</strong>min</code> or higher</dd><dt><code>0</code> to <code>-126</code></dt><dd>Vessel is turning left/anti-clockwise at up to <code>708 <strong>°/</strong>min</code> or higher</dd><dt><code>+127</code></dt><dd>Vessel is turning right/clockwise at more than 5° per 30 sec; TI is unavailable</dd><dt><code>-127</code></dt><dd>Vessel is turning left/anti-clockwise at more than 5° per 30 sec; TI is unavailable</dd><dt><code>-128</code></dt><dd>No turning information is available from the vessel</dd></dl></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="672" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="672" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597ed9a"></div></div></div></section><section data-id="738" id="ship-type-mappings" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/ship-type-mappings/"><div class="wrapper clearfix"><div class="col col7"><h2>Ship Type mappings</h2><p>The table below maps some common AIS shipType codes to the corresponding ship type used with the <code>shipType</code> filter in Maritime 2.0 (both <code>shipType</code> and <code>shipSubType</code> values are available as query output as well).</p><div class="tablewrapper"><table><thead><tr><th data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;shipTypeCode&quot;}">shipTypeCode</th><th data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;shipTypeDescription&quot;}">shipTypeDescription</th><th data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;vesselType&quot;}">shipType</th></tr></thead><tbody><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:20}">20</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Wing in ground (WIG), all ships of this type&quot;}">Wing in ground (WIG), all ships of this type</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:21}">21</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Wing in ground (WIG), Hazardous category A&quot;}">Wing in ground (WIG), Hazardous category A</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:22}">22</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Wing in ground (WIG), Hazardous category B&quot;}">Wing in ground (WIG), Hazardous category B</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:23}">23</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Wing in ground (WIG), Hazardous category C&quot;}">Wing in ground (WIG), Hazardous category C</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:24}">24</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Wing in ground (WIG), Hazardous category D&quot;}">Wing in ground (WIG), Hazardous category D</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:25}">25</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Wing in ground (WIG), Reserved for future use&quot;}">Wing in ground (WIG), Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:26}">26</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Wing in ground (WIG), Reserved for future use&quot;}">Wing in ground (WIG), Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:27}">27</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Wing in ground (WIG), Reserved for future use&quot;}">Wing in ground (WIG), Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:28}">28</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Wing in ground (WIG), Reserved for future use&quot;}">Wing in ground (WIG), Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:29}">29</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Wing in ground (WIG), Reserved for future use&quot;}">Wing in ground (WIG), Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:30}">30</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Fishing&quot;}">Fishing</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;FISHING&quot;}">FISHING</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:31}">31</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Towing&quot;}">Towing</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;TUG&quot;}">TUG</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:32}">32</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Towing, TUG\&quot;&quot;}">Towing</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;null&quot;}">TUG</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:33}">33</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Dredging or underwater ops&quot;}">Dredging or underwater ops</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">DREDGER (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:34}">34</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Diving ops&quot;}">Diving ops</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OFFSHORE&quot;}">DIVE_VESSEL (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:35}">35</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Military Ops&quot;}">Military Ops</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">MILITARY_OPS (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:36}">36</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Sailing&quot;}">Sailing</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">SAILING (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:37}">37</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Pleasure Craft&quot;}">Pleasure Craft</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">PLEASURE_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:38}">38</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Reserved&quot;}">Reserved</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:39}">39</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Reserved&quot;}">Reserved</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:40}">40</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;High speed craft (HSC), all ships of this type&quot;}">High speed craft (HSC), all ships of this type</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">HIGH_SPEED_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:41}">41</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;High speed craft (HSC), Hazardous category A&quot;}">High speed craft (HSC), Hazardous category A</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">HIGH_SPEED_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:42}">42</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;High speed craft (HSC), Hazardous category B&quot;}">High speed craft (HSC), Hazardous category B</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">HIGH_SPEED_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:43}">43</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;High speed craft (HSC), Hazardous category C&quot;}">High speed craft (HSC), Hazardous category C</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">HIGH_SPEED_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:44}">44</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;High speed craft (HSC), Hazardous category D&quot;}">High speed craft (HSC), Hazardous category D</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">HIGH_SPEED_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:45}">45</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;High speed craft (HSC), Reserved for future use&quot;}">High speed craft (HSC), Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">HIGH_SPEED_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:46}">46</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;High speed craft (HSC), Reserved for future use&quot;}">High speed craft (HSC), Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">HIGH_SPEED_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:47}">47</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;High speed craft (HSC), Reserved for future use&quot;}">High speed craft (HSC), Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">HIGH_SPEED_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:48}">48</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;High speed craft (HSC), Reserved for future use&quot;}">High speed craft (HSC), Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">HIGH_SPEED_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:49}">49</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;High speed craft (HSC), No additional information&quot;}">High speed craft (HSC), No additional information</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">HIGH_SPEED_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:50}">50</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Pilot Vessel&quot;}">Pilot Vessel</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">PILOT_VESSEL (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:51}">51</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Search and Rescue vessel&quot;}">Search and Rescue vessel</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">SEARCH_AND_RESCUE (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:52}">52</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tug&quot;}">Tug</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;TUG&quot;}">TUG</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:53}">53</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Port Tender&quot;}">Port Tender</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">PORT_TENDER (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:54}">54</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Anti-pollution equipment&quot;}">Anti-pollution equipment</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">ANTI_POLLUTION (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:55}">55</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Law Enforcement&quot;}">Law Enforcement</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">LAW_ENFORCEMENT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:56}">56</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Spare - Local Vessel&quot;}">Spare &#8211; Local Vessel</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:57}">57</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Spare - Local Vessel&quot;}">Spare &#8211; Local Vessel</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:58}">58</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Medical Transport&quot;}">Medical Transport</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">MEDICAL_TRANS (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:59}">59</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Noncombatant ship according to RR Resolution No. 18&quot;}">Noncombatant ship according to RR Resolution No. 18</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">SPECIAL_CRAFT (was OTHER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:60}">60</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Passenger, all ships of this type&quot;}">Passenger, all ships of this type</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;VEHICLE_PASSENGER&quot;}">PASSENGER (was VEHICLE_PASSENGER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:61}">61</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Passenger, Hazardous category A&quot;}">Passenger, Hazardous category A</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;VEHICLE_PASSENGER&quot;}">PASSENGER (was VEHICLE_PASSENGER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:62}">62</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Passenger, Hazardous category B&quot;}">Passenger, Hazardous category B</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;VEHICLE_PASSENGER&quot;}">PASSENGER (was VEHICLE_PASSENGER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:63}">63</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Passenger, Hazardous category C&quot;}">Passenger, Hazardous category C</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;VEHICLE_PASSENGER&quot;}">PASSENGER (was VEHICLE_PASSENGER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:64}">64</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Passenger, Hazardous category D&quot;}">Passenger, Hazardous category D</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;VEHICLE_PASSENGER&quot;}">PASSENGER (was VEHICLE_PASSENGER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:65}">65</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Passenger, Reserved for future use&quot;}">Passenger, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;VEHICLE_PASSENGER&quot;}">PASSENGER (was VEHICLE_PASSENGER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:66}">66</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Passenger, Reserved for future use&quot;}">Passenger, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;VEHICLE_PASSENGER&quot;}">PASSENGER (was VEHICLE_PASSENGER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:67}">67</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Passenger, Reserved for future use&quot;}">Passenger, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;VEHICLE_PASSENGER&quot;}">PASSENGER (was VEHICLE_PASSENGER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:68}">68</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Passenger, Reserved for future use&quot;}">Passenger, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;VEHICLE_PASSENGER&quot;}">PASSENGER (was VEHICLE_PASSENGER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:69}">69</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Passenger, No additional information&quot;}">Passenger, No additional information</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;VEHICLE_PASSENGER&quot;}">PASSENGER (was VEHICLE_PASSENGER up to 2022-08-30)</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:70}">70</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Cargo, all ships of this type&quot;}">Cargo, all ships of this type</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_CARGO&quot;}">GENERAL_CARGO</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:71}">71</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Cargo, Hazardous category A&quot;}">Cargo, Hazardous category A</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_CARGO&quot;}">GENERAL_CARGO</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:72}">72</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Cargo, Hazardous category B&quot;}">Cargo, Hazardous category B</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_CARGO&quot;}">GENERAL_CARGO</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:73}">73</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Cargo, Hazardous category C&quot;}">Cargo, Hazardous category C</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_CARGO&quot;}">GENERAL_CARGO</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:74}">74</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Cargo, Hazardous category D&quot;}">Cargo, Hazardous category D</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_CARGO&quot;}">GENERAL_CARGO</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:75}">75</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Cargo, Reserved for future use&quot;}">Cargo, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_CARGO&quot;}">GENERAL_CARGO</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:76}">76</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Cargo, Reserved for future use&quot;}">Cargo, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_CARGO&quot;}">GENERAL_CARGO</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:77}">77</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Cargo, Reserved for future use&quot;}">Cargo, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_CARGO&quot;}">GENERAL_CARGO</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:78}">78</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Cargo, Reserved for future use&quot;}">Cargo, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_CARGO&quot;}">GENERAL_CARGO</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:79}">79</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Cargo, No additional information&quot;}">Cargo, No additional information</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_CARGO&quot;}">GENERAL_CARGO</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:80}">80</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tanker, all ships of this type&quot;}">Tanker, all ships of this type</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_TANKER&quot;}">GENERAL_TANKER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:81}">81</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tanker, Hazardous category A&quot;}">Tanker, Hazardous category A</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_TANKER&quot;}">GENERAL_TANKER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:82}">82</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tanker, Hazardous category B&quot;}">Tanker, Hazardous category B</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_TANKER&quot;}">GENERAL_TANKER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:83}">83</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tanker, Hazardous category C&quot;}">Tanker, Hazardous category C</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_TANKER&quot;}">GENERAL_TANKER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:84}">84</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tanker, Hazardous category D&quot;}">Tanker, Hazardous category D</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_TANKER&quot;}">GENERAL_TANKER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:85}">85</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tanker, Reserved for future use&quot;}">Tanker, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_TANKER&quot;}">GENERAL_TANKER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:86}">86</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tanker, Reserved for future use&quot;}">Tanker, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_TANKER&quot;}">GENERAL_TANKER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:87}">87</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tanker, Reserved for future use&quot;}">Tanker, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_TANKER&quot;}">GENERAL_TANKER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:88}">88</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tanker, Reserved for future use&quot;}">Tanker, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_TANKER&quot;}">GENERAL_TANKER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:89}">89</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Tanker, No additional information&quot;}">Tanker, No additional information</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;GENERAL_TANKER&quot;}">GENERAL_TANKER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:90}">90</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Other Type, all ships of this type&quot;}">Other Type, all ships of this type</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:91}">91</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Other Type, Hazardous category A&quot;}">Other Type, Hazardous category A</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:92}">92</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Other Type, Hazardous category B&quot;}">Other Type, Hazardous category B</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:93}">93</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Other Type, Hazardous category C&quot;}">Other Type, Hazardous category C</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:94}">94</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Other Type, Hazardous category D&quot;}">Other Type, Hazardous category D</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:95}">95</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Other Type, Reserved for future use&quot;}">Other Type, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:96}">96</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Other Type, Reserved for future use&quot;}">Other Type, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:97}">97</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Other Type, Reserved for future use&quot;}">Other Type, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:98}">98</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Other Type, Reserved for future use&quot;}">Other Type, Reserved for future use</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr><tr><td data-sheets-value="{&quot;1&quot;:3,&quot;3&quot;:99}">99</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Other Type, no additional information&quot;}">Other Type, no additional information</td><td data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;OTHER&quot;}">OTHER</td></tr></tbody></table></div></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="738" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="738" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597fb9c"></div></div></div></section><section data-id="634" id="speed-over-ground-sog-rules" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/speed-over-ground-sog-rules/"><div class="wrapper clearfix"><div class="col col7"><h2>Speed over ground (sog) rules</h2><p>The AIS specification for <code>sog</code> (Speed over ground) shows that <strong>102.3 knots is reported when the vessel speed is unavailable</strong>. So for some reason the vessel is not transmitting its speed in its AIS messages. This could be a technical issue on the vessel.</p><p><em>Speed over ground in 1/10 knot steps (0-102.2 knots)</em><br /> <em>1 023 = not available, 1 022 = 102.2 knots or higher</em></p><p>In the Vessels and Messages APIs we return the values as received. We have reports that some other AIS providers take the decision to report the unknown speed value of 102.3 as zero.</p><p><strong>Technically this is wrong</strong> and while appearing correct when the vessel is in port, would not be correct when the vessel is moving or at sea.</p><p>For clarity to customers we have changed our reporting slightly in <a href="https://documentation.spire.com/maritime-2-0/vessels/">Vessels 2.0</a>; <code>sog</code> values of 102.3 are reported as <code>null</code> because several users experienced confusion from the reported value.</p><p><strong>Vessels 2.0</strong></p><pre><code data-prismjs-copy="Copy to clipboard">"collectionType": "TERRESTRIAL", "heading": 358, "speed": null, "timestamp": "2021-08-19T09:36:21.582Z"</code></pre><p><strong>Legacy Vessels API</strong></p><pre><code data-prismjs-copy="Copy to clipboard">"speed": 102.3, "rot": -1.0, "collection_type": "terrestrial", "timestamp": "2021-08-19T09:30:24+00:00"</code></pre></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="634" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="634" data-value="-1">No</a><div class="formcontainer" id="container-67b8a4597fe70"></div></div></div></section><section data-id="723" id="tokens-api-keys" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/tokens-api-keys/"><div class="wrapper clearfix"><div class="col col7"><h2>Tokens & API keys</h2><h3>Each authorization token is unique</h3><p data-id="block-ember16591" data-generated-at="15881087450330.6044811891256405" data-align="left">For the TCP feed, if your company uses multiple clients to <strong data-id="entity-ember16592">simultaneously </strong>access the Spire Maritime platform, <strong>one particular authorization token should not be shared among several users</strong>. An exception can be made if you only have one TCP client active at a time. Otherwise, doing so could result in all clients only receiving a subset of available AIS messages.</p><p data-id="block-ember16595" data-generated-at="15881087450350.43309222176031525" data-align="left">This restriction does not apply to the Maritime 2.0 API, Messages API or Vessels APIs &#8211; multiple API clients can use the same token (provided the rate of API calls remains below below about 30 calls per minute for legacy platforms and rate limiting policies are respected).</p><p data-id="block-ember16596" data-generated-at="15881087450430.09453176535890351" data-align="left">If multiple people at your company are interested in simultaneous data access, <a href="https://documentation.spire.com/make-a-support-request/" target="_blank" rel="noopener">notify the Customer Experience team so multiple tokens can be created</a>.</p><h3>What happens when my token expires?</h3><p data-id="block-ember16598" data-generated-at="15881087450440.04035318483183259" data-align="left">When the agreed upon end date of your access is reached, our services will automatically disable your authorization token. You should receive an error response to an API call such as this one (applicable for Vessels API or Messages API):</p><pre data-id="block-ember16599">13 Permission Denied Connection closed by foreign host.</code></pre><p data-id="block-ember16600" data-generated-at="15881087450460.7435528836076328" data-align="left">If you suspect this has happened in error, <a href="https://documentation.spire.com/make-a-support-request/" target="_blank" rel="noopener">please notify the Customer Experience team</a>.</p><h3>Are multiple tokens necessary to access multiple Spire Sense APIs?</h3><p data-id="block-ember16602" data-generated-at="15881087450460.15158060470138413" data-align="left">One token can be used to access all Maritime 2.0 root queries, and so is the case for Spire Maritime&#8217;s REST APIs, but they are not interchangeable between platforms (this also includes Geospatial Web Services). If you are interested in trying additional APIs, <a href="https://documentation.spire.com/make-a-support-request/" target="_blank" rel="noopener">notify the Customer Experience team</a>.</p><h3>I suspect my authorization token has been compromised</h3><p data-id="block-ember16604" data-generated-at="15881087450470.3180102999872545" data-align="left">If you unintentionally shared your authorization token with others, <a href="https://documentation.spire.com/make-a-support-request/" target="_blank" rel="noopener">notify the Customer Experience team</a> so a new authorization token can be issued. No loss in data should occur as you transition to the new token.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="723" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="723" data-value="-1">No</a><div class="formcontainer" id="container-67b8a459801dc"></div></div></div></section><section data-id="745" id="vessel-duplicates" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/vessel-duplicates/"><div class="wrapper clearfix"><div class="col col7"><h2>Vessel duplicates</h2><p>While using AIS data, there is a chance that you may have encountered the <strong>duplicate vessel</strong> challenge.</p><p>AIS does not enforce data integrity, so there are many vessels globally that, in their AIS messages, are transmitting the same MMSI and/or IMO number as other vessels.</p><p>AIS data alone does not allow identification of which vessel is correctly using an MMSI or IMO number and which is not. Because of this challenge, in legacy Vessels API, you may have seen instances of:</p><ul><li aria-level="1">2+ vessels reporting the same MMSI number (different IMO)</li><li aria-level="1">2+ vessels transmitting only the same IMO number (different MMSI)</li><li aria-level="1">2+ vessels transmitting the same IMO and MMSI number</li></ul><p>With <a href="https://documentation.spire.com/maritime-2-0/" target="_blank" rel="noopener">Maritime 2.0</a>, we have improved a logic for vessel identification that helps combat this issue.</p><p>In Vessels API, an update would only be made if the same value for a vessel was seen at least three times for static values and at least two times for voyage related fields.</p><p>In Maritime 2.0, all static messages will be considered after just two occurrences. The criteria for updating is now based on identity variables to match and create vessels. All position messages are considered for possible update after one occurrence based on two criteria: feasibility criterion on positions and selection of most plausible vessel in case of duplicated MMSIs.</p><p>In tests, we have seen a great reduction in duplicate IMO and MMSI positions. Here is a data visualization that illustrates Maritime 2.0&#8217;s improvement over the Vessels API:</p><div class="embed-container"><iframe src="https://insights.spire.com/maritime-2-0-duplicate-mmsi-example?v4"></iframe></div></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="745" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="745" data-value="-1">No</a><div class="formcontainer" id="container-67b8a45980464"></div></div></div></section><section data-id="762" id="handling-vessel-mmsi-changes" class="level2 " data-url="https://documentation.spire.com/ais-fundamentals/handling-vessel-mmsi-changes/"><div class="wrapper clearfix"><div class="col col7"><h2>Handling vessel MMSI changes</h2><p>Unique vessel identifiers are a complex topic in AIS. From a technical perspective, vessels transmit AIS messages using an <strong>MMSI</strong> (Maritime Mobile Service Identity) number as their identifier; this is especially true in <a href="https://documentation.spire.com/ais-fundamentals/ais-message-types/position-messages/" target="_blank" rel="noopener">position messages</a>, where no other identifier is present.</p><p>However, when a vessel changes its flag, its MMSI number changes as well. It will thereafter transmit all AIS messages with its new MMSI number, never again including its old MMSI number.</p><p>In <a href="https://documentation.spire.com/ais-fundamentals/ais-message-types/static-messages/" target="_blank" rel="noopener">static voyage messages</a>, however, more vessel information is available alongside the MMSI, such as:</p><ul><li aria-level="1">the <strong>IMO number</strong>, the only consistent identifier of large vessels (<strong>never changes</strong>)</li><li aria-level="1">the <strong>Name</strong> of the vessel (<strong>can change</strong>)</li><li aria-level="1">the vessel&#8217;s <strong>Dimensions</strong>, distances from the AIS transmitter to both sides, stern, and bow of the vessel (<strong>though mainly static can be adjusted by reassessment or physical changes</strong>)</li><li aria-level="1">the <strong>Callsign</strong>, a radio communication identifier linked to the flag registration (<strong>changes along with the MMSI number when a vessel changes flag</strong>)</li></ul><p>Considering that 85% of AIS messages are either static or position messages, and that the MMSI number is the only identifier in position messages, the MMSI is always used to link position messages to static voyage messages; however, in order to track vessels consistently and reliably, it is important to understand its relation to the IMO number, which is a more consistent unique identifier for larger vessels.</p><p>Here is an aggregation of AIS static data values received for a vessel which changed MMSI number:</p><div class="tablewrapper"><table style="border-collapse: collapse; width: 100%; font-size: 13px; font-family: Apercu,monospace;"><thead><tr><th style="width: 10%; height: 24px; text-align: left;">mmsi</th><th style="width: 10%; height: 24px; text-align: left;">imo</th><th style="width: 10%; height: 24px; text-align: left;">name</th><th style="width: 10%; height: 24px; text-align: left;">call_sign</th><th style="width: 10%; height: 24px; text-align: left;">length</th><th style="width: 10%; height: 24px; text-align: left;">width</th><th style="width: 10%; height: 24px; text-align: left;">type</th><th style="width: 10%; height: 24px; text-align: left;">first_timestamp</th><th style="width: 10%; height: 24px; text-align: left;">last_timestamp</th><th style="width: 10%; height: 24px; text-align: left;">msg_count</th></tr></thead><tbody><tr><td style="width: 10%; height: 48px;">538009951</td><td style="width: 10%; height: 48px;">9150406</td><td style="width: 10%; height: 48px;">SMILEY LADY</td><td style="width: 10%; height: 48px;">V7A5382</td><td style="width: 10%; height: 48px;">183.0</td><td style="width: 10%; height: 48px;">25.0</td><td style="width: 10%; height: 48px;">70</td><td style="width: 10%; height: 48px;">2022-04-11 09:26:02 UTC</td><td style="width: 10%; height: 48px;">2022-04-11 15:08:035 UTC</td><td style="width: 10%; height: 48px;">104</td></tr><tr><td style="width: 10%; height: 48px;">311000889</td><td style="width: 10%; height: 48px;">9150406</td><td style="width: 10%; height: 48px;">SMILEY LADY</td><td style="width: 10%; height: 48px;">C6EG6</td><td style="width: 10%; height: 48px;">183.0</td><td style="width: 10%; height: 48px;">25.0</td><td style="width: 10%; height: 48px;">70</td><td style="width: 10%; height: 48px;">2022-03-13 00:02:00 UTC</td><td style="width: 10%; height: 48px;">2022-04-11 08:56:00 UTC</td><td style="width: 10%; height: 48px;">10408</td></tr></tbody></table></div><p>This vessel, with IMO <code>9150406</code>, stopped transmitting AIS messages using the MMSI <code>311000889</code> at <code>22-04-11 08:56:00 UTC</code>; from then on, it transmitted AIS messages using the MMSI <code>538009951</code>, with the first AIS static message using that MMSI being received at <code>2022-04-11 09:26:02 UTC</code>. All subsequent AIS messages from this vessel use that MMSI number.</p><p>When a vessel changes MMSI number like this, the old version of the vessel remains in the system and a new vessel is created that reports the new MMSI and IMO combination. This is true for both the <a href="https://documentation.spire.com/maritime-2-0/" target="_blank" rel="noopener">Maritime 2.0</a> and the legacy <a href="https://documentation.spire.com/vessels-api/" target="_blank" rel="noopener">Vessels API</a> platform.</p><p>This means that querying based on the <code>imo</code> or <code>name</code> fields (two identifiers which stayed the same in both the old and new <code>mmsi</code> versions) <strong>will return both the old and new version of the vessel</strong>, whereas querying by the <code>mmsi</code> field, using the old or new values, <strong>will only return the corresponding entries</strong>. Likewise, querying on time-based, recent updates using the <code>lastPositionUpdated</code> filter <strong>will only return the new vessel</strong>.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="762" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="762" data-value="-1">No</a><div class="formcontainer" id="container-67b8a459808dd"></div></div></div></section></div></main><footer class="simple"><nav class="wrapper clearfix" id="postfooterlegal"><div class="col col12"> <a target="_blank" href="https://spire.com" id="copyright">© Spire Global</a><ul id="socialicons"><li><a href="https://www.facebook.com/spireglobal/" target="_blank" rel="noopener nofollow" title="Spire on Facebok"><i class="icon-facebook"></i></a></li><li><a href="https://twitter.com/SpireGlobal" rel="noopener nofollow" target="_blank" title="Spire on Twitter"><i class="icon-twitter"></i></a></li><li><a href="https://www.linkedin.com/company/spireglobal/" rel="noopener nofollow" target="_blank" title="Spire on LinkedIn"><i class="icon-linkedin"></i></a></li></ul><ul id="legalmenu"><li id="menu-item-995" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-995"><a target="_blank" href="https://spire.com/legal-disclaimer/">Legal Disclaimer</a></li><li id="menu-item-994" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-994"><a target="_blank" href="https://spire.com/privacy-policy/">Privacy Policy</a></li><li id="menu-item-1604" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1604"><a target="_blank" href="https://spire.com/cookie-policy/">Cookie Policy</a></li><li id="menu-item-5108" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5108"><a target="_blank" href="https://spire.com/accessibility/">Accessibility</a></li><li id="menu-item-3372" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3372"><a target="_blank" href="https://spire.com/our-data/terms-of-use/">Spire Online Data Terms &amp; Conditions</a></li><li id="menu-item-9107" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-9107"><a target="_blank" href="https://spire.com/uk-modern-slavery-act-statement/">UK Modern Slavery Act Statement</a></li></ul></div></nav></footer><div id="searchpane"><div><div class="clearfix boxed"><form role="search" method="get" class="search-form" action="/" style="position: relative;"> <label> <span class="screen-reader-text sr-only">Search for:</span> <input type="search" class="search-field" placeholder="What are you looking for? Start typing to get suggestions..." name="s" data-rlvlive="true" data-rlvparentel="#rlvlive" data-rlvconfig="default"> </label><div id="rlvlive"></div></form></div></div></div> <script defer type="text/javascript" src="https://spire.com/wp-content/themes/spire2021/js/a.min.js?ver=6.7.1" id="a-js"></script> <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/gsap@3.6.0/dist/gsap.min.js?ver=6.7.1" id="gsap-js"></script> <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/gsap@3.6.0/dist/ScrollToPlugin.min.js?ver=6.7.1" id="gsap-scrollto-js"></script> <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/magnific-popup@1.1.0/dist/jquery.magnific-popup.min.js?ver=6.7.1" id="magnific-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_732d7fed67b698060223c7dc92318ea6.js?ver=1688136661" id="hubspot_lazy-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_8edcd5e59604e4fac5cf09494e6e2e15.js?ver=1679901433" id="imagepopup-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_c1c14bd64724eeeb816c72a664df7c24.js?ver=1679901433" id="popups-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_22d0c5f859ca466f5a015027d8fb3c17.js?ver=1679901433" id="feedback-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_3437dec8868ec14c38ea419b6e579a1d.js?ver=1679901433" id="most-visible-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_1135a95fb193562bd845ac465b56ee1d.js?ver=1698917261" id="documentation-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_a1a75439e41e75d4bc2ebcab10ddf91e.js?ver=1688995362" id="videochapters-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_431c5c8a3066177634667f012c12ab7c.js?ver=1679901433" id="search-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_17c54228666c5eb9b444388eb2e34b85.js?ver=1679901433" id="darkmode-js"></script> <script defer type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.0.0/highlight.min.js?ver=6.7.1" id="highlightjs-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_b1ac170c5c279a0f8f903636fa53b6d2.js?ver=1679901433" id="syntaxhighlighting-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_e59cb0bed635764fe5fa0122cbb2e39e.js?ver=6.7.1" id="prism-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_35f9d357c473ec32bafdd2909788f94a.js?ver=1679901433" id="menu-js"></script> <script defer id="relevanssi-live-search-client-js-extra" src="data:text/javascript;base64,dmFyIHJlbGV2YW5zc2lfbGl2ZV9zZWFyY2hfcGFyYW1zPVtdO3JlbGV2YW5zc2lfbGl2ZV9zZWFyY2hfcGFyYW1zPXsiYWpheHVybCI6Imh0dHBzOlwvXC9kb2N1bWVudGF0aW9uLnNwaXJlLmNvbVwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwiY29uZmlnIjp7ImRlZmF1bHQiOnsiaW5wdXQiOnsiZGVsYXkiOjMwMCwibWluX2NoYXJzIjozfSwicmVzdWx0cyI6eyJwb3NpdGlvbiI6ImJvdHRvbSIsIndpZHRoIjoiYXV0byIsIm9mZnNldCI6eyJ4IjowLCJ5Ijo1fSwic3RhdGljX29mZnNldCI6dHJ1ZX19fSwibXNnX25vX2NvbmZpZ19mb3VuZCI6Ik5vIHZhbGlkIFJlbGV2YW5zc2kgTGl2ZSBTZWFyY2ggY29uZmlndXJhdGlvbiBmb3VuZCEiLCJtc2dfbG9hZGluZ19yZXN1bHRzIjoiTG9hZGluZyBzZWFyY2ggcmVzdWx0cy4iLCJtZXNzYWdlc190ZW1wbGF0ZSI6IjxkaXYgY2xhc3M9XCJsaXZlLWFqYXgtbWVzc2FnZXNcIj5cblx0PGRpdiBpZD1cInJlbGV2YW5zc2ktbGl2ZS1hamF4LXNlYXJjaC1zcGlubmVyXCI+PFwvZGl2PlxuPFwvZGl2PlxuIn07Ow=="></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/plugins/relevanssi-live-ajax-search/assets/javascript/dist/script.min.js?ver=2.4" id="relevanssi-live-search-client-js"></script> </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10