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: 하루 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 및 연안 실시간 메시지
  • 보관된 메시지 접근
  • 좌표(모든 형식: 소수, GeoJSON, DMS, Google Maps)
  • geo_features: 점, 선, 항로, 영역, 원, 섹터, 변위, 안전구역
  • analysis of every warning: summary, status, validity / expiry, hazards, recurring series
  • GeoJSON, CSV, Shapefile, WKT 형식의 구조화된 지오메트리(ECDIS 및 Contributor의 경우 KML 전체 지오메트리 제공)
  • 키워드 맵 추출
  • 고급 필터(날짜, 키워드, 국가, 유형, has_coordinates)
  • 실시간 업데이트를 위한 웹후크 통합
Full API 구독

맞춤형 API

귀사 요구에 맞춤; 문의하십시오

  • Full API의 모든 항목
  • 맞춤 응답 형식 및 데이터 포맷
  • 요청에 따른 특정 필드, 구조 또는 공간 형식
  • 전담 지원 및 통합 가이드
  • 엔터프라이즈 또는 대량 처리 계약
  • SLA 및 맞춤 웹후크 페이로드
문의하기

맞춤형이 필요하신가요? 이메일 contact@sealagom.com API 응답은 모든 형식이나 공간 구조로 맞춤화할 수 있습니다.

현재 요금제 보기 및 구독

대화형 요청 빌더

GET URL을 작성하고 예제(cURL, Python, JavaScript, Java, Rust)를 복사하세요. 토큰을 귀하의 것으로 교체하십시오.

항상 동일한 파라미터를 사용하십니까? 토큰 자체에 저장하려면 API v2 빌더 프로필에서 실시간 미리보기와 함께.

생성된 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 해상 항법 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 id(반복 또는 쉼표로 구분).
coastal_id전체하나 이상 또는 복수의 연안 지역 id.
country전체국가 이름, 부분 일치(예: France).
q전체경고 텍스트의 단어들(원문 또는 영어).
date_from, date_to전체추가일자 on or after / on or before, 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 API각 위치에 대한 소수, 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 APIvalid_until이 다음 N시간 이내에 드는 경보만.
expires_after, expires_beforeFull APIvalid_until on or after / on or before 날짜(YYYY-MM-DD) 또는 ISO 시간.
exclude_routineFull APItrue: 정기보고(빙해 보고, 해양 구조물 목록, 유효 목록) 생략.
ai_hasFull APIcontacts, vessels, aids, keep_clear, time_windows, charts, hazards를 포함한 분석만.
min_keep_clear_nmFull API최소 N 해리의 회피 거리.
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 는 원문 언어를 표시합니다.

미국 해안경비대 Local Notices to Mariners(10구역, 주간 갱신)는 연안 지역명으로 US Coast Guard LNM, 국가 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 }
    }
  ]
}

토큰에 저장된 설정

  • 토큰 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.
  • 모든 옵션이 표시되며, Full API 옵션도 포함되며 각 옵션에 필요한 요금제가 표시됩니다. 저장하려면 활성 API 요금제가 필요합니다.
  • 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을 반환하며, 하나의 형태당 하나의 피처로 항로 점검과 차트 오버레이에 바로 사용할 수 있습니다.
  • 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>.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 구독

요청 시 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_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구조화된 데이터가 포함됩니다. 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 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.

Message field: map_objects.oil_rigs[]

  • name: 게시된 대로의 시추설비 또는 장비 이름
  • coordinate: 경고에서 가져온 좌표 문자열
  • lat, lon: 십진수 도(degrees) 좌표
  • is_new_rig, is_new_position: 원문 텍스트에서 표시된 시각
  • catalog (선택): slug, href, MMSI, 항해구역 정보를 포함한 일치하는 카탈로그 항목

공개 카탈로그 (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}/ - 단일 국: 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부제목(sub_title)으로 필터링합니다.
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제목에서 검색(부분 일치).

웹후크 통합

Full API 및 Custom 구독자는 NAVAREA 또는 연안 경고가 추가, 업데이트 또는 보관될 때마다 실시간 POST 알림을 받을 webhook URL을 구독 설정에 구성할 수 있습니다(폴링 불필요).

웹훅 동작 방식

  1. 구독 설정에서 webhook URL을 구성합니다.
  2. 경고가 게시되거나 업데이트되면 해당 URL로 서명된 POST를 전송합니다.
  3. 웹훅 시크릿으로 요청을 검증합니다.
  4. 귀하의 서버가 페이로드를 처리하고 조치(데이터베이스 업데이트, 푸시 알림 등)를 수행합니다.

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.

웹훅 구성

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"}'

웹훅 페이로드 예시

{
  "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"
}

사용 사례

SeaLagom API는 광범위한 해상 응용에 적합합니다. 몇 가지 예:

항법 소프트웨어

전자 해도 위에 실시간 NAVAREA 및 연안 경고를 오버레이합니다. 좌표 필터링을 사용해 선박 위치나 예정 항로와 관련 있는 위험만 표시할 수 있습니다.

선원용 모바일 앱

관심 지역의 새 경고에 대해 푸시 알림을 전송합니다. 지리적 필터링과 웹훅을 결합해 사용자가 지정한 지역에 대해서만 알림을 받도록 할 수 있습니다.

위험 평가 도구

경고 데이터를 항로 계획 및 안전 분석에 통합합니다. 키워드 필터링으로 SUBMARINE CABLES, MILITARY EXERCISES, 또는 PIRACY와 같은 위험 유형을 선별할 수 있습니다.

과거 분석

날짜 필터링 및 보관된 메시지 피드를 사용해 계절별 경고 패턴, 반복되는 위험 또는 시간에 따른 고위험 통로를 식별합니다.

GIS 통합

좌표 데이터(소수, GeoJSON, DMS)를 ArcGIS, QGIS 또는 사용자 정의 지도 레이어에 공급하여 동적 해상 위험 시각화를 생성하십시오.

맞춤 경보 시스템

해운사, 해양 오퍼레이터 또는 항만 당국을 위한 자동 경보를 구축하십시오. 새 경고가 귀하의 기준과 일치할 때 웹후크가 즉시 트리거됩니다.

여기에 나열되지 않은 것이 필요하신가요? contact@sealagom.com

데이터 통합 패턴

해상 경고 데이터를 시스템에 통합할 때의 일반적인 패턴:

패턴설명권장 등급
주기적 동기화정기적인 API 호출을 예약하여 경고를 데이터베이스와 동기화하십시오. 실시간 전달이 필요하지 않을 때 적합합니다.Full API
실시간 업데이트웹후크 통합은 발행/업데이트 이벤트에 대한 즉시 알림을 제공합니다.Full or Custom
지리적 필터링좌표로 필터링하여 특정 작전 구역과 관련된 데이터만 검색하십시오.Full or Custom
키워드 기반 경보경고 메시지의 특정 키워드(예: 해저 케이블, 군사 훈련)에 의해 자동으로 트리거되는 경보.Full or Custom
데이터 웨어하우징date-range 및 archive 엔드포인트를 사용하여 경고 데이터를 BI 및 분석 파이프라인에 공급하십시오.Full or Custom
차트 / GIS 오버레이좌표가 보강된 경고를 전자 해도나 매핑 시스템에 표시하십시오.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].

요금제요청 항목Archived / Coordinates / Keywords
무료 플랜키 없는 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"

좌표 및 키워드가 포함된 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