HomeMapSky mapAlpha
More
Account
Loading…
Language: English

海上航行 API

NAVAREA および沿岸警報へのプログラムによるアクセス。サブスクリプション型の REST は /api/v1/ ヘッダー付き X-API-Token。上位のプランでは、座標、キーワードマップ、アーカイブの一括取得、高度なフィルターが使えます。

開発者の方へ:GitHub でサインインすると、10 秒で 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. リストエンドポイントではページネーションとトークン使用量を遵守してください。

APIのサブスクリプションプラン

テキストと座標が必要ならAPI Defaultにアップグレード、構造化ジオメトリ(geo_features)が必要ならFull APIに、またはカスタム統合についてはお問い合わせください。

API の無料枠

キーなしの API:1日 100 回、1回あたり最大 50 件の警報、3 日間または合計 300 回のいずれか早い方まで。

枠を使い切ると、API は HTTP 402 を返し、使った量、再開の時刻、すぐに支払えるリンク(チェックアウト、暗号資産、またはスクリプトからの POST /api/agent/checkout/)を示します。

API プランなしでサインインしている場合、同じ無料枠がアカウント単位で数えられます。GitHub デベロッパー枠は別に残ります。

有効なメッセージのみ。アーカイブ、座標、拡張座標、キーワード、Webhook、高度な絞り込みは含まれません。

API Default

リクエスト無制限、 最初の月$20、その後自動更新で$18 / 月

  • APIリクエスト無制限
  • NAVAREAおよび沿岸のライブメッセージ
  • アーカイブメッセージへのアクセス
  • 生メッセージテキストと座標
  • リアルタイム更新のためのWebhook統合

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での構造化ジオメトリ(ContributorではECDISおよびKMLの完全ジオメトリ)
  • キーワードマップ抽出
  • 高度なフィルター(日付、キーワード、国、種類、has_coordinates)
  • リアルタイム更新のためのWebhook統合
Full APIを購読する

カスタム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=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と同じトークン、プラン、リクエスト課金を使用します。の下にあるすべてはこれまで通り動作するので、既存の統合に変更は不要です。v2で追加されたもの: /api/v1/ はこれまで通り完全に動作します。v2の追加点:

  • すべての警報を1つのリストにまとめる: 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):トークンが返すべき警報をあなた自身の言葉で記述してください。例:「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/

パラメータプラン機能
scopeすべてnavarea、coastal、またはall(デフォルト)。
navarea_idすべて1つ以上のNAVAREA id(繰り返し指定またはカンマ区切り)。
coastal_idすべて1つ以上の沿岸リージョンid。
countryすべて国名の部分一致(例:France)。
qすべて警報文中の単語(原文または英語)。
date_from, date_toすべてAdded on or after / on or before, YYYY-MM-DD. -> 追加日がYYYY-MM-DD以降/以前。
keywordすべてKeyword category or any word in the text; repeat for several. -> キーワードカテゴリまたは本文中の任意の語。複数指定可。
has_coordinatesすべてtrue: only warnings with positions. -> true: 位置情報のある警報のみ。
include_localsすべてtrue: French local (AVURNAV) warnings too. -> true: フランスのローカル(AVURNAV)警報も含む。
include_archived, only_archivedPaid API -> 有料APIActive and archived, or archived only. -> 有効とアーカイブ済み、またはアーカイブのみ。
status, message_class, station, lat, lon, radius_nm, bboxすべてアーカイブのフィルター: in_force、cancelled、expired、種類、NAVTEX局、海里の半径つきの位置、またはwest,south,east,northの範囲。
include_coordinatesPaid API -> 有料APIPositions read from each warning. -> 各警報から読み取った位置情報。
include_enhanced_coordinatesFull APIDecimal, DMS, GeoJSON and map links for each position. -> 各位置の十進表記、DMS、GeoJSON、および地図リンク。
include_keywordsFull APIKeyword map per warning. -> 各警報ごとのキーワードマップ。
include_geo_featuresFull APIAreas, circles, lines, lanes, sectors as GeoJSON. -> GeoJSON形式のエリア、円、線、航路、扇形。
include_ai_analysisFull APIThe analysis object per warning.
ai_severityFull APIcritical, high, moderate, low, info (repeat for several). -> critical、high、moderate、low、info(複数指定可)。
ai_categoryFull APIcategory ids, e.g. firing_practice, piracy_or_security.
ai_statusFull APILive status: active, scheduled, expired, withdrawn (archived), cancellation_notice, informational. -> ライブステータス: active、scheduled、expired、withdrawn(アーカイブ済み)、cancellation_notice、informational。
ai_in_forceFull APItrue: only warnings in force right now. -> true: 現在有効な警報のみ。
expires_within_hoursFull APIOnly warnings whose valid_until falls in the next N hours. -> valid_untilが今後N時間以内に来る警報のみ。
expires_after, expires_beforeFull APIvalid_until on or after / on or before a date (YYYY-MM-DD) or ISO time. -> valid_untilが日付(YYYY-MM-DD)またはISO時刻の以降/以前。
exclude_routineFull APItrue: leave out routine reports (ice reports, rig lists, in-force lists). -> true: 定例報告(氷情報、掘削リグ一覧、有効中リストなど)を除外。
ai_hasFull APIOnly analyses with: contacts, vessels, aids, keep_clear, time_windows, charts, hazards. -> contacts、vessels、aids、keep_clear、time_windows、charts、hazardsを含む解析のみ。
min_keep_clear_nmFull APIKeep-clear distance of at least N nautical miles. -> 最低N海里のクリア距離。
page, page_sizeすべてDefault 50 per page; up to 200 on paid plans, 50 on free. -> デフォルトはページあたり50件;有料プランは最大200、無料は50。
prompt_filterFull APIoff: ignore the token's prompt filter for this call.
topicFull APIA feed: ice, military, space, cables, offshore, survey, hazards, aton, sar, security (see Themed feeds). -> フィード: ice、military、space、cables、offshore、survey、hazards、aton、sar、security(Themed feedsを参照)。
settingsすべてoff: ignore the token's saved settings for this call (a plain call). -> off: この呼び出しではトークンに保存された設定を無視(プレーンな呼び出し)。

