API морської навігації
Програмний доступ до попереджень NAVAREA та прибережних попереджень. Підписка REST доступна в /api/v1/ з заголовком X-API-Token. Вищі рівні відкривають координати, карти ключових слів, увесь архів одразу та розширені фільтри.
Розробникам: увійдіть через GitHub, і за десять секунд на вкладці API буде ключ Developer з 2 000 безкоштовних запитів щодо чинних попереджень. Архіви й повний аналіз входять у платні плани.
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 overviewEverything 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.pyandjs/sealagom.mjs, no dependencies beyond requests or fetch; generate any other language fromopenapi.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-TokenorAuthorization: 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=(ormmsi,warningandregion,port,locode,latandlon) 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).
Початок роботи
- Виберіть тариф на плани Contributor.
- Створіть API токен у Профіль → API.
- Надіслати
X-API-Tokenна кожен/api/v1/запит. - Дотримуйтеся пагінації та використання токена на кінцевих точках списків.
Плани підписки на API
Оновіться до API Default для сирого тексту та координат, до Full API для структурованої геометрії (geo_features), або зв'яжіться з нами для індивідуальної інтеграції.
Безкоштовний тариф API
API без ключа: 100 запитів на день і до 50 попереджень за запит, протягом 3 дн. або 300 запитів, що настане раніше.
Коли ліміт вичерпано, API відповідає HTTP 402: що використано, коли ліміт оновиться, і посилання для оплати одразу (оформлення замовлення, криптовалюта або POST /api/agent/checkout/ зі скрипта).
Якщо ви ввійшли в акаунт без плану API, той самий безкоштовний тариф рахується за акаунтом. Ліміт розробника GitHub залишається окремим.
Лише чинні повідомлення. Без архіву, координат, розширених координат, ключових слів, вебхуків і розширених фільтрів.
API Default
Необмежена кількість запитів, $20 перший місяць, потім $18 / місяць з автооновленням
- Необмежені запити до API
- Живі повідомлення NAVAREA і прибережні повідомлення
- Доступ до архівних повідомлень
- Сирий текст повідомлення та координати
- Інтеграція вебхуків для оновлень у реальному часі
Not included: geo_features (areas, circles, sectors, lanes, safety zones), analysis, keywords, or enhanced coordinate formats. Those need Full API.
Підписатися на API DefaultFull API
Необмежена кількість запитів, $100 first month, then $90 / month with auto-renew
- Необмежені запити до API
- Живі повідомлення NAVAREA і прибережні повідомлення
- Доступ до архівних повідомлень
- Координати (усі формати: decimal, GeoJSON, DMS, Google Maps)
- geo_features: точки, лінії, смуги, площі, кола, сектори, зсуви, зони безпеки
- analysis of every warning: summary, status, validity / expiry, hazards, recurring series
- Структурована геометрія у форматах GeoJSON, CSV, Shapefile, WKT (повна геометрія для ECDIS та KML на Contributor)
- Екстракція карти ключових слів
- Розширені фільтри (дата, ключове слово, країна, тип, has_coordinates)
- Інтеграція вебхуків для оновлень у реальному часі
Custom API
Підлаштовано під ваші потреби; зв'яжіться з нами
- Усе з Full API
- Користувацькі форми відповіді та формати даних
- Конкретні поля, структури або просторові формати за запитом
- Виділена підтримка та керівництво інтеграцією
- Партнерські або великонавантажені рішення
- SLA та індивідуальні навантаження webhook-пейлоадів
Потрібно щось індивідуальне? Напишіть нам електронною поштою contact@sealagom.com Відповіді API можна налаштувати під будь-який формат або просторову структуру.
Переглянути актуальні плани та підписатисяІнтерактивний конструктор запитів
Складіть GET URL і скопіюйте приклади (cURL, Python, JavaScript, Java, Rust). Замініть токен на свій.
Використовуєте ті самі параметри щоразу? Збережіть їх безпосередньо в токені за допомогою API v2 builder у вашому профілі з попереднім переглядом у реальному часі.
Згенерований URL
https://www.sealagom.com/api/v1/navarea/?include_messages=truecurl -X GET "https://www.sealagom.com/api/v1/navarea/?include_messages=true" \
-H "X-API-Token: YOUR_API_TOKEN"Огляд
Ласкаво просимо до SeaLag.om Maritime Navigation API!
Цей API надає програмний доступ до попереджень NAVAREA та прибережних попереджень, які є важливими для безпеки на морі та навігації.
Передплатники Full API отримують розширені дані, зокрема координати (кілька форматів), ключові слова, увесь архів одразу та розширені фільтри. Потрібен власний формат або просторова структура? Зв'яжіться з нами для індивідуальної інтеграції.
Відповіді мають форму JSON список / деталі. Використовуйте page and page_size де підтримується.
Аутентифікація
Надішліть заголовок X-API-Token: <token> на кожен /api/v1/ запит. Відсутні або недійсні токени повертають 401 Unauthorized. Токени створюються у вашому профілі; замінюйте або відкликайте на тій же сторінці.
X-API-Token: YOUR_API_TOKENУправління токенами
- GET /api/v1/tokens/ - перелічити ваші токени
- POST /api/v1/tokens/ - створити токен
- POST /api/v1/tokens/{id}/regenerate/ - перегенерувати (робить старе значення недійсним)
# 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 та налаштування токенів
API v2 використовує той самий токен, плани та облік запитів, що й v1. Усе під /api/v1/ продовжує працювати точно так само, тож існуючі інтеграції не потребують змін. v2 додає:
- Один список всіх попереджень:
GET /api/v2/messages/, NAVAREA та прибережні разом, від новіших до старіших, кожне повідомлення з його регіоном, країною та статусом архіву. - Фільтри повідомлень на кінцевих точках регіонів:
/api/v2/navarea/and/api/v2/coastal/відповідають як v1 і також застосовуютьdate_from,date_to,keywordandhas_coordinatesдо повідомлень, які вони повертають. - Налаштування, збережені на кожному токені: виберіть токен на Profile > API > API v2 builder, сформуйте відповідь за допомогою меню та живого перегляду і збережіть. Кожен виклик /api/v2/ з цим токеном повертає ту форму; виклики /api/v1/ ігнорують збережені налаштування і відповідають точно як раніше.
- prompt filter (Full API):опишіть попередження, які має повертати токен, своїми словами, наприклад "тільки попередження про космічне сміття поблизу США".
- 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/
| Параметр | План | Що він робить |
|---|---|---|
| scope | Усі | navarea, coastal або all (за замовчуванням). |
| navarea_id | Усі | Одна або кілька id NAVAREA (повторюйте або розділяйте комами). |
| coastal_id | Усі | Одна або кілька id прибережних регіонів. |
| country | Усі | Назва країни, часткова відповідність (наприклад France). |
| q | Усі | Слова з тексту попередження (оригінал або англійською). |
| date_from, date_to | Усі | Додано не раніше / не пізніше, YYYY-MM-DD. |
| keyword | Усі | Категорія ключового слова або будь-яке слово в тексті; повторюйте для кількох. |
| has_coordinates | Усі | true: тільки попередження з позиціями. |
| include_locals | Усі | true: також французькі локальні (AVURNAV) попередження. |
| include_archived, only_archived | Платне API | Активні та архівні, або тільки архівні. |
| status, message_class, station, lat, lon, radius_nm, bbox | Усі | Фільтри архіву: in_force, cancelled або expired; тип; станція NAVTEX; позиція з радіусом у милях або прямокутник west,south,east,north. |
| include_coordinates | Платне API | Позиції, витягнуті з кожного попередження. |
| include_enhanced_coordinates | Full API | Десяткові, DMS, GeoJSON та посилання на карту для кожної позиції. |
| include_keywords | Full API | Карта ключових слів для кожного попередження. |
| include_geo_features | Full API | Площі, кола, лінії, смуги, сектори як GeoJSON. |
| include_ai_analysis | Full API | The analysis object per warning. |
| ai_severity | Full API | critical, high, moderate, low, info (повторюйте для кількох). |
| ai_category | Full API | category ids, e.g. firing_practice, piracy_or_security. |
| ai_status | Full API | Статус у реальному часі: active, scheduled, expired, withdrawn (archived), cancellation_notice, informational. |
| ai_in_force | Full API | true: тільки попередження, що діють зараз. |
| expires_within_hours | Full API | Тільки попередження, у яких valid_until припадає на наступні N годин. |
| expires_after, expires_before | Full API | valid_until не раніше / не пізніше дати (YYYY-MM-DD) або ISO-часу. |
| exclude_routine | Full API | true: не включати звичайні звіти (льодові звіти, списки платформ, списки в дії). |
| ai_has | Full API | Тільки аналізи з: contacts, vessels, aids, keep_clear, time_windows, charts, hazards. |
| min_keep_clear_nm | Full API | Відстань для утримання не менше N морських миль. |
| page, page_size | Усі | За замовчуванням 50 на сторінку; до 200 на платних планах, 50 на безкоштовному. |
| prompt_filter | Full API | off: ignore the token's prompt filter for this call. |
| topic | Full API | Потік: ice, military, space, cables, offshore, survey, hazards, aton, sar, security (див. Themed feeds). |
| settings | Усі | off: ігнорувати збережені налаштування токена для цього виклику (звичайний виклик). |
Поля або фільтри, які не входять до вашого плану, пропускаються і перераховуються в meta.warnings, ніколи не як помилка.
content є текстом, як транслювалося; 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 називає оригінальну мову.
US Coast Guard Local Notices to Mariners (10 районів, оновлюються щотижня) , прибережні регіони з назвою US Coast Guard LNM, country US. They are not analysed, so their automatic fields are empty; each district also has one message, number LNMxx-DISCREPANCIES, у якому перелічені його засоби навігації з розбіжністю.
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 }
}
]
}Налаштування, збережені в токені
- Один токен, одна форма: 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.
- Кожна опція показана, Включно з Full API, із зазначенням плану, який потрібен. Збереження вимагає активного API plan.
- URL переважає: будь-який параметр у URL замінює збережене значення для того виклику;
?settings=offробить простий виклик. - Відносні періоди: "останні 30 днів" надсилає
date_fromяк сьогодні мінус 30 днів при кожному виклику. - Відповіді містять
X-API-Token-Settingsзаголовок, що вказує токен, налаштування якого були застосовані.
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повертає GeoJSON FeatureCollection, по одному feature на форму, готове для перевірок маршруту та накладання на карти. ice_typeзвужує його: iceberg, sea_ice, ice_edge, icing, ice_report, icebreaker, ice_navigation, other_ice (повторюйте або розділяйте комою). Всі параметри /api/v2/messages/ також працюють, і/api/v2/messages/?topic=iceце той самий фід.- Full API plan або ліцензія на ice feed (щорічна, з виставленням рахунку): зв'яжіться з нами.
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для FeatureCollection і?category=щоб залишити тільки деякі категорії фіду. Всі параметри /api/v2/messages/ також працюють, і/api/v2/messages/?topic=militaryце той самий фід. - Only warnings with an analysis are included.
GET /api/v2/feeds/(токен не потрібен) перераховує всі фіди з кількістю попереджень, що перебувають у силі. - Full API plan або ліцензія на фід для одного фіду (щорічна, з виставленням рахунку): зв'яжіться з нами.
- Free and without a token, for feed readers and scripts: RSS at
/feeds/warnings.xml,/feeds/navarea/<id>.xmland/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.
Завантаження стрічок…
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/виклики з цим токеном тоді повертають лише відповідні попередження. Попередження, яке відповідало під час знаходження в силі, залишається відповідним після архівації.- У відповіді додається
meta.prompt_filterз prompt, його статусом (matchingвідразу після збереження,readyпізніше) і кількістю відповідних попереджень.?prompt_filter=offпропускає його для одного виклику. - 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
}
}
}Структуровані геофічні об'єкти
Підписка Full APIЗапит з include_messages=true and include_geo_features=true на NAVAREA або Coastal ендпоінтах списку/деталей. Кожне повідомлення може містити geo_features об'єкт зі структурованими геометріями, готовими для карт і GIS.
- features[].kind:
point,line,lane,area,circle,sector,displacement - circle / sector: включає
radius_nm, центральну точку, та необов'язкові межі курсу - lane: центральна лінія плюс ширина коридору в
corridor_nmorcorridors_nm points[]: десяткові градуси;coordinates_raw[]: оригінальні рядки координат з попередження- Попередження з кількома зонами:
message_profile,multi_zone,zone_labels, та для кожного об'єктаmetadata.zone_label - Необов'язкові зони безпеки:
safety_zone_meters,safety_zone_nm - Експорт файлів: Contributor отримують повну геометрію в ECDIS і KML. Інші формати експорту включають структуровану геометрію, коли ваш акаунт має доступ Full API (див. плани).
Приклад поля повідомлення
{
"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" }
}
]
}
}Приклад запиту
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
Підписка Full APIEvery new or changed warning is read by a model and turned into structured data. Add include_ai_analysis=true (з include_messages=true) на кінцеві точки списку/деталей NAVAREA або Coastal, і кожне повідомлення несе ai_analysis object, or null поки нове попередження ще чекає на аналіз.
- headline, summary: опис простими словами (несофтні попередження перекладаються)
- status:
active,scheduled,expired,withdrawn(більше не в силах у списку видавця),cancellation_notice,informational. Перераховується при кожному запиті з дат дійсності, тому попередження автоматично переходить зі стану заплановано у активне та потім у прострочене. - valid_from / valid_until (ISO 8601 UTC) і
time_windows[]: періоди активності і час автоматичного припинення;validity_textцитує фразу джерела - category, severity (критичний, високий, помірний, низький, інформаційний),
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 warningscancels[]/references[]: номера попереджень, які це повідомлення скасовує або на які посилається- Оперативні деталі:
keep_clear_nm(максимальна відстань для утримання, NM),contacts[](VHF канали, станції, телефони),vessels[](назва, позивний, MMSI, IMO, роль),depth_m(найменша глибина над затонулою спорудою),observed_at(коли було повідомлено про дрейфуючий предмет),aids[](вогні та буї, що зачіпаються, з їхнім станом),charts[] translations: заголовок, резюме та заходи китайською, іспанською, російською, португальською, грецькою, українською, турецькою, французькою та філіппінськоюcoord_check: positions the automatic read compared with the parser's (ok,mismatchз позиціями, які знайшов тільки один з методів)- Також:
status_label,category_label,status_at_analysis(статус на момент аналізу),positions_read[](positions as the automatic read them),confidence(0 до 1),analyzed_atandmodel - Серії з повторенням:
is_routine,series_keyandseries_labelгрупувати повторювані бюлетені (льодові звіти, списки позицій бурових платформ, списки дійсних попереджень), щоб ви могли зберігати лише останній випуск
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.
З API v2 ви також можете фільтрувати за цими даними: актуальний статус, термін дії (наприклад все, що завершується протягом наступних 24 годин), зараз у дії, ступінь серйозності, категорія, відстань для утримання, та аналізи, що називають контакти, судна або вогні.
Аналіз генерується автоматично і може бути помилковим. Оригінальний текст попередження в content залишається авторитетним джерелом.
Приклад поля повідомлення
{
"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"
}
}Приклад запиту
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"Об’єкти на мапі (бурові установки та MODU)
Попередження, що містять списки позицій бурових установок або MODU, можуть повертати поле map_objects на кожному повідомленні, коли ви використовуєте include_messages=true.
Поле повідомлення: map_objects.oil_rigs[]
name: назва бурової установки або одиниці, як опублікованоcoordinate: рядок координат з попередженняlat,lon: десяткові градусиis_new_rig,is_new_position: коли позначено в тексті джерелаcatalog(необов’язково): співпадна запис у каталозі з slug, href, MMSI, навігаційною областю
Публічний каталог (без API token)
- GET /api/public/modu/?q=&page=1 - search active rigs
- GET /api/public/modu/s/{slug}/ - деталі установки та пов’язані попередження
- GET /api/public/map-rigs/ - all active rigs for map overlays
Станції берегового радіозв’язку та центри порятунку
Рятувальні координаційні центри (RCC, MRCC, MRSC, JRCC) та DSC берегові станції 70 країн, за NGA Pub 117 Radio Navigational Aids (розділ 4), із позначеними MF/HF DSC тестовими станціями SeaLagom. API token не потрібен.
- 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}/ - одна станція: MMSI, діапазони та радіуси, часи чергування, зона, контакти
- GET /api/public/coast-stations/near/?lat=&lon=&radius_nm=200&limit=12 - nearest stations
near returns rcc_covering (центри порятунку, зона яких містить позицію), rcc_near, dsc_near and test_nearest, кожен з distance_nm. position_approximate true, коли Pub 117 не вказує позицію і станцію розміщено в порту з такою самою назвою. Перевіряйте кожен запис з вашим офіційним списком радіостанцій.
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"Фінляндія та Балтика: льодова навігація, несправні вогні та буї
Зимова навігація фінсько-шведської криголамної служби (порти з льодовими обмеженнями або закриті, криголами та їхні завдання, рекомендовані шляхи в льодах) і несправні вогні та буї у водах Фінляндії, з Fintraffic Digitraffic, оновлення кожні 10 хвилин. Токен API не потрібен. Ліцензія CC BY 4.0: зазначайте джерело, яке надходить разом з даними.
- GET /api/public/winter-navigation/
- GET /api/public/aton-faults/
Обмеження на кшталт IA 2000 означає, що криголамна проводка надається лише суднам не нижче цього льодового класу та з дедвейтом не менше зазначеного (у тоннах). Поза сезоном списки порожні. Офіційні повідомлення служб зимової навігації мають пріоритет.
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
Прибережні навігаційні попередження за гідрографічним регіоном, зазвичай більш локалізовані ніж NAVAREA, охоплюють портові операції, прибережні ризики та локальні повідомлення про безпеку мореплавства.
- GET /api/v1/coastal/
- GET /api/v1/coastal/{id}/
- GET /api/v1/coastal/{id}/messages/
- GET /api/v1/coastal/{id}/archived_messages/
Базовий запит
curl -X GET "https://www.sealagom.com/api/v1/coastal/?include_messages=true" \
-H "X-API-Token: YOUR_API_TOKEN"Параметри запиту для прибережних попереджень
Ендпоінти списку/деталізації для Coastal приймають той самий стиль фільтрів, що й NAVAREA, де це застосовно.
| Параметр | Тип | Опис |
|---|---|---|
| id | integer | Фільтрувати за ID прибережного регіону. |
| title | string | Фільтрувати за title. |
| sub_title | string | Фільтрувати за sub_title. |
| include_messages | boolean | Включити активні прибережні повідомлення. |
| include_archived | boolean | Включити архівні повідомлення (Full / Custom). |
| include_coordinates | boolean | Координати у відповіді (Full / Custom). |
| include_enhanced_coordinates | boolean | Десяткові, Google Maps, GeoJSON, DMS формати (Full / Custom). |
| include_keywords | boolean | Карта ключових слів у відповіді (Full / Custom). |
| include_geo_features | boolean | Структурований geo_features JSON для кожного повідомлення (тільки Full API). |
| include_ai_analysis | boolean | ai_analysis JSON для кожного повідомлення (тільки Full API). |
| date_from | date | Ті ж семантики, що й для NAVAREA (Full / Custom). |
| date_to | date | Ті ж семантики, що й для NAVAREA (Full / Custom). |
| keyword | string | Фільтр ключових слів (Full / Custom). |
| has_coordinates | boolean | Фільтрувати повідомлення, що мають координати (Full / Custom). |
| country | string | Фільтрувати за назвою країни (часткове співпадіння). |
| content_search | string | Пошук тіла повідомлення (частково). |
| title_search | string | Шукати в заголовках (часткове співпадіння). |
Інтеграція webhook
Full API and Custom підписники можуть налаштувати webhook URL для отримання POST-сповіщень у реальному часі щоразу, коли додаються, оновлюються або архівуються попередження NAVAREA або Coastal (опитування не потрібне).
Як працюють webhooks
- Налаштуйте webhook URL у налаштуваннях підписки.
- Коли попередження публікується або оновлюється, ми надсилаємо підписаний POST на ваш URL.
- Перевірте запит, використовуючи ваш webhook secret.
- Ваш сервер обробляє payload і виконує дії (оновлення БД, push-повідомлення тощо).
Security
- Only public https:// URLs are called (no private or local addresses, port 443, no redirects followed).
X-Sealagom-Signatureis HMAC-SHA256 of the body with your secret;X-Sealagom-Signature-256issha256=+ HMAC-SHA256 of<X-Sealagom-Timestamp>.<body>. Check one of them, and reject deliveries whose timestamp is older than five minutes.X-Sealagom-Deliveryis 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.
Налаштувати 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"}'Приклад 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"
}Випадки використання
API SeaLag.om підходить для широкого кола морських застосувань. Ось декілька прикладів:
Навігаційне програмне забезпечення
Накладайте живі попередження NAVAREA та Coastal безпосередньо на електронні карти. Використовуйте фільтрацію за координатами, щоб показувати лише загрози, що стосуються положення судна або планованого курсу.
Мобільні додатки для моряків
Push-повідомлення про нові попередження в цікавих районах. Поєднуйте геофільтрацію з webhook, щоб сповіщати користувачів лише для їхніх вказаних регіонів.
Інструменти оцінки ризиків
Інтегруйте дані попереджень у планування маршруту та аналіз безпеки. Фільтрація за ключовими словами дозволяє відокремити типи загроз, наприклад підводні кабелі, військові навчання або піратство.
Історичний аналіз
Використовуйте фільтрацію за датою та стрічку архівованих повідомлень, щоб виявляти сезонні закономірності попереджень, повторювані небезпеки або коридори з підвищеним ризиком з часом.
Інтеграція з ГІС
Передавайте координатні дані (десяткові, GeoJSON, DMS) в ArcGIS, QGIS або власні шари карти для створення динамічних візуалізацій морських небезпек.
Користувацькі системи оповіщення
Створюйте автоматизовані оповіщення для судновласників, офшорних операторів або портових органів. Webhook спрацьовує миттєво, коли нові попередження відповідають вашим критеріям.
Потрібно щось, чого тут немає? contact@sealagom.com
Схеми інтеграції даних
Типові схеми інтеграції даних морських попереджень у ваші системи:
| Схема | Опис | Рекомендований рівень |
|---|---|---|
| Періодична синхронізація | Заплануйте регулярні виклики API для синхронізації попереджень у вашу базу даних. Добре, коли немає потреби в миттєвій доставці. | Full API |
| Оновлення в реальному часі | Інтеграція через webhook забезпечує миттєві повідомлення про події публікації/оновлення. | Full or Custom |
| Географічна фільтрація | Фільтруйте за координатами, щоб отримувати лише дані, які стосуються конкретних районів операцій. | Full or Custom |
| Оповіщення на основі ключових слів | Автоматизовані оповіщення, що спрацьовують за певними ключовими словами в повідомленнях (наприклад, підводні кабелі, військові навчання). | Full or Custom |
| Зберігання даних для аналітики | Передавайте дані попереджень у BI- та аналітичні конвеєри, використовуючи кінцеві точки за діапазоном дат та архівні кінцеві точки. | Full or Custom |
| Накладення на карти / ГІС | Відображайте попередження з координатами на електронних картах або картографічних системах. | Full or Custom |
| Користувацькі формати відповіді | Вибір конкретних полів, нестандартні просторові формати або нестандартні структури JSON. | Custom |
Порада розробнику: Використовуйте розширені фільтри, щоб мінімізувати передавання й обробку даних. Так відповіді безкоштовного рівня вкладаються в кількість записів, дозволену за один виклик, а на планах Full / Custom зменшується розмір корисного навантаження.
Обмеження за запитами та використання токенів
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].
| План | Запити | Архівні / Координати / Ключові слова |
|---|---|---|
| Free tier | API без ключа: 100 запитів на день і до 50 попереджень за запит, протягом 3 дн. або 300 запитів, що настане раніше | Не включено |
| API Default | Необмежено | Archived + raw coordinates; no keywords, enhanced coordinates, geo_features or analysis |
| Full API | Необмежено | Усе включено |
| Custom | Погоджується за контрактом | Повністю настроюється |
Залишок безкоштовних викликів API показано в розділі Профіль → API.
Приклади
Базовий запит колекції
curl -X GET "https://www.sealagom.com/api/v1/navarea/?include_messages=true" \
-H "X-API-Token: YOUR_API_TOKEN"Приклад відповіді списку (скорочено)
{
"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
}
]
}
]
}Розширені фільтри (Full / Custom)
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"Повна відповідь API з координатами та ключовими словами
{
"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"
}
}
]
}
]
}Фільтрувати повідомлення з координатами, усі формати
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"Комбіновані фільтри
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"