[{"data":1,"prerenderedAt":2484},["ShallowReactive",2],{"docs-en-\u002Fdocs\u002Fapi":3},{"id":4,"title":5,"body":6,"description":2476,"extension":2477,"meta":2478,"navigation":2479,"path":2480,"seo":2481,"stem":2482,"__hash__":2483},"docs_en\u002Fdocs\u002Fapi\u002Findex.md","HTTPS API",{"type":7,"value":8,"toc":2457},"minimark",[9,14,18,29,36,41,83,486,490,493,501,512,560,638,641,644,648,651,697,708,712,719,753,763,769,772,776,783,786,806,969,992,998,1002,1005,1067,1091,1113,1134,1137,1278,1280,1329,1338,1345,1348,1354,1357,1361,1367,1391,1399,1415,1418,1422,1425,1504,1536,1828,1840,1846,1871,1881,1892,1896,1899,1986,1992,1999,2103,2106,2112,2121,2123,2127,2130,2167,2179,2381,2384,2441,2445,2453],[10,11,13],"h1",{"id":12},"pelyr-open-ais-data-api","Pelyr OPEN-AIS Data API",[15,16,17],"p",{},"HTTP API for AIS vessel data: live positions, vessel details, and historical\ntracks.",[15,19,20,24,25],{},[21,22,23],"strong",{},"Base URL:"," ",[26,27,28],"code",{},"https:\u002F\u002Fapi.pelyr.com",[15,30,31,32,35],{},"If you need a continuous feed rather than polling, use the WebSocket stream at\n",[26,33,34],{},"wss:\u002F\u002Fstream.pelyr.com"," instead. Both use the same API key.",[37,38,40],"h2",{"id":39},"quick-start","Quick start",[42,43,48],"pre",{"className":44,"code":45,"language":46,"meta":47,"style":47},"language-bash shiki shiki-themes github-light github-dark","curl -H \"Authorization: Bearer $PELYR_KEY\" \\\n  \"https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fvessels?bbox=5,51,7,52&max=100\"\n","bash","",[26,49,50,77],{"__ignoreMap":47},[51,52,55,59,63,67,71,74],"span",{"class":53,"line":54},"line",1,[51,56,58],{"class":57},"sScJk","curl",[51,60,62],{"class":61},"sj4cs"," -H",[51,64,66],{"class":65},"sZZnC"," \"Authorization: Bearer ",[51,68,70],{"class":69},"sVt8B","$PELYR_KEY",[51,72,73],{"class":65},"\"",[51,75,76],{"class":61}," \\\n",[51,78,80],{"class":53,"line":79},2,[51,81,82],{"class":65},"  \"https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fvessels?bbox=5,51,7,52&max=100\"\n",[42,84,88],{"className":85,"code":86,"language":87,"meta":47,"style":47},"language-json shiki shiki-themes github-light github-dark","{\n  \"generated_at\": \"2026-08-30T14:22:10Z\",\n  \"count\": 1,\n  \"truncated\": false,\n  \"vessels\": [\n    {\n      \"mmsi\": 244660123,\n      \"position\": {\n        \"lat\": 51.18597, \"lon\": 5.964237, \"sog\": 6.8, \"cog\": 90.8,\n        \"heading\": 273, \"nav_status\": 0, \"rot\": null, \"pos_accuracy\": false,\n        \"msg_type\": 1, \"ts\": \"2026-08-30T14:22:11Z\", \"license\": \"100\"\n      },\n      \"static\": {\n        \"name\": \"EXAMPLE TRADER\", \"type\": 70, \"imo\": 9543756,\n        \"callsign\": \"V7WW7\", \"dest\": \"ROTTERDAM\", \"draught\": 6.8,\n        \"eta\": \"11-06T03:00\", \"length\": 257, \"beam\": 43,\n        \"dim_a\": 214, \"dim_b\": 43, \"dim_c\": 24, \"dim_d\": 19,\n        \"ts\": \"2026-08-30T13:47:02Z\", \"license\": \"1\"\n      }\n    }\n  ]\n}\n","json",[26,89,90,95,109,122,135,144,150,163,172,216,258,288,294,302,335,367,400,442,462,468,474,480],{"__ignoreMap":47},[51,91,92],{"class":53,"line":54},[51,93,94],{"class":69},"{\n",[51,96,97,100,103,106],{"class":53,"line":79},[51,98,99],{"class":61},"  \"generated_at\"",[51,101,102],{"class":69},": ",[51,104,105],{"class":65},"\"2026-08-30T14:22:10Z\"",[51,107,108],{"class":69},",\n",[51,110,112,115,117,120],{"class":53,"line":111},3,[51,113,114],{"class":61},"  \"count\"",[51,116,102],{"class":69},[51,118,119],{"class":61},"1",[51,121,108],{"class":69},[51,123,125,128,130,133],{"class":53,"line":124},4,[51,126,127],{"class":61},"  \"truncated\"",[51,129,102],{"class":69},[51,131,132],{"class":61},"false",[51,134,108],{"class":69},[51,136,138,141],{"class":53,"line":137},5,[51,139,140],{"class":61},"  \"vessels\"",[51,142,143],{"class":69},": [\n",[51,145,147],{"class":53,"line":146},6,[51,148,149],{"class":69},"    {\n",[51,151,153,156,158,161],{"class":53,"line":152},7,[51,154,155],{"class":61},"      \"mmsi\"",[51,157,102],{"class":69},[51,159,160],{"class":61},"244660123",[51,162,108],{"class":69},[51,164,166,169],{"class":53,"line":165},8,[51,167,168],{"class":61},"      \"position\"",[51,170,171],{"class":69},": {\n",[51,173,175,178,180,183,186,189,191,194,196,199,201,204,206,209,211,214],{"class":53,"line":174},9,[51,176,177],{"class":61},"        \"lat\"",[51,179,102],{"class":69},[51,181,182],{"class":61},"51.18597",[51,184,185],{"class":69},", ",[51,187,188],{"class":61},"\"lon\"",[51,190,102],{"class":69},[51,192,193],{"class":61},"5.964237",[51,195,185],{"class":69},[51,197,198],{"class":61},"\"sog\"",[51,200,102],{"class":69},[51,202,203],{"class":61},"6.8",[51,205,185],{"class":69},[51,207,208],{"class":61},"\"cog\"",[51,210,102],{"class":69},[51,212,213],{"class":61},"90.8",[51,215,108],{"class":69},[51,217,219,222,224,227,229,232,234,237,239,242,244,247,249,252,254,256],{"class":53,"line":218},10,[51,220,221],{"class":61},"        \"heading\"",[51,223,102],{"class":69},[51,225,226],{"class":61},"273",[51,228,185],{"class":69},[51,230,231],{"class":61},"\"nav_status\"",[51,233,102],{"class":69},[51,235,236],{"class":61},"0",[51,238,185],{"class":69},[51,240,241],{"class":61},"\"rot\"",[51,243,102],{"class":69},[51,245,246],{"class":61},"null",[51,248,185],{"class":69},[51,250,251],{"class":61},"\"pos_accuracy\"",[51,253,102],{"class":69},[51,255,132],{"class":61},[51,257,108],{"class":69},[51,259,261,264,266,268,270,273,275,278,280,283,285],{"class":53,"line":260},11,[51,262,263],{"class":61},"        \"msg_type\"",[51,265,102],{"class":69},[51,267,119],{"class":61},[51,269,185],{"class":69},[51,271,272],{"class":61},"\"ts\"",[51,274,102],{"class":69},[51,276,277],{"class":65},"\"2026-08-30T14:22:11Z\"",[51,279,185],{"class":69},[51,281,282],{"class":61},"\"license\"",[51,284,102],{"class":69},[51,286,287],{"class":65},"\"100\"\n",[51,289,291],{"class":53,"line":290},12,[51,292,293],{"class":69},"      },\n",[51,295,297,300],{"class":53,"line":296},13,[51,298,299],{"class":61},"      \"static\"",[51,301,171],{"class":69},[51,303,305,308,310,313,315,318,320,323,325,328,330,333],{"class":53,"line":304},14,[51,306,307],{"class":61},"        \"name\"",[51,309,102],{"class":69},[51,311,312],{"class":65},"\"EXAMPLE TRADER\"",[51,314,185],{"class":69},[51,316,317],{"class":61},"\"type\"",[51,319,102],{"class":69},[51,321,322],{"class":61},"70",[51,324,185],{"class":69},[51,326,327],{"class":61},"\"imo\"",[51,329,102],{"class":69},[51,331,332],{"class":61},"9543756",[51,334,108],{"class":69},[51,336,338,341,343,346,348,351,353,356,358,361,363,365],{"class":53,"line":337},15,[51,339,340],{"class":61},"        \"callsign\"",[51,342,102],{"class":69},[51,344,345],{"class":65},"\"V7WW7\"",[51,347,185],{"class":69},[51,349,350],{"class":61},"\"dest\"",[51,352,102],{"class":69},[51,354,355],{"class":65},"\"ROTTERDAM\"",[51,357,185],{"class":69},[51,359,360],{"class":61},"\"draught\"",[51,362,102],{"class":69},[51,364,203],{"class":61},[51,366,108],{"class":69},[51,368,370,373,375,378,380,383,385,388,390,393,395,398],{"class":53,"line":369},16,[51,371,372],{"class":61},"        \"eta\"",[51,374,102],{"class":69},[51,376,377],{"class":65},"\"11-06T03:00\"",[51,379,185],{"class":69},[51,381,382],{"class":61},"\"length\"",[51,384,102],{"class":69},[51,386,387],{"class":61},"257",[51,389,185],{"class":69},[51,391,392],{"class":61},"\"beam\"",[51,394,102],{"class":69},[51,396,397],{"class":61},"43",[51,399,108],{"class":69},[51,401,403,406,408,411,413,416,418,420,422,425,427,430,432,435,437,440],{"class":53,"line":402},17,[51,404,405],{"class":61},"        \"dim_a\"",[51,407,102],{"class":69},[51,409,410],{"class":61},"214",[51,412,185],{"class":69},[51,414,415],{"class":61},"\"dim_b\"",[51,417,102],{"class":69},[51,419,397],{"class":61},[51,421,185],{"class":69},[51,423,424],{"class":61},"\"dim_c\"",[51,426,102],{"class":69},[51,428,429],{"class":61},"24",[51,431,185],{"class":69},[51,433,434],{"class":61},"\"dim_d\"",[51,436,102],{"class":69},[51,438,439],{"class":61},"19",[51,441,108],{"class":69},[51,443,445,448,450,453,455,457,459],{"class":53,"line":444},18,[51,446,447],{"class":61},"        \"ts\"",[51,449,102],{"class":69},[51,451,452],{"class":65},"\"2026-08-30T13:47:02Z\"",[51,454,185],{"class":69},[51,456,282],{"class":61},[51,458,102],{"class":69},[51,460,461],{"class":65},"\"1\"\n",[51,463,465],{"class":53,"line":464},19,[51,466,467],{"class":69},"      }\n",[51,469,471],{"class":53,"line":470},20,[51,472,473],{"class":69},"    }\n",[51,475,477],{"class":53,"line":476},21,[51,478,479],{"class":69},"  ]\n",[51,481,483],{"class":53,"line":482},22,[51,484,485],{"class":69},"}\n",[37,487,489],{"id":488},"authentication","Authentication",[15,491,492],{},"Send your key as a bearer token:",[42,494,499],{"className":495,"code":497,"language":498},[496],"language-text","Authorization: Bearer pk_\u003C43 characters>_\u003Cchecksum>\n","text",[26,500,497],{"__ignoreMap":47},[15,502,503,504,507,508,511],{},"The key must have the ",[26,505,506],{},"https"," capability. Keys are created in the portal; the\nsame key works for the WebSocket stream if it also carries ",[26,509,510],{},"stream",".",[15,513,514,517,518,521,522,185,525,108,528,185,531,185,534,185,537,185,540,185,543,108,546,185,549,552,553,556,557,511],{},[21,515,516],{},"Do not put the key in the query string."," Requests without an\n",[26,519,520],{},"Authorization"," header that carry a query parameter named ",[26,523,524],{},"key",[26,526,527],{},"token",[26,529,530],{},"api_key",[26,532,533],{},"apikey",[26,535,536],{},"access_token",[26,538,539],{},"access-token",[26,541,542],{},"api-key",[26,544,545],{},"auth",[26,547,548],{},"bearer",[26,550,551],{},"secret",", or ",[26,554,555],{},"sig"," are rejected with ",[26,558,559],{},"400 key_in_query",[561,562,563,579],"table",{},[564,565,566],"thead",{},[567,568,569,573,576],"tr",{},[570,571,572],"th",{},"Situation",[570,574,575],{},"Status",[570,577,578],{},"Code",[580,581,582,599,610,623],"tbody",{},[567,583,584,591,594],{},[585,586,587,588,590],"td",{},"No or malformed ",[26,589,520],{}," header",[585,592,593],{},"401",[585,595,596],{},[26,597,598],{},"unauthorized",[567,600,601,604,606],{},[585,602,603],{},"Unknown, malformed, or revoked key",[585,605,593],{},[585,607,608],{},[26,609,598],{},[567,611,612,615,618],{},[585,613,614],{},"Account suspended",[585,616,617],{},"403",[585,619,620],{},[26,621,622],{},"stream_account_suspended",[567,624,625,631,633],{},[585,626,627,628,630],{},"Key lacks the ",[26,629,506],{}," capability",[585,632,617],{},[585,634,635],{},[26,636,637],{},"forbidden",[15,639,640],{},"Revocation takes effect immediately.",[15,642,643],{},"There are no CORS headers; the API is not callable from browser page code.",[37,645,647],{"id":646},"rate-limits","Rate limits",[15,649,650],{},"Sliding 60-second window, counted per key. Three independent budgets:",[561,652,653,663],{},[564,654,655],{},[567,656,657,660],{},[570,658,659],{},"Endpoints",[570,661,662],{},"Limit",[580,664,665,678,687],{},[567,666,667,675],{},[585,668,669,185,672],{},[26,670,671],{},"\u002Fv1\u002Fvessels",[26,673,674],{},"\u002Fv1\u002Fvessels\u002F{mmsi}",[585,676,677],{},"12 requests \u002F minute",[567,679,680,685],{},[585,681,682],{},[26,683,684],{},"\u002Fv1\u002Fvessels\u002F{mmsi}\u002Ftrack",[585,686,677],{},[567,688,689,694],{},[585,690,691],{},[26,692,693],{},"\u002Fv1\u002Fsources",[585,695,696],{},"1 request \u002F minute",[15,698,699,700,703,704,707],{},"Exhausting one budget does not affect the others. Over the limit you get\n",[26,701,702],{},"429 rate_limited"," with a ",[26,705,706],{},"Retry-After"," header in whole seconds.",[37,709,711],{"id":710},"conditional-requests","Conditional requests",[15,713,714,715,718],{},"Every successful response carries a strong ",[26,716,717],{},"ETag",". Send it back to avoid\ntransferring an unchanged body:",[42,720,722],{"className":44,"code":721,"language":46,"meta":47,"style":47},"curl -H \"Authorization: Bearer $PELYR_KEY\" \\\n     -H 'If-None-Match: \"8f43a1...\"' \\\n     \"https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fvessels?bbox=5,51,7,52\"\n",[26,723,724,738,748],{"__ignoreMap":47},[51,725,726,728,730,732,734,736],{"class":53,"line":54},[51,727,58],{"class":57},[51,729,62],{"class":61},[51,731,66],{"class":65},[51,733,70],{"class":69},[51,735,73],{"class":65},[51,737,76],{"class":61},[51,739,740,743,746],{"class":53,"line":79},[51,741,742],{"class":61},"     -H",[51,744,745],{"class":65}," 'If-None-Match: \"8f43a1...\"'",[51,747,76],{"class":61},[51,749,750],{"class":53,"line":111},[51,751,752],{"class":65},"     \"https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fvessels?bbox=5,51,7,52\"\n",[15,754,755,756,759,760,762],{},"An unchanged result returns ",[26,757,758],{},"304"," with no body. A ",[26,761,758],{}," counts against your\nrate limit.",[15,764,765,766,511],{},"Every response carries ",[26,767,768],{},"Cache-Control: private, no-cache",[770,771],"hr",{},[37,773,775],{"id":774},"get-v1sources","GET \u002Fv1\u002Fsources",[15,777,778,779,782],{},"The attribution directory. Every position and static record carries a\n",[26,780,781],{},"license"," id; this endpoint resolves those ids to licence, source, and the\nattribution line you must display.",[15,784,785],{},"No parameters.",[42,787,789],{"className":44,"code":788,"language":46,"meta":47,"style":47},"curl -H \"Authorization: Bearer $PELYR_KEY\" https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fsources\n",[26,790,791],{"__ignoreMap":47},[51,792,793,795,797,799,801,803],{"class":53,"line":54},[51,794,58],{"class":57},[51,796,62],{"class":61},[51,798,66],{"class":65},[51,800,70],{"class":69},[51,802,73],{"class":65},[51,804,805],{"class":65}," https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fsources\n",[42,807,809],{"className":85,"code":808,"language":87,"meta":47,"style":47},"{\n  \"generated_at\": \"2026-08-30T14:20:00Z\",\n  \"sources\": [\n    {\"id\": \"0\", \"license\": \"NOASSERTION\", \"source\": \"\", \"attribution\": \"\"},\n    {\"id\": \"1\", \"license\": \"Pelyr\", \"source\": \"Pelyr\",\n     \"attribution\": \"Data provided by Pelyr\"},\n    {\"id\": \"100\", \"license\": \"CC-BY-4.0\", \"source\": \"Digitraffic Finnland\",\n     \"attribution\": \"Traffic data from Fintraffic \u002F digitraffic.fi, licence CC BY 4.0\"}\n  ]\n}\n",[26,810,811,815,826,833,877,907,919,950,961,965],{"__ignoreMap":47},[51,812,813],{"class":53,"line":54},[51,814,94],{"class":69},[51,816,817,819,821,824],{"class":53,"line":79},[51,818,99],{"class":61},[51,820,102],{"class":69},[51,822,823],{"class":65},"\"2026-08-30T14:20:00Z\"",[51,825,108],{"class":69},[51,827,828,831],{"class":53,"line":111},[51,829,830],{"class":61},"  \"sources\"",[51,832,143],{"class":69},[51,834,835,838,841,843,846,848,850,852,855,857,860,862,865,867,870,872,874],{"class":53,"line":124},[51,836,837],{"class":69},"    {",[51,839,840],{"class":61},"\"id\"",[51,842,102],{"class":69},[51,844,845],{"class":65},"\"0\"",[51,847,185],{"class":69},[51,849,282],{"class":61},[51,851,102],{"class":69},[51,853,854],{"class":65},"\"NOASSERTION\"",[51,856,185],{"class":69},[51,858,859],{"class":61},"\"source\"",[51,861,102],{"class":69},[51,863,864],{"class":65},"\"\"",[51,866,185],{"class":69},[51,868,869],{"class":61},"\"attribution\"",[51,871,102],{"class":69},[51,873,864],{"class":65},[51,875,876],{"class":69},"},\n",[51,878,879,881,883,885,888,890,892,894,897,899,901,903,905],{"class":53,"line":137},[51,880,837],{"class":69},[51,882,840],{"class":61},[51,884,102],{"class":69},[51,886,887],{"class":65},"\"1\"",[51,889,185],{"class":69},[51,891,282],{"class":61},[51,893,102],{"class":69},[51,895,896],{"class":65},"\"Pelyr\"",[51,898,185],{"class":69},[51,900,859],{"class":61},[51,902,102],{"class":69},[51,904,896],{"class":65},[51,906,108],{"class":69},[51,908,909,912,914,917],{"class":53,"line":146},[51,910,911],{"class":61},"     \"attribution\"",[51,913,102],{"class":69},[51,915,916],{"class":65},"\"Data provided by Pelyr\"",[51,918,876],{"class":69},[51,920,921,923,925,927,930,932,934,936,939,941,943,945,948],{"class":53,"line":152},[51,922,837],{"class":69},[51,924,840],{"class":61},[51,926,102],{"class":69},[51,928,929],{"class":65},"\"100\"",[51,931,185],{"class":69},[51,933,282],{"class":61},[51,935,102],{"class":69},[51,937,938],{"class":65},"\"CC-BY-4.0\"",[51,940,185],{"class":69},[51,942,859],{"class":61},[51,944,102],{"class":69},[51,946,947],{"class":65},"\"Digitraffic Finnland\"",[51,949,108],{"class":69},[51,951,952,954,956,959],{"class":53,"line":165},[51,953,911],{"class":61},[51,955,102],{"class":69},[51,957,958],{"class":65},"\"Traffic data from Fintraffic \u002F digitraffic.fi, licence CC BY 4.0\"",[51,960,485],{"class":69},[51,962,963],{"class":53,"line":174},[51,964,479],{"class":69},[51,966,967],{"class":53,"line":218},[51,968,485],{"class":69},[15,970,971,972,974,975,977,978,981,982,974,985,988,989,991],{},"Ids ",[26,973,236],{}," and ",[26,976,119],{}," are always present. ",[26,979,980],{},"id"," is always a string, even though it\nlooks like a number. ",[26,983,984],{},"source",[26,986,987],{},"attribution"," may be empty strings, but are\nnever ",[26,990,246],{}," and never absent.",[15,993,994,995,997],{},"The directory changes rarely. Fetch it once and resolve ",[26,996,781],{}," ids locally;\nthe endpoint allows one request per minute.",[37,999,1001],{"id":1000},"get-v1vessels","GET \u002Fv1\u002Fvessels",[15,1003,1004],{},"All vessels currently inside a bounding box.",[561,1006,1007,1023],{},[564,1008,1009],{},[567,1010,1011,1014,1017,1020],{},[570,1012,1013],{},"Parameter",[570,1015,1016],{},"Required",[570,1018,1019],{},"Default",[570,1021,1022],{},"Notes",[580,1024,1025,1051],{},[567,1026,1027,1032,1035,1038],{},[585,1028,1029],{},[26,1030,1031],{},"bbox",[585,1033,1034],{},"yes",[585,1036,1037],{},"—",[585,1039,1040,1043,1044,185,1047,1050],{},[26,1041,1042],{},"west,south,east,north"," in degrees. ",[26,1045,1046],{},"west \u003C east",[26,1048,1049],{},"south \u003C north",". Boxes crossing the antimeridian are not supported.",[567,1052,1053,1058,1061,1064],{},[585,1054,1055],{},[26,1056,1057],{},"max",[585,1059,1060],{},"no",[585,1062,1063],{},"2000",[585,1065,1066],{},"1 to 15000.",[42,1068,1070],{"className":44,"code":1069,"language":46,"meta":47,"style":47},"curl -H \"Authorization: Bearer $PELYR_KEY\" \\\n  \"https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fvessels?bbox=5,51,7,52&max=500\"\n",[26,1071,1072,1086],{"__ignoreMap":47},[51,1073,1074,1076,1078,1080,1082,1084],{"class":53,"line":54},[51,1075,58],{"class":57},[51,1077,62],{"class":61},[51,1079,66],{"class":65},[51,1081,70],{"class":69},[51,1083,73],{"class":65},[51,1085,76],{"class":61},[51,1087,1088],{"class":53,"line":79},[51,1089,1090],{"class":65},"  \"https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fvessels?bbox=5,51,7,52&max=500\"\n",[15,1092,1093,1094,185,1097,185,1100,185,1103,1106,1107,1109,1110,511],{},"Response fields: ",[26,1095,1096],{},"generated_at",[26,1098,1099],{},"count",[26,1101,1102],{},"truncated",[26,1104,1105],{},"vessels[]",". ",[26,1108,1099],{}," is\nthe number of vessels actually delivered — it always equals the length of\n",[26,1111,1112],{},"vessels",[15,1114,1115,1116,185,1119,1122,1123,1106,1126,1133],{},"Each vessel has ",[26,1117,1118],{},"mmsi",[26,1120,1121],{},"position",", and optionally ",[26,1124,1125],{},"static",[21,1127,1128,1130,1131],{},[26,1129,1125],{}," is\nomitted entirely, not set to ",[26,1132,246],{},", while no static message has arrived for\nthat vessel — expect it to be missing for up to six minutes after a vessel\nfirst appears.",[1135,1136,1121],"h3",{"id":1121},[561,1138,1139,1152],{},[564,1140,1141],{},[567,1142,1143,1146,1149],{},[570,1144,1145],{},"Field",[570,1147,1148],{},"Unit",[570,1150,1151],{},"Nullable",[580,1153,1154,1169,1181,1193,1205,1217,1229,1241,1253,1265],{},[567,1155,1156,1164,1167],{},[585,1157,1158,185,1161],{},[26,1159,1160],{},"lat",[26,1162,1163],{},"lon",[585,1165,1166],{},"degrees, WGS 84",[585,1168,1060],{},[567,1170,1171,1176,1179],{},[585,1172,1173],{},[26,1174,1175],{},"sog",[585,1177,1178],{},"knots",[585,1180,1034],{},[567,1182,1183,1188,1191],{},[585,1184,1185],{},[26,1186,1187],{},"cog",[585,1189,1190],{},"degrees",[585,1192,1034],{},[567,1194,1195,1200,1203],{},[585,1196,1197],{},[26,1198,1199],{},"heading",[585,1201,1202],{},"degrees true",[585,1204,1034],{},[567,1206,1207,1212,1215],{},[585,1208,1209],{},[26,1210,1211],{},"nav_status",[585,1213,1214],{},"AIS navigational status, 0–15",[585,1216,1034],{},[567,1218,1219,1224,1227],{},[585,1220,1221],{},[26,1222,1223],{},"rot",[585,1225,1226],{},"degrees per minute",[585,1228,1034],{},[567,1230,1231,1236,1239],{},[585,1232,1233],{},[26,1234,1235],{},"pos_accuracy",[585,1237,1238],{},"boolean",[585,1240,1034],{},[567,1242,1243,1248,1251],{},[585,1244,1245],{},[26,1246,1247],{},"msg_type",[585,1249,1250],{},"AIS message type, 1–27",[585,1252,1034],{},[567,1254,1255,1260,1263],{},[585,1256,1257],{},[26,1258,1259],{},"ts",[585,1261,1262],{},"reception time, ISO 8601 UTC",[585,1264,1060],{},[567,1266,1267,1271,1276],{},[585,1268,1269],{},[26,1270,781],{},[585,1272,1273,1274],{},"licence id, see ",[26,1275,693],{},[585,1277,1060],{},[1135,1279,1125],{"id":1125},[15,1281,1282,185,1285,185,1288,185,1291,185,1294,185,1297,185,1300,185,1303,185,1306,108,1309,1312,1313,185,1316,185,1318,1320,1321,1106,1323,1325,1326,1328],{},[26,1283,1284],{},"name",[26,1286,1287],{},"type",[26,1289,1290],{},"imo",[26,1292,1293],{},"callsign",[26,1295,1296],{},"dest",[26,1298,1299],{},"draught",[26,1301,1302],{},"eta",[26,1304,1305],{},"length",[26,1307,1308],{},"beam",[26,1310,1311],{},"dim_a"," to ",[26,1314,1315],{},"dim_d",[26,1317,1259],{},[26,1319,781],{},". All values may be ",[26,1322,246],{},[26,1324,1305],{}," and\n",[26,1327,1308],{}," are metres, derived from the four antenna offsets.",[15,1330,1331,974,1334,1337],{},[26,1332,1333],{},"position.license",[26,1335,1336],{},"static.license"," can differ — the two records may come\nfrom different sources.",[1135,1339,1341,1342,1344],{"id":1340},"when-truncated-is-true","When ",[26,1343,1102],{}," is true",[15,1346,1347],{},"More vessels were in the box than were delivered. The ones you get are spread\nacross the box rather than clustered in one corner.",[15,1349,1350,1351,1353],{},"To get full coverage, split the box into smaller ones. Raising ",[26,1352,1057],{}," returns\nmore vessels from the same area.",[15,1355,1356],{},"Vessels above 85.05°N or below 85.05°S never appear here. Fetch them\nindividually by MMSI. This will be fixed soon.",[37,1358,1360],{"id":1359},"get-v1vesselsmmsi","GET \u002Fv1\u002Fvessels\u002F{mmsi}",[15,1362,1363,1364,1366],{},"One vessel, same shape as an entry in ",[26,1365,1105],{}," — no envelope.",[42,1368,1370],{"className":44,"code":1369,"language":46,"meta":47,"style":47},"curl -H \"Authorization: Bearer $PELYR_KEY\" \\\n  https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fvessels\u002F244660123\n",[26,1371,1372,1386],{"__ignoreMap":47},[51,1373,1374,1376,1378,1380,1382,1384],{"class":53,"line":54},[51,1375,58],{"class":57},[51,1377,62],{"class":61},[51,1379,66],{"class":65},[51,1381,70],{"class":69},[51,1383,73],{"class":65},[51,1385,76],{"class":61},[51,1387,1388],{"class":53,"line":79},[51,1389,1390],{"class":65},"  https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fvessels\u002F244660123\n",[15,1392,1393,1395,1396,511],{},[26,1394,1118],{}," must be between 100000000 and 999999999; anything else is ",[26,1397,1398],{},"422",[15,1400,1401,1407,1408,1410,1411,1414],{},[21,1402,1403,1406],{},[26,1404,1405],{},"404"," means \"nothing heard from this vessel for over an hour\", not \"no such\nvessel\"."," There is no ship register behind this API. A valid MMSI can return\n",[26,1409,1405],{}," now and ",[26,1412,1413],{},"200"," an hour later.",[15,1416,1417],{},"This is also the only way to reach a vessel outside the polar limits of the\nbox query.",[37,1419,1421],{"id":1420},"get-v1vesselsmmsitrack","GET \u002Fv1\u002Fvessels\u002F{mmsi}\u002Ftrack",[15,1423,1424],{},"Positions of one vessel over time, bucketed to a fixed resolution.",[561,1426,1427,1439],{},[564,1428,1429],{},[567,1430,1431,1433,1435,1437],{},[570,1432,1013],{},[570,1434,1016],{},[570,1436,1019],{},[570,1438,1022],{},[580,1440,1441,1458,1473],{},[567,1442,1443,1448,1450,1452],{},[585,1444,1445],{},[26,1446,1447],{},"from",[585,1449,1034],{},[585,1451,1037],{},[585,1453,1454,1455,511],{},"ISO 8601 UTC, must end in ",[26,1456,1457],{},"Z",[567,1459,1460,1465,1467,1470],{},[585,1461,1462],{},[26,1463,1464],{},"to",[585,1466,1060],{},[585,1468,1469],{},"now",[585,1471,1472],{},"Same format.",[567,1474,1475,1480,1482,1484],{},[585,1476,1477],{},[26,1478,1479],{},"resolution",[585,1481,1034],{},[585,1483,1037],{},[585,1485,1486,185,1489,185,1492,185,1495,185,1498,185,1501,511],{},[26,1487,1488],{},"1min",[26,1490,1491],{},"5min",[26,1493,1494],{},"15min",[26,1496,1497],{},"1h",[26,1499,1500],{},"6h",[26,1502,1503],{},"1d",[42,1505,1507],{"className":44,"code":1506,"language":46,"meta":47,"style":47},"curl -H \"Authorization: Bearer $PELYR_KEY\" \\\n  \"https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fvessels\u002F244660123\u002Ftrack?\\\nfrom=2026-09-01T00:00:00Z&to=2026-09-02T00:00:00Z&resolution=5min\"\n",[26,1508,1509,1523,1531],{"__ignoreMap":47},[51,1510,1511,1513,1515,1517,1519,1521],{"class":53,"line":54},[51,1512,58],{"class":57},[51,1514,62],{"class":61},[51,1516,66],{"class":65},[51,1518,70],{"class":69},[51,1520,73],{"class":65},[51,1522,76],{"class":61},[51,1524,1525,1528],{"class":53,"line":79},[51,1526,1527],{"class":65},"  \"https:\u002F\u002Fapi.pelyr.com\u002Fv1\u002Fvessels\u002F244660123\u002Ftrack?",[51,1529,1530],{"class":61},"\\\n",[51,1532,1533],{"class":53,"line":111},[51,1534,1535],{"class":65},"from=2026-09-01T00:00:00Z&to=2026-09-02T00:00:00Z&resolution=5min\"\n",[42,1537,1539],{"className":85,"code":1538,"language":87,"meta":47,"style":47},"{\n  \"mmsi\": 244660123,\n  \"from\": \"2026-09-01T00:00:00Z\",\n  \"to\": \"2026-09-02T00:00:00Z\",\n  \"resolution\": \"5min\",\n  \"count\": 2,\n  \"points\": [\n    {\n      \"lat\": 51.18597, \"lon\": 5.964237, \"sog\": 6.8, \"cog\": 90.8,\n      \"heading\": 273, \"nav_status\": 0, \"rot\": null, \"pos_accuracy\": false,\n      \"msg_type\": 1, \"ts\": \"2026-09-01T00:00:00Z\", \"license\": \"100\"\n    },\n    {\n      \"lat\": 51.18612, \"lon\": 5.972905, \"sog\": 7.1, \"cog\": 88.4,\n      \"heading\": 271, \"nav_status\": 0, \"rot\": null, \"pos_accuracy\": false,\n      \"msg_type\": 1, \"ts\": \"2026-09-01T00:05:00Z\", \"license\": \"100\"\n    }\n  ]\n}\n",[26,1540,1541,1545,1556,1568,1580,1592,1603,1610,1614,1649,1684,1709,1714,1718,1756,1791,1816,1820,1824],{"__ignoreMap":47},[51,1542,1543],{"class":53,"line":54},[51,1544,94],{"class":69},[51,1546,1547,1550,1552,1554],{"class":53,"line":79},[51,1548,1549],{"class":61},"  \"mmsi\"",[51,1551,102],{"class":69},[51,1553,160],{"class":61},[51,1555,108],{"class":69},[51,1557,1558,1561,1563,1566],{"class":53,"line":111},[51,1559,1560],{"class":61},"  \"from\"",[51,1562,102],{"class":69},[51,1564,1565],{"class":65},"\"2026-09-01T00:00:00Z\"",[51,1567,108],{"class":69},[51,1569,1570,1573,1575,1578],{"class":53,"line":124},[51,1571,1572],{"class":61},"  \"to\"",[51,1574,102],{"class":69},[51,1576,1577],{"class":65},"\"2026-09-02T00:00:00Z\"",[51,1579,108],{"class":69},[51,1581,1582,1585,1587,1590],{"class":53,"line":137},[51,1583,1584],{"class":61},"  \"resolution\"",[51,1586,102],{"class":69},[51,1588,1589],{"class":65},"\"5min\"",[51,1591,108],{"class":69},[51,1593,1594,1596,1598,1601],{"class":53,"line":146},[51,1595,114],{"class":61},[51,1597,102],{"class":69},[51,1599,1600],{"class":61},"2",[51,1602,108],{"class":69},[51,1604,1605,1608],{"class":53,"line":152},[51,1606,1607],{"class":61},"  \"points\"",[51,1609,143],{"class":69},[51,1611,1612],{"class":53,"line":165},[51,1613,149],{"class":69},[51,1615,1616,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637,1639,1641,1643,1645,1647],{"class":53,"line":174},[51,1617,1618],{"class":61},"      \"lat\"",[51,1620,102],{"class":69},[51,1622,182],{"class":61},[51,1624,185],{"class":69},[51,1626,188],{"class":61},[51,1628,102],{"class":69},[51,1630,193],{"class":61},[51,1632,185],{"class":69},[51,1634,198],{"class":61},[51,1636,102],{"class":69},[51,1638,203],{"class":61},[51,1640,185],{"class":69},[51,1642,208],{"class":61},[51,1644,102],{"class":69},[51,1646,213],{"class":61},[51,1648,108],{"class":69},[51,1650,1651,1654,1656,1658,1660,1662,1664,1666,1668,1670,1672,1674,1676,1678,1680,1682],{"class":53,"line":218},[51,1652,1653],{"class":61},"      \"heading\"",[51,1655,102],{"class":69},[51,1657,226],{"class":61},[51,1659,185],{"class":69},[51,1661,231],{"class":61},[51,1663,102],{"class":69},[51,1665,236],{"class":61},[51,1667,185],{"class":69},[51,1669,241],{"class":61},[51,1671,102],{"class":69},[51,1673,246],{"class":61},[51,1675,185],{"class":69},[51,1677,251],{"class":61},[51,1679,102],{"class":69},[51,1681,132],{"class":61},[51,1683,108],{"class":69},[51,1685,1686,1689,1691,1693,1695,1697,1699,1701,1703,1705,1707],{"class":53,"line":260},[51,1687,1688],{"class":61},"      \"msg_type\"",[51,1690,102],{"class":69},[51,1692,119],{"class":61},[51,1694,185],{"class":69},[51,1696,272],{"class":61},[51,1698,102],{"class":69},[51,1700,1565],{"class":65},[51,1702,185],{"class":69},[51,1704,282],{"class":61},[51,1706,102],{"class":69},[51,1708,287],{"class":65},[51,1710,1711],{"class":53,"line":290},[51,1712,1713],{"class":69},"    },\n",[51,1715,1716],{"class":53,"line":296},[51,1717,149],{"class":69},[51,1719,1720,1722,1724,1727,1729,1731,1733,1736,1738,1740,1742,1745,1747,1749,1751,1754],{"class":53,"line":304},[51,1721,1618],{"class":61},[51,1723,102],{"class":69},[51,1725,1726],{"class":61},"51.18612",[51,1728,185],{"class":69},[51,1730,188],{"class":61},[51,1732,102],{"class":69},[51,1734,1735],{"class":61},"5.972905",[51,1737,185],{"class":69},[51,1739,198],{"class":61},[51,1741,102],{"class":69},[51,1743,1744],{"class":61},"7.1",[51,1746,185],{"class":69},[51,1748,208],{"class":61},[51,1750,102],{"class":69},[51,1752,1753],{"class":61},"88.4",[51,1755,108],{"class":69},[51,1757,1758,1760,1762,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783,1785,1787,1789],{"class":53,"line":337},[51,1759,1653],{"class":61},[51,1761,102],{"class":69},[51,1763,1764],{"class":61},"271",[51,1766,185],{"class":69},[51,1768,231],{"class":61},[51,1770,102],{"class":69},[51,1772,236],{"class":61},[51,1774,185],{"class":69},[51,1776,241],{"class":61},[51,1778,102],{"class":69},[51,1780,246],{"class":61},[51,1782,185],{"class":69},[51,1784,251],{"class":61},[51,1786,102],{"class":69},[51,1788,132],{"class":61},[51,1790,108],{"class":69},[51,1792,1793,1795,1797,1799,1801,1803,1805,1808,1810,1812,1814],{"class":53,"line":369},[51,1794,1688],{"class":61},[51,1796,102],{"class":69},[51,1798,119],{"class":61},[51,1800,185],{"class":69},[51,1802,272],{"class":61},[51,1804,102],{"class":69},[51,1806,1807],{"class":65},"\"2026-09-01T00:05:00Z\"",[51,1809,185],{"class":69},[51,1811,282],{"class":61},[51,1813,102],{"class":69},[51,1815,287],{"class":65},[51,1817,1818],{"class":53,"line":402},[51,1819,473],{"class":69},[51,1821,1822],{"class":53,"line":444},[51,1823,479],{"class":69},[51,1825,1826],{"class":53,"line":464},[51,1827,485],{"class":69},[15,1829,1830,1831,1833,1834,1836,1837,1839],{},"The window is half-open: a point at exactly ",[26,1832,1447],{}," is included, a point at\nexactly ",[26,1835,1464],{}," is not. ",[26,1838,1464],{}," is always present in the response, even if you\nomitted it.",[15,1841,1842,1843,1845],{},"Point fields are the same as ",[26,1844,1121],{}," above, with two differences:",[1847,1848,1849,1864],"ul",{},[1850,1851,1852,1857,1858,1860,1861,1863],"li",{},[21,1853,1854,1856],{},[26,1855,1259],{}," is the start of the bucket on the clock, not the reception time."," At\n",[26,1859,1497],{}," it is the full hour, at ",[26,1862,1503],{}," midnight UTC.",[1850,1865,1866,1868,1869,511],{},[26,1867,1247],{}," is never ",[26,1870,246],{},[15,1872,1873,1874,1877,1878,1880],{},"At most one point per bucket. Empty buckets produce no point at all, so\n",[26,1875,1876],{},"points"," is not evenly spaced — ",[26,1879,1099],{}," is the number of points, not the\nnumber of buckets in the range.",[15,1882,1883,1884,1886,1887,1889,1890,511],{},"A vessel with no reports in the range returns ",[26,1885,1413],{}," with an empty ",[26,1888,1876],{},"\nlist. Never ",[26,1891,1405],{},[1135,1893,1895],{"id":1894},"how-far-back-you-can-query","How far back you can query",[15,1897,1898],{},"Each resolution has its own maximum range and its own history depth:",[561,1900,1901,1914],{},[564,1902,1903],{},[567,1904,1905,1908,1911],{},[570,1906,1907],{},"Resolution",[570,1909,1910],{},"Max range per request",[570,1912,1913],{},"Directly queryable back to",[580,1915,1916,1928,1940,1952,1964,1975],{},[567,1917,1918,1922,1925],{},[585,1919,1920],{},[26,1921,1488],{},[585,1923,1924],{},"7 days",[585,1926,1927],{},"48 hours",[567,1929,1930,1934,1937],{},[585,1931,1932],{},[26,1933,1491],{},[585,1935,1936],{},"30 days",[585,1938,1939],{},"1 month",[567,1941,1942,1946,1949],{},[585,1943,1944],{},[26,1945,1494],{},[585,1947,1948],{},"90 days",[585,1950,1951],{},"2 months",[567,1953,1954,1958,1961],{},[585,1955,1956],{},[26,1957,1497],{},[585,1959,1960],{},"365 days",[585,1962,1963],{},"5 years",[567,1965,1966,1970,1972],{},[585,1967,1968],{},[26,1969,1500],{},[585,1971,1963],{},[585,1973,1974],{},"10 years",[567,1976,1977,1981,1984],{},[585,1978,1979],{},[26,1980,1503],{},[585,1982,1983],{},"unlimited",[585,1985,1983],{},[15,1987,1988,1989,511],{},"Exceeding the range gives ",[26,1990,1991],{},"400 track_span_too_large",[15,1993,1994,1995,1998],{},"Going further back than the third column requires the archive, which is\nunlocked per key. Without it you get ",[26,1996,1997],{},"403 archive_not_enabled",", and the\nresponse body contains a ready-to-send email:",[42,2000,2002],{"className":85,"code":2001,"language":87,"meta":47,"style":47},"{\n  \"error\": {\n    \"code\": \"archive_not_enabled\",\n    \"message\": \"This time range is beyond the directly queryable retention. Archive queries are enabled per key -- the finished request is in request_template.\"\n  },\n  \"contact\": \"hello@pelyr.com\",\n  \"request_template\": {\n    \"to\": \"hello@pelyr.com\",\n    \"subject\": \"Archive access for key 3f1c9a02-...\",\n    \"body\": \"...\"\n  }\n}\n",[26,2003,2004,2008,2015,2027,2037,2042,2054,2061,2072,2084,2094,2099],{"__ignoreMap":47},[51,2005,2006],{"class":53,"line":54},[51,2007,94],{"class":69},[51,2009,2010,2013],{"class":53,"line":79},[51,2011,2012],{"class":61},"  \"error\"",[51,2014,171],{"class":69},[51,2016,2017,2020,2022,2025],{"class":53,"line":111},[51,2018,2019],{"class":61},"    \"code\"",[51,2021,102],{"class":69},[51,2023,2024],{"class":65},"\"archive_not_enabled\"",[51,2026,108],{"class":69},[51,2028,2029,2032,2034],{"class":53,"line":124},[51,2030,2031],{"class":61},"    \"message\"",[51,2033,102],{"class":69},[51,2035,2036],{"class":65},"\"This time range is beyond the directly queryable retention. Archive queries are enabled per key -- the finished request is in request_template.\"\n",[51,2038,2039],{"class":53,"line":137},[51,2040,2041],{"class":69},"  },\n",[51,2043,2044,2047,2049,2052],{"class":53,"line":146},[51,2045,2046],{"class":61},"  \"contact\"",[51,2048,102],{"class":69},[51,2050,2051],{"class":65},"\"hello@pelyr.com\"",[51,2053,108],{"class":69},[51,2055,2056,2059],{"class":53,"line":152},[51,2057,2058],{"class":61},"  \"request_template\"",[51,2060,171],{"class":69},[51,2062,2063,2066,2068,2070],{"class":53,"line":165},[51,2064,2065],{"class":61},"    \"to\"",[51,2067,102],{"class":69},[51,2069,2051],{"class":65},[51,2071,108],{"class":69},[51,2073,2074,2077,2079,2082],{"class":53,"line":174},[51,2075,2076],{"class":61},"    \"subject\"",[51,2078,102],{"class":69},[51,2080,2081],{"class":65},"\"Archive access for key 3f1c9a02-...\"",[51,2083,108],{"class":69},[51,2085,2086,2089,2091],{"class":53,"line":218},[51,2087,2088],{"class":61},"    \"body\"",[51,2090,102],{"class":69},[51,2092,2093],{"class":65},"\"...\"\n",[51,2095,2096],{"class":53,"line":260},[51,2097,2098],{"class":69},"  }\n",[51,2100,2101],{"class":53,"line":290},[51,2102,485],{"class":69},[15,2104,2105],{},"The template contains your key id — never the key itself — plus the MMSI,\nrange, and resolution you asked for.",[15,2107,2108,2109,2111],{},"Only ",[26,2110,1447],{}," decides. A range that starts before the cutoff and ends after it\nis an archive query in full; it is not split across sources.",[15,2113,2114,2117,2118,2120],{},[26,2115,2116],{},"400 range_before_retention"," means ",[26,2119,1447],{}," predates the recorded history\nentirely. Unlocking does not help; there is no data for that range.",[770,2122],{},[37,2124,2126],{"id":2125},"errors","Errors",[15,2128,2129],{},"Every error has the same envelope:",[42,2131,2133],{"className":85,"code":2132,"language":87,"meta":47,"style":47},"{\"error\": {\"code\": \"invalid_resolution\", \"message\": \"resolution must be one of 1min, 5min, 15min, 1h, 6h, 1d.\"}}\n",[26,2134,2135],{"__ignoreMap":47},[51,2136,2137,2140,2143,2146,2149,2151,2154,2156,2159,2161,2164],{"class":53,"line":54},[51,2138,2139],{"class":69},"{",[51,2141,2142],{"class":61},"\"error\"",[51,2144,2145],{"class":69},": {",[51,2147,2148],{"class":61},"\"code\"",[51,2150,102],{"class":69},[51,2152,2153],{"class":65},"\"invalid_resolution\"",[51,2155,185],{"class":69},[51,2157,2158],{"class":61},"\"message\"",[51,2160,102],{"class":69},[51,2162,2163],{"class":65},"\"resolution must be one of 1min, 5min, 15min, 1h, 6h, 1d.\"",[51,2165,2166],{"class":69},"}}\n",[15,2168,2169,2178],{},[21,2170,2171,2172,2174,2175,511],{},"Branch on ",[26,2173,26],{},", never on ",[26,2176,2177],{},"message"," Messages are English text and change\nwithout notice.",[561,2180,2181,2192],{},[564,2182,2183],{},[567,2184,2185,2187,2189],{},[570,2186,578],{},[570,2188,575],{},[570,2190,2191],{},"When",[580,2193,2194,2207,2221,2235,2257,2269,2283,2294,2306,2317,2329,2341,2353,2368],{},[567,2195,2196,2201,2204],{},[585,2197,2198],{},[26,2199,2200],{},"key_in_query",[585,2202,2203],{},"400",[585,2205,2206],{},"Key passed as a query parameter",[567,2208,2209,2214,2216],{},[585,2210,2211],{},[26,2212,2213],{},"invalid_bbox",[585,2215,2203],{},[585,2217,2218,2220],{},[26,2219,1031],{}," parses but is geographically invalid",[567,2222,2223,2228,2230],{},[585,2224,2225],{},[26,2226,2227],{},"invalid_resolution",[585,2229,2203],{},[585,2231,2232,2233],{},"Unknown ",[26,2234,1479],{},[567,2236,2237,2242,2244],{},[585,2238,2239],{},[26,2240,2241],{},"invalid_time_range",[585,2243,2203],{},[585,2245,2246,2248,2249,2251,2252,552,2254],{},[26,2247,1447],{},"\u002F",[26,2250,1464],{}," malformed, missing ",[26,2253,1457],{},[26,2255,2256],{},"from >= to",[567,2258,2259,2264,2266],{},[585,2260,2261],{},[26,2262,2263],{},"track_span_too_large",[585,2265,2203],{},[585,2267,2268],{},"Range longer than the resolution allows",[567,2270,2271,2276,2278],{},[585,2272,2273],{},[26,2274,2275],{},"range_before_retention",[585,2277,2203],{},[585,2279,2280,2282],{},[26,2281,1447],{}," predates the recorded history",[567,2284,2285,2289,2291],{},[585,2286,2287],{},[26,2288,598],{},[585,2290,593],{},[585,2292,2293],{},"Missing, malformed, unknown, or revoked key",[567,2295,2296,2300,2302],{},[585,2297,2298],{},[26,2299,637],{},[585,2301,617],{},[585,2303,627,2304,630],{},[26,2305,506],{},[567,2307,2308,2312,2314],{},[585,2309,2310],{},[26,2311,622],{},[585,2313,617],{},[585,2315,2316],{},"Account is suspended",[567,2318,2319,2324,2326],{},[585,2320,2321],{},[26,2322,2323],{},"archive_not_enabled",[585,2325,617],{},[585,2327,2328],{},"Archive needed, key not unlocked",[567,2330,2331,2336,2338],{},[585,2332,2333],{},[26,2334,2335],{},"not_found",[585,2337,1405],{},[585,2339,2340],{},"Vessel silent for over an hour",[567,2342,2343,2348,2350],{},[585,2344,2345],{},[26,2346,2347],{},"bad_request",[585,2349,1398],{},[585,2351,2352],{},"Parameter fails schema validation",[567,2354,2355,2360,2363],{},[585,2356,2357],{},[26,2358,2359],{},"rate_limited",[585,2361,2362],{},"429",[585,2364,2365,2366],{},"Over the rate limit; see ",[26,2367,706],{},[567,2369,2370,2375,2378],{},[585,2371,2372],{},[26,2373,2374],{},"internal_error",[585,2376,2377],{},"500",[585,2379,2380],{},"Unhandled server error",[15,2382,2383],{},"Notes:",[1847,2385,2386,2392,2417,2434],{},[1850,2387,2388,2391],{},[21,2389,2390],{},"Code and status are not one-to-one."," Three different codes return 403.\nDo not infer one from the other.",[1850,2393,2394,2397,2398,2400,2401,2404,2405,2408,2409,2411,2412,2414,2415,511],{},[21,2395,2396],{},"400 versus 422."," A ",[26,2399,1031],{}," that does not match the expected shape at all\nis ",[26,2402,2403],{},"422 bad_request","; one that parses but is geographically impossible is\n",[26,2406,2407],{},"400 invalid_bbox",". Likewise a missing ",[26,2410,1479],{}," is ",[26,2413,1398],{},", an unknown one\nis ",[26,2416,2203],{},[1850,2418,2419,2422,2423,2426,2427,974,2430,2433],{},[21,2420,2421],{},"Tolerate unknown fields and unknown codes."," New top-level fields may\nappear alongside ",[26,2424,2425],{},"error",", as ",[26,2428,2429],{},"contact",[26,2431,2432],{},"request_template"," already do.",[1850,2435,2436,2438,2439,511],{},[26,2437,706],{}," appears only on ",[26,2440,2362],{},[37,2442,2444],{"id":2443},"reference","Reference",[1847,2446,2447],{},[1850,2448,2449,2450,2452],{},"Attribution obligations: ",[26,2451,775],{}," and the licence terms it points\nto.",[2454,2455,2456],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":47,"searchDepth":79,"depth":79,"links":2458},[2459,2460,2461,2462,2463,2464,2470,2471,2474,2475],{"id":39,"depth":79,"text":40},{"id":488,"depth":79,"text":489},{"id":646,"depth":79,"text":647},{"id":710,"depth":79,"text":711},{"id":774,"depth":79,"text":775},{"id":1000,"depth":79,"text":1001,"children":2465},[2466,2467,2468],{"id":1121,"depth":111,"text":1121},{"id":1125,"depth":111,"text":1125},{"id":1340,"depth":111,"text":2469},"When truncated is true",{"id":1359,"depth":79,"text":1360},{"id":1420,"depth":79,"text":1421,"children":2472},[2473],{"id":1894,"depth":111,"text":1895},{"id":2125,"depth":79,"text":2126},{"id":2443,"depth":79,"text":2444},"Live positions, vessel details and historical tracks over HTTPS.","md",{},true,"\u002Fdocs\u002Fapi",{"title":5,"description":2476},"docs\u002Fapi\u002Findex","RMHxeSDa_ewj3ctalj16JGJCoM3pypTf5FUJPa7h1eA",1789034411677]