HomeMapSky mapAlpha
More
Account
Loading…
Language: English

Maritime Navigation API

Akses programatik ke peringatan NAVAREA dan pesisir. Subscription REST berada di /api/v1/ dengan header X-API-Token. Tingkat yang lebih tinggi membuka koordinat, peta kata kunci, seluruh arsip sekaligus, dan filter lanjutan.

Developer: masuk dengan GitHub dan kunci Developer ada di tab API Anda dalam sepuluh detik, dengan 2.000 permintaan gratis untuk peringatan yang berlaku. Arsip dan analisis lengkap tersedia dengan paket berbayar.

Send a route, get the NAVAREAs and the warnings along it: POST /api/v2/route/ with a route file (RTZ, GPX, KML, CSV...) or JSON waypoints; the same at /api/v2/drop/<token>/route/ for tools that can only drop a file. Section 15 of the README has the calls.

v3: integrate from GitHub

Developers overview

Everything to connect is in one public repository: the OpenAPI specification, the data models, Python and JavaScript clients, an MCP server for Claude, Cursor, VS Code, Windsurf and Zed, and a GitHub Action that checks a route against the warnings in force. The endpoints stay the ones below; the kit is the way in.

  • Editors and agents: add the MCP server and ask in plain words; the tools are search_warnings, warnings_near, route_check, navareas and feeds.
  • Code: python/sealagom.py and js/sealagom.mjs, no dependencies beyond requests or fetch; generate any other language from openapi.yaml.
  • No-code and agents: import sealagom.com/openapi.json into n8n, Make, Zapier, Pipedream, Postman, ChatGPT actions or LangChain. Send the key as X-API-Token or Authorization: Bearer.
  • Routes: POST /api/v2/route/ with a route file or waypoints, or the drop link /api/v2/drop/<key>/route/ for tools that can only POST a file.
  • Sky view: GET /api/v2/sky/link/?vessel= (or mmsi, warning and region, port, locode, lat and lon) gives a ready link that stands there in the sky view; POST /api/v2/sky/route/ takes a route and gives its sky link, drawn on the sea, with the RTZ and GPX. Section 20 of the README has the calls. Not for navigation.
  • CI: the Action fails a build when a critical warning lies on a route kept in the repository.
  • Scripts and agents paying for themselves: POST /api/agent/checkout/, crypto, the key once paid (in the profile when the e-mail already has an account).

Memulai

  1. Pilih paket di contributor plans.
  2. Buat token API di bawah Profil → API.
  3. Kirim X-API-Token pada setiap /api/v1/ panggilan.
  4. Hormati pagination dan penggunaan token pada endpoint list.

Rencana langganan API

Tingkatkan ke API Default untuk teks mentah dan koordinat, ke Full API untuk geometri terstruktur (geo_features), atau hubungi kami untuk integrasi kustom.

Tingkat gratis API

API tanpa kunci: 100 panggilan per hari, hingga 50 peringatan per panggilan, selama 3 hari atau 300 panggilan, mana yang lebih dulu.

Saat kuota habis, API menjawab HTTP 402 berisi apa yang terpakai, kapan kembali, dan tautan untuk bayar sekarang: checkout, kripto, atau POST /api/agent/checkout/ dari skrip.

Jika masuk tanpa paket API, tingkat gratis yang sama dihitung pada akun Anda. Jatah GitHub Developer menyimpan permintaannya sendiri.

Hanya pesan yang berlaku. Tanpa arsip, koordinat, koordinat lanjutan, kata kunci, webhook, atau filter lanjutan.

API Default

Permintaan tak terbatas, $20 bulan pertama, kemudian $18 / bulan dengan auto-renew

  • Permintaan API tak terbatas
  • Pesan langsung NAVAREA & pesisir
  • Akses pesan arsip
  • Teks pesan mentah dan koordinat
  • Integrasi webhook untuk pembaruan waktu nyata

Not included: geo_features (areas, circles, sectors, lanes, safety zones), analysis, keywords, or enhanced coordinate formats. Those need Full API.

Berlangganan API Default

Full API

Permintaan tak terbatas, $100 first month, then $90 / month with auto-renew

  • Permintaan API tak terbatas
  • Pesan langsung NAVAREA & pesisir
  • Akses pesan arsip
  • Koordinat (semua format: decimal, GeoJSON, DMS, Google Maps)
  • geo_features: titik, garis, jalur, area, lingkaran, sektor, displacement, zona keselamatan
  • analysis of every warning: summary, status, validity / expiry, hazards, recurring series
  • Geometri terstruktur dalam GeoJSON, CSV, Shapefile, WKT (ECDIS & KML geometri lengkap pada Contributor)
  • Ekstraksi peta kata kunci
  • Filter lanjutan (tanggal, kata kunci, negara, jenis, has_coordinates)
  • Integrasi webhook untuk pembaruan waktu nyata
Berlangganan Full API

Custom API

Disesuaikan dengan kebutuhan Anda; hubungi kami

  • Semua yang ada di Full API
  • Bentuk respons & format data kustom
  • Bidang, struktur, atau format spasial spesifik atas permintaan
  • Dukungan khusus dan panduan integrasi
  • Pengaturan enterprise atau volume tinggi
  • SLA dan payload webhook kustom
Hubungi kami

Butuh sesuatu yang khusus? Email contact@sealagom.com Respons API dapat disesuaikan ke format atau struktur spasial apa pun.

Lihat rencana saat ini dan berlangganan

Pembuat permintaan interaktif

Susun URL GET dan salin contoh (cURL, Python, JavaScript, Java, Rust). Ganti token dengan token Anda.

Menggunakan parameter yang sama setiap waktu? Simpan pada token itu sendiri dengan API v2 builder di profil Anda, dengan pratinjau langsung.

URL yang Dihasilkan

https://www.sealagom.com/api/v1/navarea/?include_messages=true
curl -X GET "https://www.sealagom.com/api/v1/navarea/?include_messages=true" \
  -H "X-API-Token: YOUR_API_TOKEN"

Ikhtisar

Selamat datang di SeaLag.om Maritime Navigation API!

