Other Vessels

You can use the /vessels method to retrieve information about other vessels in your vicinity. This data comes from FloatHub users who have made either their own vessel’s location public or have elected to allow public access to any AIS data their boat is relaying.

Note

If you have an onboard AIS, we strongly encourage you to connect it to your FloatHub device and make that data publicly accessible by modifying your FloatHub sharing preferences.

A call to find data about nearby vessels will look like this:

curl -H "Authorization: Bearer eyJhbGciOiJIUzI1N...XosykYIc"  \
"https://api.floathub.com/v2/vessels?latl=55.5&latu=56.0&lonl=11.5&lonu=12.5"

except that you should include your actual (and much longer) Authorization Token in the place of the example eyJhbGciOiJIUzI1N...XosykYIc from above. You’ll also want to set the search area by choosing appropriate nearby values for:

  • Upper Latitude (latu)

  • Lower Latitude (latl)

  • Upper Longitude (lonu)

  • Lower Longitude (lonl)

This call will return a JSON response that looks like this:

[
  {"age":7,"cog":237.6,"country":"Denmark","destination":"","draught":0.0,"heading":236,"lat":55.9555,"length":50,"lng":11.8184,"mmsi":219017815,"sog":7.5,"status":"Under way using engine","title":"ISEFJORD (219017815)","type":"Passenger Ship","width":12},
  {"age":8,"cog":70.2,"country":"Faroe Islands","destination":"HUNDESTED","draught":3.8,"heading":171,"lat":55.9597,"length":48,"lng":11.8474,"mmsi":231048000,"sog":0.0,"status":"Under way using engine","title":"KRONOS (231048000)","type":"Unknown","width":10},
  {"age":10,"cog":null,"country":"Denmark","destination":"","draught":0.0,"heading":null,"lat":55.9424,"length":8,"lng":11.8663,"mmsi":219027804,"sog":0.0,"status":"Under way using engine","title":"RESCUE THYRA (219027804)","type":"Search and Rescue","width":2},
  {"age":10,"cog":117.6,"country":"Denmark","destination":"HUNDESTED","draught":2.7,"heading":null,"lat":55.964,"length":17,"lng":11.8455,"mmsi":219021266,"sog":0.0,"status":"Under way using engine","title":"MISILIISOQ (219021266)","type":"Pleasure Craft","width":5},
  {"age":10,"cog":61.1,"country":"Denmark","destination":" HOLBAEK - OROE","draught":2.1,"heading":61,"lat":55.7381,"length":42,"lng":11.7647,"mmsi":219003141,"sog":9.5,"status":"Under way using engine","title":"ORO (219003141)","type":"Passenger Ship","width":10},
  {"age":12,"cog":null,"country":"Denmark","destination":null,"draught":null,"heading":12,"lat":55.9638,"length":16,"lng":11.846,"mmsi":219029112,"sog":0.1,"status":null,"title":"S/Y CASSIOPEIA (219029112)","type":"Sailing Vessel","width":6},
  {"age":13,"cog":null,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.7446,"length":18,"lng":12.0951,"mmsi":219017886,"sog":0.1,"status":null,"title":"SHANTI (219017886)","type":"Pleasure Craft","width":5},
  {"age":40,"cog":274.4,"country":"Denmark","destination":"","draught":0.0,"heading":null,"lat":55.7225,"length":82,"lng":11.7602,"mmsi":219015417,"sog":0.0,"status":"Under way using engine","title":"ELLEN 2 (219015417)","type":"Dredger","width":11},
  {"age":42,"cog":null,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.914,"length":12,"lng":11.6711,"mmsi":219028140,"sog":0.0,"status":null,"title":"JOLIE BRISE (219028140)","type":"Sailing Vessel","width":4},
  {"age":45,"cog":null,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.8353,"length":15,"lng":12.055,"mmsi":219022614,"sog":0.0,"status":null,"title":"BLUE OCEAN (219022614)","type":"Pleasure Craft","width":5},
  {"age":47,"cog":4.3,"country":"Denmark","destination":"DK HUN","draught":3.0,"heading":53,"lat":55.9609,"length":53,"lng":11.8444,"mmsi":219031237,"sog":0.0,"status":"Moored","title":"FORTUNA CRANE (219031237)","type":"Unknown","width":11},
  {"age":48,"cog":null,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.7448,"length":0,"lng":12.0961,"mmsi":219028826,"sog":0.0,"status":null,"title":"HEMADEMA (219028826)","type":"Pleasure Craft","width":0},
  {"age":50,"cog":317.8,"country":"Madeira","destination":"SALACGRIVA","draught":3.5,"heading":350,"lat":55.9609,"length":107,"lng":11.8407,"mmsi":255806390,"sog":0.0,"status":"Moored","title":"BUGOE (255806390)","type":"Cargo Vessel","width":15},
  {"age":57,"cog":null,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.6526,"length":13,"lng":12.0754,"mmsi":219027820,"sog":0.2,"status":null,"title":"ANCHRICOR (219027820)","type":"Sailing Vessel","width":4},
  {"age":62,"cog":65.5,"country":"Germany","destination":"DKFDV","draught":2.8,"heading":243,"lat":55.9615,"length":82,"lng":12.0155,"mmsi":218801000,"sog":0.0,"status":"Moored","title":"SIMON B (218801000)","type":"Cargo Vessel","width":11},
  {"age":75,"cog":10.1,"country":"Denmark","destination":"HOLBAEK","draught":18.0,"heading":null,"lat":55.7252,"length":0,"lng":11.7602,"mmsi":219001749,"sog":0.0,"status":"Moored","title":"LILLEBAELT (219001749)","type":"Pleasure Craft","width":0},
  {"age":92,"cog":346.3,"country":"Antigua and Barbuda","destination":"DKFDV","draught":2.3,"heading":44,"lat":55.9606,"length":74,"lng":12.0133,"mmsi":304559000,"sog":0.0,"status":"Moored","title":"PETRA L (304559000)","type":"Cargo Vessel","width":11},
  {"age":94,"cog":184.6,"country":"Antigua and Barbuda","destination":"DK FDV","draught":5.2,"heading":333,"lat":55.9627,"length":88,"lng":12.0142,"mmsi":305190000,"sog":0.0,"status":"Moored","title":"EMMA F (305190000)","type":"Cargo Vessel","width":12},
  {"age":105,"cog":null,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.9419,"length":11,"lng":11.8679,"mmsi":219023312,"sog":0.0,"status":null,"title":"TYTTEBOVSEN (219023312)","type":"Pleasure Craft","width":2},
  {"age":106,"cog":280.7,"country":"Denmark","destination":"HUNDESTED","draught":2.5,"heading":207,"lat":55.9665,"length":25,"lng":11.8433,"mmsi":219000159,"sog":0.0,"status":"Moored","title":"MHV 905 ASKOE (219000159)","type":"Military Ops","width":6},
  {"age":131,"cog":135.6,"country":"Denmark","destination":null,"draught":null,"heading":135,"lat":55.8359,"length":null,"lng":12.0561,"mmsi":219023391,"sog":0.0,"status":null,"title":"219023391","type":"Unknown","width":null},
  {"age":136,"cog":300.3,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.9422,"length":8,"lng":11.8653,"mmsi":219018998,"sog":0.0,"status":null,"title":"ISEFJORD (219018998)","type":"Fishing","width":4},
  {"age":150,"cog":null,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.7208,"length":40,"lng":11.7142,"mmsi":219024955,"sog":0.0,"status":null,"title":"BONAVISTA (219024955)","type":"Sailing Vessel","width":6},
  {"age":183,"cog":314.8,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.8365,"length":12,"lng":12.0325,"mmsi":219020924,"sog":0.0,"status":null,"title":"S/Y ELHAJA II (219020924)","type":"Sailing Vessel","width":3},
  {"age":215,"cog":89.0,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.7206,"length":29,"lng":11.7094,"mmsi":219003232,"sog":0.0,"status":null,"title":"HJALM (219003232)","type":"Sailing Vessel","width":6},
  {"age":374,"cog":null,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.7252,"length":16,"lng":11.7604,"mmsi":219030460,"sog":0.0,"status":null,"title":"ELSKLING (219030460)","type":"Sailing Vessel","width":5},
  {"age":434,"cog":22.1,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.7226,"length":15,"lng":11.7608,"mmsi":219024843,"sog":0.1,"status":null,"title":"EVILJA (219024843)","type":"Sailing Vessel","width":4},
  {"age":480,"cog":306.7,"country":"Denmark","destination":null,"draught":null,"heading":null,"lat":55.7215,"length":14,"lng":11.7144,"mmsi":219021060,"sog":0.0,"status":null,"title":"ON TOP (219021060)","type":"Pleasure Craft","width":4},
  {"age":695,"cog":155.8,"country":"Denmark","destination":null,"draught":null,"heading":155,"lat":55.9131,"length":11,"lng":11.6736,"mmsi":219026457,"sog":0.0,"status":null,"title":"FAAREKYLLING (219026457)","type":"Dive Vessel","width":4},
  {"age":789,"cog":323.0,"country":"Denmark","destination":"BRONDBY","draught":2.5,"heading":314,"lat":55.6076,"length":22,"lng":12.4416,"mmsi":219000182,"sog":0.0,"status":"Moored","title":"MHV 802 CARINA (219000182)","type":"Military Ops","width":6},
  {"age":966,"cog":162.7,"country":"Invalid","destination":"SEARCH AND RESCUE","draught":0.0,"heading":null,"lat":55.5911,"length":20,"lng":12.1211,"mmsi":111219520,"sog":8.2,"status":"Under way using engine","title":" (111219520)","type":"Search and Rescue","width":5},
  {"age":1270,"cog":150.2,"country":"Denmark","destination":"N/A","draught":2.1,"heading":null,"lat":55.8247,"length":20,"lng":11.7375,"mmsi":219000121,"sog":0.0,"status":"Moored","title":"SKA 14 (219000121)","type":"Military Ops","width":6},
  {"age":367,"cog":null,"fhubid":113,"heading":null,"lat":55.8353,"lng":12.055,"sog":0.01,"title":"Boaty McBoatface","type":"FloatHub"}
]

All of the data returned will be no more then 1 hour old (age ≤ 3600). If you would prefer to restrict the age of data returned to a lower value, you can also pass an &age= get variable. Accepted values are between 1 and 60. Note that although the age passed in the calling get request is measured in minutes, the returned values in the JSON response are always measured in seconds.

In addition to how old the data is, information returned about any vessel may include the following fields:

  • sog

  • cog

  • heading

  • title (Vessel’s Name)

  • mmsi (Maritime Mobile Service Identity)

  • country (Flag)

  • lat (Latitude)

  • lng (Longitude)

  • status (Moored, Under way using engine, etc.)

  • length

  • width

  • draught

  • destination

  • type (Sailing Vessel, Passenger Ship, etc.)

If the data comes from another FloatHub user’s vessel rather than an AIS source, the type will be FloatHub.