HomeMapSky mapAlpha
More
Account
Loading…
Language: English

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 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).

Начало работы

  1. Выберите план на планы Contributor.
  2. Создайте API-токен в Profile → API.
  3. Отправлять X-API-Token на каждое /api/v1/ вызов.
  4. Учитывайте постраничную выдачу и использование токена при списковых endpoint-ах.

Планы подписки 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 Default

Full 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)
  • Интеграция вебхуков для обновлений в реальном времени
Подписаться на Full API

Пользовательский API

Адаптируется под ваши нужды; свяжитесь с нами

  • Всё из Full API
  • Пользовательские формы ответа и форматы данных
  • Конкретные поля, структуры или пространственные форматы по запросу
  • Выделенная поддержка и руководство по интеграции
  • Корпоративные или объёмные решения
  • SLA и индивидуальные полезные нагрузки вебхуков
Свяжитесь с нами

Нужно что-то индивидуальное? Напишите по электронной почте contact@sealagom.com Ответы API могут быть настроены в любой формат или пространственную структуру.

Просмотреть текущие планы и подписаться

Интерактивный конструктор запросов

Составьте GET URL и скопируйте примеры (cURL, Python, JavaScript, Java, Rust). Замените token на ваш.

Используете одни и те же параметры каждый раз? Сохраните их в самом токене с помощью API v2 builder в вашем профиле, с живым предпросмотром.

Сгенерированный URL

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"

Обзор

Добро пожаловать в 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, keyword and has_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ВсеОдин или несколько идентификаторов NAVAREA (повторяйте или разделяйте запятыми).
coastal_idВсеОдин или несколько идентификаторов прибрежных регионов.
countryВсеНазвание страны, частичное совпадение (например France).
qВсеСлова из текста предупреждения (оригинал или English).
date_from, date_toВсеДобавлено в или после / в или до, YYYY-MM-DD.
keywordВсеКатегория ключевого слова или любое слово в тексте; можно повторять для нескольких.
has_coordinatesВсеtrue: только предупреждения с позициями.
include_localsВсеtrue: также французские локальные (AVURNAV) предупреждения.
include_archived, only_archivedPaid APIАктивные и архивные, или только архивные.
status, message_class, station, lat, lon, radius_nm, bboxВсеФильтры архива: in_force, cancelled или expired; тип; станция NAVTEX; позиция с радиусом в милях или прямоугольник west,south,east,north.
include_coordinatesPaid APIПозиции, считанные из каждого предупреждения.
include_enhanced_coordinatesFull APIDecimal, DMS, GeoJSON и ссылки на карту для каждой позиции.
include_keywordsFull APIКарта ключевых слов по каждому предупреждению.
include_geo_featuresFull APIОбласти, круги, линии, коридоры, секторы в виде GeoJSON.
include_ai_analysisFull APIThe analysis object per warning.
ai_severityFull APIcritical, high, moderate, low, info (можно повторять для нескольких).
ai_categoryFull APIcategory ids, e.g. firing_practice, piracy_or_security.
ai_statusFull APIСтатус в реальном времени: active, scheduled, expired, withdrawn (archived), cancellation_notice, informational.
ai_in_forceFull APItrue: только предупреждения, действующие прямо сейчас.
expires_within_hoursFull APIТолько предупреждения, у которых valid_until наступит в ближайшие N часов.
expires_after, expires_beforeFull APIvalid_until в или после / в или до даты (YYYY-MM-DD) или ISO-времени.
exclude_routineFull APItrue: исключить рутинные отчеты (ледовые сводки, списки платформ, списки действующих сообщений).
ai_hasFull APIТолько анализы с: contacts, vessels, aids, keep_clear, time_windows, charts, hazards.
min_keep_clear_nmFull APIМинимальная зона безопасности (keep-clear) не менее N NM.
page, page_sizeВсеПо умолчанию 50 на страницу; до 200 на платных планах, 50 на бесплатном.
prompt_filterFull APIoff: ignore the token's prompt filter for this call.
topicFull 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-плана.
  • URL wins: любой параметр, который вы укажете в URL, заменяет сохраненное значение для этого вызова; ?settings=off выполняет обычный вызов.
  • Relative periods: "last 30 days" sends 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 или лицензия на ледовый фид (годовая, с выставлением счета): свяжитесь с нами.
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 for a FeatureCollection and ?category=чтобы оставить только некоторые категории фида. Любой параметр /api/v2/messages/ также работает, и /api/v2/messages/?topic=military тот же фид.
  • Only warnings with an analysis are included. GET /api/v2/feeds/ (токен не требуется) перечисляет все фиды с указанием, сколько из их предупреждений находятся в силе.
  • План Full API или лицензия на фид для одного фида (годовая, с выставлением счета): свяжитесь с нами.
  • 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.