API ini menyediakan akses programatik ke peringatan NAVAREA dan pesisir yang penting untuk keselamatan maritim dan navigasi.

Pelanggan Full API menerima data lengkap termasuk koordinat (berbagai format), kata kunci, seluruh arsip sekaligus, dan filter lanjutan. Butuh format atau struktur spasial khusus? Hubungi kami untuk integrasi yang disesuaikan.

Respons berbentuk daftar/detail JSON. Gunakan page and page_size jika didukung.

Autentikasi

Kirim header X-API-Token: <token> pada setiap /api/v1/ permintaan. Token yang hilang atau tidak valid mengembalikan 401 Unauthorized. Token dibuat di profil Anda; ganti atau cabut dari layar yang sama.

X-API-Token: YOUR_API_TOKEN
Keamanan: Jaga kerahasiaan token. Gunakan token terpisah untuk setiap aplikasi. Regenerasi secara berkala atau segera jika dikompromikan.

Manajemen token

  • GET /api/v1/tokens/ - daftar token Anda
  • POST /api/v1/tokens/ - buat token
  • POST /api/v1/tokens/{id}/regenerate/ - ganti (membuat nilai lama tidak berlaku)
# List tokens
curl -X GET "https://www.sealagom.com/api/v1/tokens/" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

# Create a token
curl -X POST "https://www.sealagom.com/api/v1/tokens/" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "My API Token"}'

# Regenerate a token
curl -X POST "https://www.sealagom.com/api/v1/tokens/1/regenerate/" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

API v2 dan pengaturan token

API v2 menggunakan token, paket dan pencatatan permintaan yang sama seperti v1. Semua yang berada di bawah /api/v1/ tetap bekerja persis seperti sebelumnya, sehingga integrasi yang ada tidak perlu diubah. v2 menambahkan:

  • Satu daftar semua peringatan: GET /api/v2/messages/, NAVAREA dan coastal bersama, terbaru terlebih dahulu, setiap pesan dengan wilayah, negara dan status arsipnya.
  • Filter pesan pada endpoint wilayah: /api/v2/navarea/ and /api/v2/coastal/ menjawab seperti v1 dan juga menerapkan date_from, date_to, keyword and has_coordinates ke pesan yang mereka kembalikan.
  • Pengaturan disimpan pada setiap token: pilih token di Profile > API > API v2 builder, buat respons dengan menu dan pratinjau langsung, lalu simpan. Setiap panggilan /api/v2/ dengan token itu mengembalikan bentuk tersebut; panggilan /api/v1/ mengabaikan pengaturan yang disimpan dan menanggapi persis seperti sebelumnya.
  • prompt filter (Full API):deskripsikan peringatan yang harus dikembalikan oleh token dengan kata-kata Anda sendiri, misalnya "only space debris warnings around the USA".
  • Integrate: the kit on GitHub (OpenAPI spec, clients, MCP server, Action) is the way in; a README.md per token, with its settings, plan and every parameter and field, is there for any program that wants one file.
  • Settings file:instead of ticking options, ask LagoPal (with the README) for a settings file: a small JSON file with the token's endpoint, parameters and prompt. Load it on Profile > API (Load settings file); it fills the builder so you can check the live preview before saving. Download settings file gives the current settings in the same form. JSON Schema: /api/public/api-settings-schema/.

GET /api/v2/messages/

ParameterPaketFungsinya
scopeSemuanavarea, coastal atau all (default).
navarea_idSemuaSatu atau lebih NAVAREA id (ulang atau pisahkan dengan koma).
coastal_idSemuaSatu atau lebih id wilayah coastal.
countrySemuaNama negara, pencocokan parsial (mis. France).
qSemuaKata-kata dalam teks peringatan (asli atau English).
date_from, date_toSemuaDitambahkan pada atau setelah / pada atau sebelum, YYYY-MM-DD.
keywordSemuaKategori kata kunci atau kata apa saja dalam teks; ulangi untuk beberapa.
has_coordinatesSemuatrue: hanya peringatan yang memiliki posisi.
include_localsSemuatrue: juga peringatan lokal Prancis (AVURNAV).
include_archived, only_archivedAPI berbayarAktif dan diarsipkan, atau hanya diarsipkan.
status, message_class, station, lat, lon, radius_nm, bboxSemuaFilter arsip: in_force, cancelled, atau expired; jenis; stasiun NAVTEX; posisi dengan radius dalam mil laut, atau kotak west,south,east,north.
include_coordinatesAPI berbayarPosisi yang dibaca dari setiap peringatan.
include_enhanced_coordinatesFull APIDesimal, DMS, GeoJSON dan tautan peta untuk setiap posisi.
include_keywordsFull APIPeta kata kunci per peringatan.
include_geo_featuresFull APIArea, lingkaran, garis, jalur, sektor sebagai GeoJSON.
include_ai_analysisFull APIThe analysis object per warning.
ai_severityFull APIcritical, high, moderate, low, info (ulang untuk beberapa).
ai_categoryFull APIcategory ids, e.g. firing_practice, piracy_or_security.
ai_statusFull APILive status: active, scheduled, expired, withdrawn (archived), cancellation_notice, informational.
ai_in_forceFull APItrue: hanya peringatan yang berlaku sekarang.
expires_within_hoursFull APIHanya peringatan yang valid_until-nya jatuh dalam N jam ke depan.
expires_after, expires_beforeFull APIvalid_until pada atau setelah / pada atau sebelum sebuah tanggal (YYYY-MM-DD) atau waktu ISO.
exclude_routineFull APItrue: kecualikan laporan rutin (laporan es, daftar rig, daftar yang berlaku).
ai_hasFull APIHanya analisis dengan: contacts, vessels, aids, keep_clear, time_windows, charts, hazards.
min_keep_clear_nmFull APIJarak keep-clear minimal N nautical miles.
page, page_sizeSemuaDefault 50 per halaman; hingga 200 pada paket berbayar, 50 pada gratis.
prompt_filterFull APIoff: ignore the token's prompt filter for this call.
topicFull APISebuah feed: ice, military, space, cables, offshore, survey, hazards, aton, sar, security (lihat Themed feeds).
settingsSemuaoff: abaikan pengaturan tersimpan token untuk panggilan ini (panggilan biasa).

