Broaderworld

Developer API

Build your own apps and integrations on top of your account & vessels — read live and historical AIS/GPS tracks, and push GPS fixes from your own devices. JSON over HTTPS.

Authentication

Create a key in your dashboard → API access (shown once). Send it as a Bearer token. Keys are scoped read and/or write.

Authorization: Bearer bw_live_xxxxxxxxxxxxxxxxxxxxxxxx

Base URL: https://broaderworld.com/api/v1 · Machine-readable spec: openapi.json

Endpoints

GET/accountYour account
GET/vesselsList your vessels
POST/vesselsCreate a vessel (write)
GET/vessels/{id}Vessel + latest position
GET/vessels/{id}/positionsTrack history (≤90 days)
POST/vessels/{id}/positionsPush GPS fix(es) (write)

Examples

List your vessels:

curl https://broaderworld.com/api/v1/vessels \
  -H "Authorization: Bearer $BW_KEY"

Fetch the last 7 days of track for a vessel:

curl "https://broaderworld.com/api/v1/vessels/VESSEL_ID/positions?from=$(date -u -d '7 days ago' +%FT%TZ)" \
  -H "Authorization: Bearer $BW_KEY"

Push a GPS fix (needs a write key):

curl -X POST https://broaderworld.com/api/v1/vessels/VESSEL_ID/positions \
  -H "Authorization: Bearer $BW_KEY" \
  -H "content-type: application/json" \
  -d '{"lat":-12.46,"lon":130.84,"sog":5.2,"cog":275}'

Android / device push

Each vessel also has a dedicated device token (in the dashboard) for a phone/tracker to push GPS without a full API key — same body, at:

POST https://broaderworld.com/api/track/ingest
Authorization: Bearer <deviceToken>
{ "lat": -12.46, "lon": 130.84, "ts": "2026-06-30T00:00:00Z" }

Mobile app sign‑in (Google)

Your app does native Google Sign‑In, then posts the Google id_token here. We verify it and return the owner's vessels with their device tokens — no manual paste. (Add your Android OAuth client ID to the allowed audiences.)

POST https://broaderworld.com/api/app/login
{ "idToken": "<google id_token from native sign-in>" }

→ { "user": {...}, "vessels": [
     { "id": "...", "name": "SV Wanderer", "shareToken": "...",
       "deviceToken": "mtk_…",   // use as Bearer on /api/track/ingest
       "lastPositionAt": "..." } ] }

Position windows: family share links show 30 days; your API key sees up to 90. Speeds in knots, courses in degrees.