Загрузка фидов…

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 с подсказкой, её статусом (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 subscription

Request with include_messages=true and include_geo_features=true на конечных точках списка/деталей NAVAREA или Coastal. Каждое сообщение может включать geo_features объект с структурированными геометриями, готовыми для карт и ГИС.

  • features[].kind: point, line, lane, area, circle, sector, displacement
  • circle / sector: включает radius_nm, центральную точку и необязательные пределы пеленга
  • lane: осевая линия плюс ширина коридора в corridor_nm or corridors_nm
  • points[]: десятичные градусы; coordinates_raw[]: исходные строковые координаты из предупреждения
  • Предупреждения с несколькими зонами: message_profile, multi_zone, zone_labels, и для каждого объекта metadata.zone_label
  • Необязательные зоны безопасности: safety_zone_meters, safety_zone_nm
  • Экспорт файлов: Contributor получают полную геометрию в ECDIS и KML. Другие форматы экспорта включают структурированную геометрию, когда у вашей учетной записи есть доступ Full API (см. plans).

Поле примера сообщения

{
  "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 API subscription

Every 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[]: периоды активности и время самоуничтожения (self-cancel); 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 warnings
  • cancels[] / 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_at and model
  • Повторяющаяся серия: is_routine, series_key and series_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/

Basic request

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

Параметры запроса для Coastal

Эндпойнты списка/деталей Coastal принимают тот же стиль фильтров, что и NAVAREA, где применимо.

ПараметрTypeDescription
idintegerФильтр по ID прибрежного региона.
titlestringФильтр по заголовку.
sub_titlestringФильтр по sub_title.
include_messagesbooleanВключить активные прибрежные сообщения.
include_archivedbooleanВключить архивные сообщения (Full / Custom).
include_coordinatesbooleanКоординаты в ответе (Full / Custom).
include_enhanced_coordinatesbooleanФорматы Decimal, Google Maps, GeoJSON, DMS (Full / Custom).
include_keywordsbooleanКарта ключевых слов в ответе (Full / Custom).
include_geo_featuresbooleanСтруктурированный geo_features JSON по сообщению (только Full API).
include_ai_analysisbooleanai_analysis JSON по сообщению (только Full API).
date_fromdateТа же семантика, что и у NAVAREA (Full / Custom).
date_todateТа же семантика, что и у NAVAREA (Full / Custom).
keywordstringФильтр по ключевому слову (Full / Custom).
has_coordinatesbooleanФильтр сообщений, у которых есть координаты (Full / Custom).
countrystringФильтр по названию страны (частичное совпадение).
content_searchstringПоиск по телу сообщения (частично).
title_searchstringПоиск по заголовкам (частичное совпадение).

Интеграция вебхуков

Подписчики Full API и Custom могут настроить webhook URL для получения POST-уведомлений в реальном времени, когда предупреждения NAVAREA или Coastal добавляются, обновляются или архивируются (опрашивать не нужно).

Как работают вебхуки

  1. Настройте webhook URL в параметрах подписки.
  2. Когда предупреждение публикуется или обновляется, мы отправляем подписанный POST на ваш URL.
  3. Проверяйте запрос с помощью вашего webhook secret.
  4. Ваш сервер обрабатывает полезную нагрузку и предпринимает действия (обновить БД, push-уведомление и т.д.).

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.

Настроить 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"}'

Пример полезной нагрузки 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"
}

Сценарии использования

The SeaLag.om API подходит для широкого круга морских приложений. Несколько примеров:

Навигационное программное обеспечение

Накладывайте в реальном времени NAVAREA и прибрежные предупреждения прямо на электронные карты. Используйте фильтрацию по координатам, чтобы отображать только опасности, релевантные положению судна или плановому маршруту.

Мобильные приложения для моряков

Push-уведомления о новых предупреждениях в интересующих районах. Сочетайте географическую фильтрацию с webhooks, чтобы оповещать пользователей только по их выбранным регионам.

Инструменты оценки рисков

Включайте данные предупреждений в планирование маршрута и анализ безопасности. Фильтрация по ключевым словам позволяет выделять типы опасностей, такие как подводные кабели, военные учения или пиратство.

Исторический анализ

Используйте фильтрацию по датам и фид архивных сообщений, чтобы выявлять сезонные паттерны предупреждений, повторяющиеся опасности или коридоры повышенного риска во времени.

Интеграция с ГИС

Передавайте координатные данные (десятичные, GeoJSON, DMS) в ArcGIS, QGIS или пользовательские картографические слои для создания динамических визуализаций морских опасностей.

Пользовательские системы оповещения

Создавайте автоматизированные оповещения для судоходных компаний, оффшорных операторов или портовых властей. Webhooks срабатывают мгновенно при публикации новых предупреждений, соответствующих вашим критериям.

Нужно что-то, чего нет в списке? contact@sealagom.com

Шаблоны интеграции данных

Типичные схемы интеграции данных морских предупреждений в ваши системы:

СхемаDescriptionРекомендуемый тариф
Периодическая синхронизацияПланируйте регулярные API-вызовы для синхронизации предупреждений в вашей базе данных. Подходит, когда не требуется доставка в реальном времени.Full API
Обновления в реальном времениИнтеграция через webhook обеспечивает моментальные уведомления о событиях публикации/обновления.Full или Custom
Географическая фильтрацияФильтруйте по координатам, чтобы получать только данные, релевантные определённым районам эксплуатации.Full или Custom
Оповещения по ключевым словамАвтоматические оповещения, срабатывающие на определённые ключевые слова в текстах предупреждений (например, подводные кабели, военные учения).Full или Custom
Хранение данных (Data warehousing)Загружайте данные предупреждений в BI и аналитические конвейеры, используя эндпоинты по диапазону дат и архиву.Full или Custom
Наложение на карты / ГИСОтображайте предупреждения с координатами на электронных картах или картографических системах.Full или 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].

ТарифЗапросыАрхив / Координаты / Ключевые слова
Бесплатный тарифAPI без ключа: 100 запросов в день и до 50 предупреждений за запрос, в течение 3 дн. или 300 запросов, что наступит раньшеНе включено
API DefaultНеограниченноArchived + raw coordinates; no keywords, enhanced coordinates, geo_features or analysis
Full APIНеограниченноВсе включено
CustomСогласуется по контрактуПолностью настраивается

Оставшиеся бесплатные вызовы API показаны в разделе Profile → 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"
Beta look