Bidang atau filter yang tidak termasuk dalam paket Anda dibiarkan keluar dan tercantum dalam meta.warnings, tidak pernah menjadi error.

content adalah teks seperti yang disiarkan; content_en is the English text (the official English version or a machine translation) for sources that broadcast in another language, such as China or Turkey, and source_language menamai bahasa aslinya.

The US Coast Guard Local Notices to Mariners (10 distrik, diperbarui mingguan) adalah wilayah pesisir berjudul US Coast Guard LNM, negara US. They are not analysed, so their automatic fields are empty; each district also has one message, number LNMxx-DISCREPANCIES, mencantumkan bantu navigasinya dengan ketidaksesuaian.

curl "https://www.sealagom.com/api/v2/messages/?country=France&include_coordinates=true&include_ai_analysis=true" \
  -H "X-API-Token: YOUR_API_TOKEN"

{
  "count": 42,
  "page": 1,
  "page_size": 50,
  "next": null,
  "previous": null,
  "results": [
    {
      "scope": "coastal",
      "region_id": 57,
      "region_title": "FRANCE Atlantic",
      "country": "France",
      "is_archived": false,
      "archived_on": null,
      "id": 90211,
      "number": "AVURNAV 1234/26",
      "content": "BAY OF BISCAY. DRIFTING BUOY ...",
      "content_en": "BAY OF BISCAY. DRIFTING BUOY ...",
      "source_language": "en",
      "added_on": "2026-09-27T08:10:00Z",
      "coordinates": ["45-10.0N 002-05.0W"],
      "ai_analysis": { "headline": "...", "severity": "moderate", "valid_until": null }
    }
  ]
}

Pengaturan yang disimpan pada token

  • Satu token, satu bentuk: each token keeps its own endpoint and parameters. Need a second shape (say France coastal with coordinates, and a worldwide feed)? Create a second token.
  • Setiap opsi ditampilkan, Termasuk yang Full API, beserta paket yang diperlukan masing-masing. Menyimpan membutuhkan paket API aktif.
  • URL menang: setiap parameter yang Anda letakkan di URL menggantikan nilai tersimpan untuk panggilan itu; ?settings=off membuat panggilan biasa.
  • Periode relatif: "30 hari terakhir" mengirimkan date_from sebagai hari ini dikurangi 30 hari pada setiap panggilan.
  • Respons membawa sebuah X-API-Token-Settings header yang menamakan token yang pengaturannya diterapkan.

Ice feed: GET /api/v2/ice/

  • Every warning about ice at sea, from NAVAREA, coastal and NAVTEX sources: icebergs and iceberg limits, sea ice, ice edge, vessel icing and freezing spray, ice reports, icebreaker operations and ice navigation rules. An model reads each warning that mentions ice and keeps only those really about it, with its kind in ice.type.
  • Positions, shapes (iceberg limit lines, ice areas) and the analysis are included by default. ?output=geojson mengembalikan sebuah GeoJSON FeatureCollection, satu feature per bentuk, siap untuk pemeriksaan rute dan overlay pada peta.
  • ice_type mempersempitnya: iceberg, sea_ice, ice_edge, icing, ice_report, icebreaker, ice_navigation, other_ice (ulang atau pisahkan dengan koma). Setiap parameter /api/v2/messages/ juga berfungsi, dan /api/v2/messages/?topic=ice adalah feed yang sama.
  • Rencana Full API, atau lisensi feed es (tahunan, ditagihkan): hubungi kami.
curl "https://www.sealagom.com/api/v2/ice/?output=geojson&ice_type=iceberg,ice_edge" -H "X-API-Token: YOUR_API_TOKEN"

Themed feeds: GET /api/v2/feeds/<feed>/

  • Ready-made feeds built from the category the analysis gives every warning: military exercises and firing, rocket launches and space debris, cable and pipeline work, offshore works and rigs, surveys, wrecks and drifting hazards, aids to navigation, search and rescue, security and restricted areas.
  • Same output as the ice feed: positions, shapes and the analysis by default, the category in feed.category, ?output=geojson untuk sebuah FeatureCollection dan ?category=untuk menyimpan hanya beberapa kategori dari sebuah feed. Setiap parameter /api/v2/messages/ juga berfungsi, dan /api/v2/messages/?topic=military adalah feed yang sama.
  • Only warnings with an analysis are included. GET /api/v2/feeds/ (tidak perlu token) mencantumkan setiap feed dengan berapa banyak peringatannya yang sedang berlaku.
  • Rencana Full API, atau lisensi feed untuk satu feed (tahunan, ditagihkan): hubungi kami.
  • Free and without a token, for feed readers and scripts: RSS at /feeds/warnings.xml, /feeds/navarea/<id>.xml and /feeds/coastal/<id>.xml; the same three as Atom (.atom) and JSON Feed 1.1 (.json); plain text at /feeds/warnings.txt. The newest 100 warnings, text only, a warning keeps its id when it is updated. Region pages carry the feed links in their head, so a reader finds the feed from the page address.

Memuat feed…

curl "https://www.sealagom.com/api/v2/feeds/military/?output=geojson&navarea_id=3" -H "X-API-Token: YOUR_API_TOKEN"

prompt filter

  • Write what you want in plain words on the token (Full API plan). When you save, a model checks every warning in force against it; each new warning is checked within about 10 minutes of arriving.
  • /api/v2/messages/ panggilan dengan token itu kemudian hanya mengembalikan peringatan yang cocok. Sebuah peringatan yang cocok saat masih berlaku tetap cocok setelah diarsipkan.
  • Respons menambahkan meta.prompt_filter dengan prompt, statusnya (matching tepat setelah menyimpan, ready sesudahnya) dan berapa banyak peringatan yang cocok. ?prompt_filter=off melewatkannya untuk satu panggilan.
  • The filter can miss or over-include a warning. Use it to narrow a feed, not as the only safety check; the official broadcast stays the authority.
