[{"data":1,"prerenderedAt":108},["ShallowReactive",2],{"docs-en-\u002Fdocs":3},{"id":4,"title":5,"body":6,"description":100,"extension":101,"meta":102,"navigation":103,"path":104,"seo":105,"stem":106,"__hash__":107},"docs_en\u002Fdocs\u002Findex.md","Documentation",{"type":7,"value":8,"toc":93},"minimark",[9,13,17,22,30,41,45,48,78,82],[10,11,5],"h1",{"id":12},"documentation",[14,15,16],"p",{},"Two interfaces onto the same AIS data, and one key for both. Which one you\nwant depends on whether you need to be told about every message or would\nrather ask when it suits you.",[18,19,21],"h2",{"id":20},"https-api","HTTPS API",[14,23,24,25,29],{},"Request and response over plain HTTPS: all vessels in a bounding box, one\nvessel by MMSI, or the track of one vessel over time. Rate limits are counted\nper key and per minute, and every answer carries an ",[26,27,28],"code",{},"ETag"," so an unchanged\nresult costs you no bytes. Best when you poll on your own schedule, when the\ndata lands in a database, or when you need history rather than the present\nmoment.",[31,32,33],"ul",{},[34,35,36,40],"li",{},[37,38,21],"a",{"href":39},"\u002Fen\u002Fdocs\u002Fapi"," — Endpoints, parameters, errors, and how far back\nthe track query reaches.",[18,42,44],{"id":43},"stream-api","Stream API",[14,46,47],{},"One WebSocket connection that stays open and pushes every AIS message\nmatching your subscriptions, plus a heartbeat every 20 seconds so silence\nstays distinguishable from a dead connection. Best when you want positions\nthe moment they arrive — a live map, an alert, a feed into your own pipeline.",[31,49,50,57,64,71],{},[34,51,52,56],{},[37,53,55],{"href":54},"\u002Fen\u002Fdocs\u002Fstream","Stream documentation"," — The endpoint, the frames, and the\nlimits that apply.",[34,58,59,63],{},[37,60,62],{"href":61},"\u002Fen\u002Fdocs\u002Fstream\u002Fprotocol","Protocol reference"," — Every frame, every field,\nall fifteen close codes.",[34,65,66,70],{},[37,67,69],{"href":68},"\u002Fen\u002Fdocs\u002Fstream\u002Fexamples","Example clients"," — Python and Go, with\nreconnection and loss detection.",[34,72,73,77],{},[37,74,76],{"href":75},"\u002Fen\u002Fdocs\u002Fstream\u002Faisstream","aisstream.io compatibility"," — Moving an\nexisting aisstream.io client over.",[18,79,81],{"id":80},"keys","Keys",[14,83,84,85,88,89,92],{},"Both interfaces read the same key, but each capability is granted separately:\na key needs ",[26,86,87],{},"https"," for the HTTPS API and ",[26,90,91],{},"stream"," for the WebSocket. Keys\nare created in the portal, and revocation takes effect immediately.",{"title":94,"searchDepth":95,"depth":95,"links":96},"",2,[97,98,99],{"id":20,"depth":95,"text":21},{"id":43,"depth":95,"text":44},{"id":80,"depth":95,"text":81},"The two ways to read AIS data from Pelyr OPEN-AIS — the live WebSocket stream and the HTTPS API.","md",{},true,"\u002Fdocs",{"title":5,"description":100},"docs\u002Findex","02KyJWQdd0atXyNrlSf0aWIeC1VNoC6caSQJaianyDg",1789034411677]