Fields or filters your plan does not include are left out and listed in -> プランに含まれないフィールドやフィルタは省略され、次に列挙されます meta.warnings, never an error. -> 、エラーにはなりません。

content is the text as broadcast; -> は放送されたままの本文です; 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 names the original language. -> は原文の言語名を示します。

The US Coast Guard Local Notices to Mariners (10 districts, updated weekly) are coastal regions titled -> 米国沿岸警備隊の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 , listing its aids to navigation with a discrepancy. -> 、航行標識の不一致を一覧表示します。

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 }
    }
  ]
}

Settings saved on a token -> トークンに保存された設定

  • One token, one shape: -> 1トークンにつき1つの形状: 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.
  • Every option is shown, -> すべてのオプションが表示され、 Full API ones included, with the plan each needs. Saving needs an active API plan. -> Full APIの項目も含まれ、それぞれに必要なプランが表示されます。保存するには有効なAPIプランが必要です。
  • URL wins: -> URLが優先: any parameter you put in the URL replaces the saved value for that call; -> URLに入れた任意のパラメータは、その呼び出しに対する保存値を置き換えます; ?settings=off プレーンコールを行います。
  • 相対期間: "last 30 days" は送信します 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 を返します。形状ごとに1フィーチャーで、航路チェックやチャートオーバーレイにそのまま使えます。
  • 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 プラン、または 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/?topic=military は同じフィードです。
  • Only warnings with an analysis are included. GET /api/v2/feeds/ AI解析を持つ警報のみが含まれます。
  • (トークン不要) ですべてのフィードと、そのフィードに現在効力がある警報数を一覧表示します。
  • 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.

Full API プラン、または単一フィード用フィードライセンス(年額、請求書発行):お問い合わせください。

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/ トークン上に欲しい内容を平易な言葉で書いてください(Full API プラン)。保存すると、AIモデルが効力中のすべての警報をそのプロンプトに照らしてチェックします。新しい警報は到着後約10分以内にチェックされます。
  • そのトークンでのコールは、それに一致する警報のみを返します。効力中に一致した警報はアーカイブ後も一致したままです。 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 サブスクリプション

でリクエスト include_messages=true and include_geo_features=true NAVAREA または沿岸の list/detail エンドポイントで。各メッセージは次を含む場合があります geo_features チャートや GIS 用にそのまま使える構造化ジオメトリを持つオブジェクト。

  • 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 アクセスを持つ場合は構造化ジオメトリを含みます(プラン参照)。

メッセージフィールドの例

{
  "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 サブスクリプション

Every new or changed warning is read by a model and turned into structured data. Add include_ai_analysis=true (と共に include_messages=true) を NAVAREA または沿岸の list/detail エンドポイントで指定すると、各メッセージに次が付与されます 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 (critical, high, moderate, low, 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[]: このメッセージが取消すか参照する警報番号
  • 運用上の詳細: 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.

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

Message field: map_objects.oil_rigs[]

  • name: 公表されたリグまたはユニット名
  • coordinate: 警報からの座標文字列
  • lat, lon: 十進度
  • is_new_rig, is_new_position: 出典本文でフラグされたとき
  • catalog (optional): 一致したカタログ項目(slug、href、MMSI、navigation area)

公開カタログ(APIトークン不要)

  • 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)および70か国のDSC沿岸局。出典はNGA Pub 117 Radio Navigational Aids(第4章)で、SeaLagomのMF/HF DSC試験局をマークしています。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}/ - 1局: 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 は、Pub 117が位置を示さず同名の港に局が置かれている場合にtrueになります。各エントリを公式の無線局一覧と照合してください。

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"