# Token with saved settings: nothing else needed
curl "https://www.sealagom.com/api/v2/messages/" -H "X-API-Token: YOUR_API_TOKEN"

# Same token, override the period for one call
curl "https://www.sealagom.com/api/v2/messages/?date_from=2026-09-01" -H "X-API-Token: YOUR_API_TOKEN"

# Token with the prompt "only space debris warnings around the USA"
{
  "count": 3,
  "results": [ ... ],
  "meta": {
    "prompt_filter": {
      "prompt": "only space debris warnings around the USA",
      "status": "ready",
      "matched": 3
    }
  }
}

Fitur geo terstruktur

Langganan Full API

Permintaan dengan include_messages=true and include_geo_features=true pada endpoint daftar/detail NAVAREA atau Coastal. Setiap pesan mungkin menyertakan sebuah geo_features objek dengan geometri terstruktur siap untuk chart dan GIS.

  • features[].kind: point, line, lane, area, circle, sector, displacement
  • circle / sector: sertakan radius_nm, titik pusat, dan batas bearing opsional
  • lane: garis tengah ditambah lebar koridor dalam corridor_nm or corridors_nm
  • points[]: derajat desimal; coordinates_raw[]: string koordinat asli dari peringatan
  • Peringatan multi-zona: message_profile, multi_zone, zone_labels, dan per-fitur metadata.zone_label
  • Zona keselamatan opsional: safety_zone_meters, safety_zone_nm
  • Ekspor file: Kontributor menerima geometri penuh dalam ECDIS dan KML. Format ekspor lain menyertakan geometri terstruktur ketika akun Anda memiliki akses Full API (lihat rencana).

Field pesan contoh

{
  "id": 123,
  "number": "105/26",
  "content": "HAZARDOUS OPERATIONS IN AREAS BOUND BY: A. 25-40.00N 096-47.00W, ... B. 25-58.00N ...",
  "coordinates": ["25-40.00N 096-47.00W", "..."],
  "geo_features": {
    "version": 1,
    "message_profile": "labeled_areas",
    "multi_zone": true,
    "zone_labels": ["A", "B"],
    "features": [
      {
        "id": "feat-a1b2c3d4",
        "kind": "area",
        "label": "Area A",
        "source": "labeled_zone",
        "coordinates_raw": ["25-40.00N 096-47.00W", "..."],
        "points": [{ "lat": 25.6667, "lon": -96.7833, "text": "25-40.00N 096-47.00W" }],
        "closed": true,
        "metadata": { "zone_label": "A" }
      },
      {
        "id": "feat-b2c3d4e5",
        "kind": "area",
        "label": "Area B",
        "source": "labeled_zone",
        "metadata": { "zone_label": "B" }
      }
    ]
  }
}

Contoh permintaan

curl -X GET "https://www.sealagom.com/api/v1/navarea/4/?include_messages=true&include_geo_features=true&include_coordinates=true" \
  -H "X-API-Token: YOUR_API_TOKEN"

analysis

Langganan Full API

Every new or changed warning is read by a model and turned into structured data. Add include_ai_analysis=true (dengan include_messages=true) pada endpoint daftar/detail NAVAREA atau Coastal dan setiap pesan membawa sebuah ai_analysis object, or null sementara peringatan baru masih menunggu untuk dianalisis.

  • headline, summary: deskripsi dalam bahasa sederhana (peringatan non-Inggris diterjemahkan)
  • status: active, scheduled, expired, withdrawn (tidak lagi ada dalam daftar yang masih berlaku dari penerbit), cancellation_notice, informational. Dihitung ulang pada setiap permintaan dari tanggal berlaku, sehingga sebuah peringatan bergerak dari terjadwal ke aktif ke kedaluwarsa dengan sendirinya.
  • valid_from / valid_until (ISO 8601 UTC) dan time_windows[]: periode aktivitas dan waktu pembatalan otomatis; validity_text mengutip frasa sumbernya
  • category, severity (kritis, tinggi, sedang, rendah, info), hazards[], mariner_action, location
  • newsworthy / background: for events the wider public would care about (space launches, missile tests, conflict, disasters), a few sentences of general context. It comes from general knowledge, not from the warning text, and can be wrong; empty for routine warnings
  • cancels[] / references[]: nomor peringatan yang dibatalkan atau dirujuk oleh pesan ini
  • Rincian operasional: keep_clear_nm (jarak aman terbesar, NM), contacts[] (saluran VHF, stasiun, telepon), vessels[] (nama, call sign, MMSI, IMO, peran), depth_m (kedalaman terdangkal di atas sebuah bangkai), observed_at (kapan objek hanyut dilaporkan), aids[] (sinyal cahaya dan pelampung yang terpengaruh, dengan kondisi), charts[]
  • translations: judul utama, ringkasan dan tindakan dalam bahasa Tionghoa, Spanyol, Rusia, Portugis, Yunani, Ukraina, Turki, Prancis dan Filipino
  • coord_check: positions the automatic read compared with the parser's (ok, mismatch dengan posisi hanya satu pihak yang menemukan)
  • Juga: status_label, category_label, status_at_analysis (status sebagaimana dinilai saat dianalisis), positions_read[] (positions as the automatic read them), confidence (0 sampai 1), analyzed_at and model
  • Seri berulang: is_routine, series_key and series_label mengelompokkan buletin berulang (laporan es, daftar posisi rig, daftar peringatan yang masih berlaku) sehingga Anda dapat menyimpan hanya terbitan terbaru

On the website, everyone sees each warning's headline and status; the full analysis on message pages and the map is part of the Contributor plan, and the full LagoPal (warning search, PDF reports, reading attached files and images) plus watch alerts are part of Full Contributor. Through the API the analysis comes with the Full API plan.

Dengan API v2 Anda juga dapat memfilter berdasarkan data ini: status langsung, kedaluwarsa (misalnya semua yang kedaluwarsa dalam 24 jam ke depan), sedang berlaku sekarang, tingkat keparahan, kategori, jarak aman, dan analisis yang menamakan kontak, kapal atau lampu.

Analisis dihasilkan secara otomatis dan bisa salah. Teks peringatan asli dalam content tetap merupakan sumber otoritatif.

Field pesan contoh

{
  "id": 123,
  "number": "1234/26",
  "content": "NAVAREA III 1234/26 ... GUNNERY EXERCISES ... CANCEL THIS MSG 301600 UTC SEP 26.",
  "ai_analysis": {
    "headline": "Gunnery firing exercises south of Crete, 28-30 Sep",
    "summary": "Live gunnery firing south of Crete daily 0600-1500 UTC from 28 to 30 September. Ships should keep clear of the area.",
    "category": "firing_practice",
    "category_label": "Firing practice",
    "subject": "firing",
    "subject_label": "Firing exercise",
    "severity": "high",
    "status": "active",
    "status_label": "Active",
    "status_at_analysis": "scheduled",
    "valid_from": "2026-09-28T06:00:00+00:00",
    "valid_until": "2026-09-30T16:00:00+00:00",
    "validity_text": "280600 UTC TO 301500 UTC SEP 26. CANCEL THIS MSG 301600 UTC SEP 26",
    "time_windows": [{ "start": "2026-09-28T06:00:00+00:00", "end": "2026-09-30T15:00:00+00:00", "note": "daily 0600-1500 UTC" }],
    "location": "South of Crete",
    "hazards": ["live firing"],
    "mariner_action": "Keep clear of the area during the firing periods.",
    "newsworthy": false,
    "background": "",
    "keep_clear_nm": 3,
    "contacts": [{ "type": "vhf", "value": "VHF 16", "note": "HN warship" }],
    "vessels": [],
    "depth_m": null,
    "observed_at": null,
    "aids": [],
    "charts": [],
    "coord_check": { "status": "ok", "ai_count": 4, "parser_count": 4, "ai_only": [], "parser_only": [] },
    "translations": { "es": { "headline": "Ejercicios de tiro al sur de Creta, 28-30 sep", "summary": "...", "mariner_action": "..." } },
    "cancels": ["1198/26"],
    "references": [],
    "is_routine": false,
    "series_key": "",
    "series_label": "",
    "confidence": 0.92,
    "analyzed_at": "2026-09-27T08:10:00+00:00",
    "model": "gpt-5-mini"
  }
}

Contoh permintaan

curl -X GET "https://www.sealagom.com/api/v1/navarea/3/?include_messages=true&include_ai_analysis=true" \
  -H "X-API-Token: YOUR_API_TOKEN"

Objek peta (rig & MODU)

Peringatan yang menyertakan daftar posisi rig atau MODU mungkin mengembalikan sebuah map_objects field pada setiap pesan ketika Anda menggunakan include_messages=true.

Message field: map_objects.oil_rigs[]

  • name: nama rig atau unit seperti yang dipublikasikan
  • coordinate: string koordinat dari peringatan
  • lat, lon: derajat desimal
  • is_new_rig, is_new_position: ketika ditandai dalam teks sumber
  • catalog (opsional): entri katalog yang cocok dengan slug, href, MMSI, navigation area

Katalog publik (tanpa token API)

  • GET /api/public/modu/?q=&page=1 - search active rigs
  • GET /api/public/modu/s/{slug}/ - detail rig dan peringatan terkait
  • GET /api/public/map-rigs/ - all active rigs for map overlays

stasiun radio pantai dan pusat penyelamatan

Pusat koordinasi penyelamatan (RCC, MRCC, MRSC, JRCC) dan stasiun DSC pantai dari 70 negara, berdasarkan NGA Pub 117 Radio Navigational Aids (bab 4), dengan stasiun uji DSC MF/HF SeaLagom ditandai. Tidak perlu token API.

  • GET /api/public/coast-stations/ - every station with a position, short rows (id, k, n, c, m, la, lo, r, b, t)
  • GET /api/public/coast-stations/{id}/ - satu stasiun: MMSI, band dan jangkauan, waktu siaga, area, kontak
  • GET /api/public/coast-stations/near/?lat=&lon=&radius_nm=200&limit=12 - nearest stations

near returns rcc_covering (pusat penyelamatan yang areanya memuat posisi), rcc_near, dsc_near and test_nearest, masing-masing dengan distance_nm. position_approximate adalah benar ketika Pub 117 tidak memberikan posisi dan stasiun ditempatkan di pelabuhan dengan nama yang sama. Periksa setiap entri terhadap daftar radio resmi Anda.

curl "https://www.sealagom.com/api/public/coast-stations/near/?lat=36.8&lon=3.1&radius_nm=150"

Space: launches, hazard warnings, re-entries, objects in orbit

Rocket launches of every agency and company from Launch Library 2 (The Space Devs), refreshed hourly, each with the NAVAREA and coastal warnings of its hazard areas at sea (stage, booster and fairing drop zones, landing zones), SpaceX droneships and capsule splashdowns. A warning is linked only when its wording is a launch, one of its windows holds the launch time and opens within an hour of the launch window, an area lies within 1,000 nm of the pad and no other launch fits as well. No API token needed.

  • GET /api/public/space/launches/?from=&to=&provider=&limit= - launches (default 7 days back to 60 ahead) with warnings
  • GET /api/public/space/launches/{id}/ - one launch, its description and the warning page line
  • GET /api/public/space/reentries/ - re-entry predictions (Space-Track TIP) when available
  • GET /api/public/sky/space/?g=bright|stations|recent|rocket|debris - positions now and a minute later (SGP4)
  • GET /api/public/sky/space/meta/?g= - names, owners, launch dates and sizes (SATCAT)

Sources: Launch Library 2 (thespacedevs.com), CelesTrak, Space-Track.org (USSPACECOM). The warnings themselves stay the authority for navigation.

curl "https://www.sealagom.com/api/public/space/launches/?provider=SpaceX&limit=10"

Finlandia dan Baltik: navigasi di es, lampu dan pelampung rusak