沿岸クエリパラメータ

沿岸の一覧 / 詳細エンドポイントは、該当する場合NAVAREAと同じスタイルのフィルタを受け付けます。

パラメータ種類説明
idinteger沿岸地域IDでフィルタします。
titlestringタイトルでフィルタします。
sub_titlestring副題でフィルタします。
include_messagesboolean有効な沿岸メッセージを含めます。
include_archivedbooleanアーカイブ済みメッセージを含める(Full / Custom)。
include_coordinatesbooleanレスポンスに座標を含める(Full / Custom)。
include_enhanced_coordinatesboolean小数、Google Maps、GeoJSON、DMS 形式(Full / Custom)。
include_keywordsbooleanレスポンスにキーワードマップを含める(Full / Custom)。
include_geo_featuresbooleanメッセージごとの構造化された geo_features JSON(Full APIのみ)。
include_ai_analysisbooleanメッセージごとの ai_analysis JSON(Full APIのみ)。
date_fromdateNAVAREAと同じ意味論(Full / Custom)。
date_todateNAVAREAと同じ意味論(Full / Custom)。
keywordstringキーワードフィルタ(Full / Custom)。
has_coordinatesboolean座標を持つメッセージでフィルタ(Full / Custom)。
countrystring国名でフィルタ(部分一致)。
content_searchstringメッセージ本文を検索します(部分一致)。
title_searchstringタイトル内を検索(部分一致)。

Webhook 統合

Full APIおよびCustomの購読者は、NAVAREAまたは沿岸警報が追加、更新、またはアーカイブされた際にリアルタイムでPOST通知を受け取るWebhook URLを購読設定で構成できます(ポーリング不要)。

Webhookの動作

  1. 購読設定でWebhook URLを構成します。
  2. 警報が公開または更新されると、署名付きのPOSTをあなたのURLに送信します。
  3. Webhookシークレットを使ってリクエストを検証します。
  4. あなたのサーバーがペイロードを処理し、DBの更新やプッシュ通知などの処理を行います。

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および沿岸警報を重ねて表示します。座標フィルタリングを使い、船舶の位置や予定航路に関連する危険のみを表示できます。

船員向けモバイルアプリ

関心海域での新しい警報に関するプッシュ通知。地理的フィルタとWebhookを組み合わせて、ユーザーが指定した地域だけに通知を出すことができます。

リスク評価ツール

経路計画や安全分析に警報データを組み込みます。キーワードフィルタでSUBMARINE CABLES、MILITARY EXERCISES、またはPIRACYなどの危険種別を抽出できます。

履歴分析

日付フィルタとアーカイブ済みメッセージのフィードを使い、季節的な警報パターン、繰り返し発生する危険、あるいは長期にわたる高リスク回廊を特定します。

GIS 統合

座標データ(decimal、GeoJSON、DMS)を ArcGIS、QGIS、またはカスタム地図レイヤーに取り込み、動的な海上危険可視化を作成します。

カスタムアラートシステム

海運会社、オフショア事業者、港湾当局向けの自動アラートを構築します。新しい警報が条件に合致した場合、Webhooks が即座にトリガーされます。

ここにない要件はありますか? contact@sealagom.com

データ統合パターン

海上警報データをシステムに統合するための一般的なパターン:

パターン説明推奨ティア
定期同期定期的な API コールをスケジュールして警報をデータベースに同期します。リアルタイム配信が不要な場合に適しています。Full API
リアルタイム更新Webhook 統合により、公開/更新イベントの即時通知を受け取れます。Full または Custom
地理的フィルタリング座標でフィルタリングして、特定の運航エリアに関連するデータのみを取得します。Full または Custom
キーワードベースのアラート警報メッセージ内の特定キーワード(例:submarine cables、military exercises)で自動アラートをトリガーします。Full または Custom
データウェアハウジングdate-range および archive エンドポイントを使用して、警報データをBI/分析パイプラインに投入します。Full または Custom
チャート/GIS オーバーレイ座標付きの警報を電子海図や地図システムにプロットします。Full または Custom
カスタム応答形式特定フィールドの選択、専用の空間フォーマット、または非標準の JSON 構造など。Custom

開発者向けヒント: 高度なフィルターを使って、データの転送と処理を最小限に抑えましょう。これにより無料枠の応答は1回の呼び出しで許可される件数に収まり、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].

プランリクエスト数Archived / Coordinates / Keywords
Free tierキーなしの API:1日 100 回、1回あたり最大 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"

座標とキーワードを含む Full 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