Navigasi musim dingin layanan pemecah es Finlandia-Swedia (pelabuhan dengan pembatasan es atau ditutup, kapal pemecah es dan tugasnya, rute di es) serta lampu dan pelampung yang rusak di perairan Finlandia, dari Fintraffic Digitraffic, diperbarui setiap 10 menit. Tidak perlu token API. Lisensi CC BY 4.0: tampilkan kredit yang menyertai data.

  • GET /api/public/winter-navigation/
  • GET /api/public/aton-faults/

Pembatasan seperti IA 2000 berarti bantuan pemecah es hanya untuk kapal dengan setidaknya kelas es dan bobot mati (ton) tersebut. Di luar musim, daftar kosong. Pemberitahuan resmi layanan navigasi musim dingin yang berlaku.

curl "https://www.sealagom.com/api/public/winter-navigation/"

Your own vessels: positions in by API or webhook

Push the positions of your own vessels from trackers, satellite AIS, Noon or the bridge. They show live in your sky view and on the chart, for your account only, drawn at their real size, with a Fleet panel: status (under way, at anchor or stopped, no update), the last position and its age, speed and course, the ETA when a route is set, the warnings in force near each vessel and along her route, and the approximate under-keel clearance. Private by default; showing a vessel to everyone is a paid placement labelled Sponsored. Not for navigation.

  • POST /api/v2/fleet/positions/: one position, a list, or {positions: [...]}, at most 500 a request
  • GET /api/v2/fleet/vessels/: every vessel with her live state (?detail=1)
  • GET /api/v2/fleet/vessels/{vessel}/: one vessel: our id, MMSI, IMO, your own id or her name; her last 24 hours
  • PUT|DELETE /api/v2/fleet/vessels/{vessel}/route/: her route for the ETA and the warnings along it
  • GET|POST /api/v2/fleet/webhook/: your webhook receiver; {rotate: true} makes a new signing secret, shown once
  • GET /api/v2/fleet/access/, POST /api/v2/fleet/trial/: what your account may do; the free trial

A position

The vessel by vessel_id (our id, or your own id for her), mmsi or imo, with her name the first time; lat and lon in decimal degrees; time in UTC as ISO 8601 or Unix seconds. Optional: speed (knots), course, heading, draught (metres, as reported), length and beam (metres), destination, nav_status (the AIS number). The spellings providers use are read too: latitude, lng, sog, cog, hdg, timestamp, a nested position, a GeoJSON Point.

curl -X POST https://www.sealagom.com/api/v2/fleet/positions/ \
  -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"positions": [
        {"mmsi": "244123456", "name": "NORTH STAR", "lat": 51.9512, "lon": 4.0417,
         "time": "2026-10-31T12:00:00Z", "speed": 12.1, "course": 271, "heading": 270,
         "draught": 9.4, "length": 182, "beam": 28},
        {"vessel_id": "TRK-0042", "name": "SEA BIRD", "lat": 1.2402, "lon": 103.8523,
         "time": 1793448000}
      ]}'

Each position is checked and refused with a plain reason in the answer (refused: [{index, why}]): no vessel named, out of range or 0, 0, no time, older than 24 hours or more than 5 minutes ahead of our clock, a speed over 80 knots, an impossible jump from her last position (over 60 knots), a second position within 10 seconds of the last one or older than it (send them in time order), a new vessel over your plan's number of vessels. 200 when any was kept, 422 when none was.

Reading your fleet

curl https://www.sealagom.com/api/v2/fleet/vessels/ -H "Authorization: Bearer YOUR_KEY"
curl https://www.sealagom.com/api/v2/fleet/vessels/244123456/ -H "Authorization: Bearer YOUR_KEY"
curl -X PUT https://www.sealagom.com/api/v2/fleet/vessels/244123456/route/ \
  -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"name": "Rotterdam to Felixstowe", "speed_kn": 14,
       "waypoints": [[51.95, 4.05], [51.98, 2.90], [51.93, 1.40]]}'
import datetime, requests

KEY = "YOUR_KEY"
now = datetime.datetime.now(datetime.timezone.utc).isoformat()
r = requests.post(
    "https://www.sealagom.com/api/v2/fleet/positions/",
    headers={"Authorization": f"Bearer {KEY}"},
    json={"positions": [{"imo": "9074729", "name": "ALPHA", "lat": 36.84, "lon": -6.42,
                         "time": now, "speed": 11.4, "course": 145, "draught": 8.2}]},
    timeout=20,
)
print(r.status_code, r.json())          # accepted, refused [{index, why}], vessels
for v in requests.get("https://www.sealagom.com/api/v2/fleet/vessels/",
                      headers={"Authorization": f"Bearer {KEY}"}, timeout=20).json()["vessels"]:
    print(v["name"], v["status"], v["position"]["age_s"], v["speed_kn"],
          (v["route"] or {}).get("eta"), v["warnings_near"]["count"])

The ETA is worked out along the rest of her route at her reported speed, or at the route's planned speed while she reports none. The warnings near her are those in force within 50 nm; along her route, those within 10 nm of the rest of it, in the order she meets them. The under-keel clearance is an estimate, never a safety value: GEBCO is not a nautical chart, depths are not reduced to chart datum, tides are not included, the draught is what the crew reported.

Webhook for providers that push

Your account has its own receiver address (GET /api/v2/fleet/webhook/ or the Fleet panel). Point your tracker, satellite AIS provider or Noon at it; any JSON with positions is read (our format, a list, data or items envelopes, a GeoJSON FeatureCollection). Sign every push with your secret: the header X-SeaLagom-Signature: t=<Unix seconds>,v1=<hex HMAC-SHA256 of t, a dot and the raw body>, within 5 minutes of our clock; or X-Hub-Signature-256: sha256=<hex HMAC-SHA256 of the raw body>. ?provider= names the source.

import hashlib, hmac, json, time, requests

SECRET = "flsec_..."                         # Fleet panel, Make the signing secret
URL = "https://www.sealagom.com/api/fleet/hook/flh_.../"      # GET /api/v2/fleet/webhook/
body = json.dumps({"data": [{"MMSI": "244123456", "LATITUDE": 51.95, "LONGITUDE": 4.05,
                             "SOG": 12.1, "COG": 271, "TIMESTAMP": int(time.time())}]}).encode()
t = int(time.time())
sig = hmac.new(SECRET.encode(), f"{t}.".encode() + body, hashlib.sha256).hexdigest()
r = requests.post(URL + "?provider=MyTracker", data=body, timeout=20, headers={
    "Content-Type": "application/json", "X-SeaLagom-Signature": f"t={t},v1={sig}"})
print(r.status_code, r.json())

Agents (MCP)

The same as an MCP server: tools fleet_access, fleet_vessels, fleet_vessel, fleet_push_positions, fleet_set_route and fleet_start_trial, with your key as Bearer.

{
  "mcpServers": {
    "sealagom-fleet": {
      "url": "https://www.sealagom.com/mcp/fleet",
      "headers": { "Authorization": "Bearer YOUR_KEY" }
    }
  }
}

Who may use it

The plans that include fleets (Fleet, All In, Fleet Pro and the Fleet unlimited license) and company licences. People can try it free for 7 days with up to 3 vessels, once per account (POST /api/v2/fleet/trial/ or the Fleet panel). Limits: 120 requests a minute per account and a number of positions a day by the access. These calls never use the requests of a data plan. Plans with fleets

API pesisir

peringatan navigasi pesisir menurut wilayah hidrogrrafi, biasanya lebih lokal daripada NAVAREA, mencakup operasi pelabuhan, bahaya pesisir, dan pemberitahuan keselamatan maritim lokal.

  • GET /api/v1/coastal/
  • GET /api/v1/coastal/{id}/
  • GET /api/v1/coastal/{id}/messages/
  • GET /api/v1/coastal/{id}/archived_messages/

Permintaan dasar

curl -X GET "https://www.sealagom.com/api/v1/coastal/?include_messages=true" \
  -H "X-API-Token: YOUR_API_TOKEN"

Parameter kueri pesisir

Endpoint daftar / detail pesisir menerima gaya filter yang sama seperti NAVAREA jika berlaku.

ParameterTipeDeskripsi
idintegerFilter berdasarkan ID wilayah pesisir.
titlestringFilter berdasarkan judul.
sub_titlestringFilter berdasarkan sub_title.
include_messagesbooleanSertakan pesan pesisir aktif.
include_archivedbooleanSertakan pesan yang diarsipkan (Full / Custom).
include_coordinatesbooleanKoordinat dalam respons (Full / Custom).
include_enhanced_coordinatesbooleanFormat Decimal, Google Maps, GeoJSON, DMS (Full / Custom).
include_keywordsbooleanPeta kata kunci dalam respons (Full / Custom).
include_geo_featuresbooleangeo_features JSON terstruktur per pesan (hanya Full API).
include_ai_analysisbooleanai_analysis JSON per pesan (hanya Full API).
date_fromdateSemantik sama seperti NAVAREA (Full / Custom).
date_todateSemantik sama seperti NAVAREA (Full / Custom).
keywordstringFilter kata kunci (Full / Custom).
has_coordinatesbooleanSaring pesan yang memiliki koordinat (Full / Custom).
countrystringSaring menurut nama negara (cocok sebagian).
content_searchstringCari isi pesan (parsial).
title_searchstringCari di dalam judul (cocok sebagian).

Integrasi webhook

Pelanggan Full API dan Custom dapat mengonfigurasi URL webhook untuk menerima notifikasi POST real-time kapan pun peringatan NAVAREA atau Pesisir ditambahkan, diperbarui, atau diarsipkan (tanpa polling).

Cara kerja webhook

  1. Konfigurasikan URL webhook di pengaturan langganan Anda.
  2. Saat peringatan diterbitkan atau diperbarui, kami mengirim POST yang ditandatangani ke URL Anda.
  3. Verifikasi permintaan menggunakan webhook secret Anda.
  4. Server Anda memproses payload dan mengambil tindakan (perbarui DB, kirim notifikasi, dll.).

Security

  • Only public https:// URLs are called (no private or local addresses, port 443, no redirects followed).
  • X-Sealagom-Signature is HMAC-SHA256 of the body with your secret; X-Sealagom-Signature-256 is sha256= + HMAC-SHA256 of <X-Sealagom-Timestamp>.<body>. Check one of them, and reject deliveries whose timestamp is older than five minutes.
  • X-Sealagom-Delivery is unique per call: keep the last ids to drop a repeated delivery.
  • Alerts can also go to a Slack, Discord or Teams incoming webhook, or to Zapier, Make, n8n and IFTTT: Integrations.

Konfigurasikan webhook

curl -X POST "https://www.sealagom.com/api/v1/subscriptions/1/webhook/" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"webhook_url": "https://your-server.com/webhook", "webhook_secret": "your_secret_key"}'

Contoh payload webhook

{
  "event_type": "navarea_message_added",
  "timestamp": "2024-06-01T12:34:56Z",
  "data": {
    "navarea_id": 1,
    "message_id": 123,
    "title": "NAVAREA I",
    "number": "123/24",
    "content": "Message content...",
    "added_on": "2024-06-01T12:30:00Z"
  },
  "signature": "generated_signature_for_verification"
}

Kasus penggunaan

API SeaLag.om cocok untuk berbagai aplikasi maritim. Beberapa contoh:

Perangkat lunak navigasi

Lapisi peringatan NAVAREA dan Pesisir langsung pada peta elektronik. Gunakan penyaringan koordinat untuk menampilkan hanya bahaya yang relevan dengan posisi kapal atau rute yang direncanakan.

Aplikasi seluler untuk pelaut

Notifikasi push tentang peringatan baru di area yang diminati. Gabungkan penyaringan geografis dengan webhook untuk memberi tahu pengguna hanya untuk wilayah yang mereka tentukan.

Alat penilaian risiko

Masukkan data peringatan ke dalam perencanaan rute dan analisis keselamatan. Penyaringan kata kunci memungkinkan Anda mengisolasi jenis bahaya seperti SUBMARINE CABLES, MILITARY EXERCISES, atau PIRACY.

Analisis historis

Gunakan penyaringan tanggal dan feed pesan yang diarsipkan untuk mengidentifikasi pola peringatan musiman, bahaya yang berulang, atau koridor berisiko tinggi dari waktu ke waktu.

Integrasi GIS

Masukkan data koordinat (decimal, GeoJSON, DMS) ke ArcGIS, QGIS, atau lapisan peta kustom untuk membuat visualisasi bahaya maritim yang dinamis.

Sistem peringatan kustom

Bangun sistem peringatan otomatis untuk perusahaan pelayaran, operator lepas pantai, atau otoritas pelabuhan. Webhooks akan memicu secara instan ketika peringatan baru cocok dengan kriteria Anda.

Perlu sesuatu yang tidak tercantum di sini? contact@sealagom.com

Pola integrasi data

Pola umum untuk mengintegrasikan data peringatan maritim ke dalam sistem Anda:

PolaDeskripsiTingkat yang disarankan
Sinkronisasi berkalaJadwalkan panggilan API rutin untuk menyinkronkan peringatan ke basis data Anda. Cocok ketika pengiriman waktu nyata tidak diperlukan.Full API
Pembaruan waktu nyataIntegrasi webhook mengirimkan notifikasi segera pada peristiwa terbit / pembaruan.Full atau Kustom
Penyaringan geografisSaring berdasarkan koordinat untuk mengambil hanya data yang relevan dengan area operasi tertentu.Full atau Kustom
Peringatan berbasis kata kunciPeringatan otomatis dipicu oleh kata kunci tertentu dalam pesan peringatan (mis. kabel bawah laut, latihan militer).Full atau Kustom
Penyimpanan dataMasukkan data peringatan ke pipeline BI dan analitik menggunakan endpoint rentang-tanggal dan arsip.Full atau Kustom
Plot / tumpang-tindih GISPlot peringatan yang diperkaya koordinat pada chart elektronik atau sistem pemetaan.Full atau Kustom
Bentuk respons kustomPemilihan field tertentu, format spasial khusus, atau struktur JSON non-standar.Kustom

Tip pengembang: Gunakan filter lanjutan untuk meminimalkan transfer dan pemrosesan data. Dengan begitu jawaban tingkat gratis tetap dalam jumlah catatan yang diizinkan per panggilan, dan ukuran jawaban berkurang pada paket Full / Custom.

Pembatasan laju & penggunaan token

The free tier counts calls a day (above). The Full API plans count no tokens and have a daily fair use (UTC): 20,000 calls and 2,000,000 warnings on API Default, 60,000 calls and 6,000,000 warnings on every Full API plan, shown in X-API-Daily-Calls-Limit and X-API-Daily-Calls-Remaining; past it the API answers 429 until 00:00 UTC. No limit at all comes with the Fleet unlimited license: yearly, by a proposal to [email protected].

PaketPermintaanArsip / Koordinat / Kata kunci
Free tierAPI tanpa kunci: 100 panggilan per hari, hingga 50 peringatan per panggilan, selama 3 hari atau 300 panggilan, mana yang lebih duluTidak termasuk
API DefaultTidak terbatasArchived + raw coordinates; no keywords, enhanced coordinates, geo_features or analysis
Full APITidak terbatasSemua termasuk
KustomDisepakati per kontrakSepenuhnya dapat dikustomisasi

Sisa panggilan API gratis Anda ditampilkan di Profil → API.

Contoh

Permintaan koleksi dasar

curl -X GET "https://www.sealagom.com/api/v1/navarea/?include_messages=true" \
  -H "X-API-Token: YOUR_API_TOKEN"

Contoh respons daftar (dipangkas)

{
  "count": 21,
  "next": "https://www.sealagom.com/api/v1/navarea/?page=2",
  "previous": null,
  "results": [
    {
      "id": 1,
      "title": "NAVAREA I",
      "time_upd": "2024-06-01T12:30:00Z",
      "active_messages": [
        {
          "id": 123,
          "number": "123/24",
          "content": "Full warning text as published...",
          "added_on": "2024-06-01T12:30:00Z",
          "cancel_date": null
        }
      ]
    }
  ]
}

Filter lanjutan (Lengkap / Kustom)

curl -X GET "https://www.sealagom.com/api/v1/navarea/?include_messages=true&date_from=2024-01-01&date_to=2024-12-31&keyword=GUNNERY%20EXERCISE&country=United%20Kingdom" \
  -H "X-API-Token: YOUR_API_TOKEN"

Respons Full API dengan koordinat & kata kunci

{
  "count": 21,
  "next": "https://www.sealagom.com/api/v1/navarea/?page=2&include_messages=true&include_coordinates=true&include_keywords=true",
  "previous": null,
  "results": [
    {
      "id": 1,
      "title": "NAVAREA I",
      "country": "United Kingdom",
      "time_upd": "2024-06-01T12:30:00Z",
      "active_messages": [
        {
          "id": 123,
          "number": "123/24",
          "content": "NORTH SEA. UNIT ORCADES FIELD...",
          "added_on": "2024-06-01T12:30:00Z",
          "cancel_date": null,
          "coordinates": {
            "text_coordinates": ["59-08.0N 000-34.0E"],
            "decimal_coordinates": [[59.1333, 0.5667]],
            "google_coordinates": ["59.1333 0.5667"],
            "geojson_coordinates": [[0.5667, 59.1333]],
            "dms_coordinates": [["59°08'00"N", "0°34'00"E"]]
          },
          "keywords": {
            "hazard": "HAZARD TO NAVIGATION",
            "location": "NORTH SEA, ORCADES FIELD",
            "action": "CANCEL"
          }
        }
      ]
    }
  ]
}

Filter pesan dengan koordinat, semua format

curl -X GET "https://www.sealagom.com/api/v1/navarea/?include_messages=true&has_coordinates=true&include_coordinates=true&include_enhanced_coordinates=true" \
  -H "X-API-Token: YOUR_API_TOKEN"

Filter gabungan

curl -X GET "https://www.sealagom.com/api/v1/navarea/?include_messages=true&date_from=2024-01-01&keyword=GUNNERY%20EXERCISE&has_coordinates=true&country=United%20Kingdom" \
  -H "X-API-Token: YOUR_API_TOKEN"
Beta look