HomeMapSky mapAlpha
More
Account
Loading…
Language: English

API de Navegação Marítima

Acesso programático a avisos NAVAREA e costeiros. Assinatura REST está em /api/v1/ com cabeçalho X-API-Token. Os níveis superiores desbloqueiam coordenadas, mapas de palavras-chave, o arquivo completo de uma vez e filtros avançados.

Programadores: entre com o GitHub e em dez segundos tem uma chave Developer no separador API, com 2.000 pedidos grátis sobre os avisos em vigor. Os arquivos e a análise completa vêm com os planos pagos.

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

Primeiros passos

  1. Escolha um plano em planos Contributor.
  2. Crie um token de API em Perfil → API.
  3. Enviar X-API-Token em cada /api/v1/ chamada.
  4. Respeite paginação e uso de token nos endpoints de listagem.

Planos de assinatura da API

Faça upgrade para API Default para texto bruto e coordenadas, para Full API para geometria estruturada (geo_features), ou contate-nos para uma integração personalizada.

Nível gratuito da API

A API sem chave: 100 chamadas por dia, até 50 avisos por chamada, por 3 dias ou 300 chamadas, o que vier primeiro.

Quando uma cota acaba, a API responde HTTP 402 com o que foi usado, quando volta e os links para pagar na hora: o checkout, cripto ou POST /api/agent/checkout/ a partir de um script.

Com sessão iniciada e sem plano de API, o mesmo nível gratuito conta na sua conta. A cota de desenvolvedor do GitHub mantém as próprias solicitações.

Apenas mensagens em vigor. Sem arquivo, coordenadas, coordenadas melhoradas, palavras-chave, webhooks ou filtros avançados.

API Default

Requisições ilimitadas, $20 no primeiro mês, depois $18 / mês com renovação automática

  • Requisições ilimitadas à API
  • Mensagens NAVAREA e costeiras ao vivo
  • Acesso a mensagens arquivadas
  • Texto bruto da mensagem e coordenadas
  • Integração via webhook para atualizações em tempo real

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

Assinar API Default

Full API

Requisições ilimitadas, $100 first month, then $90 / month with auto-renew

  • Requisições ilimitadas à API
  • Mensagens NAVAREA e costeiras ao vivo
  • Acesso a mensagens arquivadas
  • Coordenadas (todos os formatos: decimal, GeoJSON, DMS, Google Maps)
  • geo_features: pontos, linhas, faixas, áreas, círculos, setores, deslocamento, zonas de segurança
  • analysis of every warning: summary, status, validity / expiry, hazards, recurring series
  • Geometria estruturada em GeoJSON, CSV, Shapefile, WKT (ECDIS & KML geometria completa no Contributor)
  • Extração de mapa de palavras-chave
  • Filtros avançados (data, palavra-chave, país, tipo, has_coordinates)
  • Integração via webhook para atualizações em tempo real
Assinar Full API

API personalizada

Adaptada às suas necessidades; contate-nos

  • Tudo do Full API
  • Formas de resposta e formatos de dados personalizados
  • Campos específicos, estruturas ou formatos espaciais sob solicitação
  • Suporte dedicado e orientação de integração
  • Acordos empresariais ou de alto volume
  • SLA e payloads de webhook personalizados
Contate-nos

Precisa de algo personalizado? Envie um e-mail contact@sealagom.com As respostas da API podem ser customizadas para qualquer formato ou estrutura espacial.

Ver planos atuais e assinar

Construtor de requisição interativo

Monte uma URL GET e copie os exemplos (cURL, Python, JavaScript, Java, Rust). Substitua o token pelo seu.

Usa os mesmos parâmetros sempre? Salve-os no próprio token com o API v2 builder no seu perfil, com visualização ao vivo.

URL Gerada

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"

Visão geral

Bem-vindo ao SeaLag.om Maritime Navigation API!

Esta API fornece acesso programático a avisos NAVAREA e costeiros essenciais para a segurança e navegação marítima.

Os assinantes do Full API recebem dados ampliados, incluindo coordenadas (vários formatos), palavras-chave, o arquivo completo de uma vez e filtros avançados. Precisa de um formato ou estrutura espacial personalizada? Contate-nos para uma integração sob medida.

As respostas estão em formas de lista/detalhe JSON. Use page and page_size onde suportado.

Autenticação

Envie o header X-API-Token: <token> em cada /api/v1/ request. Tokens ausentes ou inválidos retornam 401 Unauthorized. Tokens são criados no seu perfil; rotacione ou revogue pela mesma tela.

X-API-Token: YOUR_API_TOKEN
Segurança: Mantenha os tokens em sigilo. Use tokens separados por aplicação. Regere periodicamente ou imediatamente se houver comprometimento.

Gerenciamento de tokens

  • GET /api/v1/tokens/ - listar seus tokens
  • POST /api/v1/tokens/ - criar um token
  • POST /api/v1/tokens/{id}/regenerate/ - rotacionar (invalida o valor antigo)
# 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 e configurações de token

API v2 usa o mesmo token, planos e contabilização de requisições da v1. Tudo sob /api/v1/ continua funcionando exatamente como antes, então integrações existentes não precisam de alteração. v2 adiciona:

  • Uma lista de todos os avisos: GET /api/v2/messages/, NAVAREA e costeiros juntos, do mais recente para o mais antigo, cada mensagem com sua região, país e status de arquivo.
  • Filtros de mensagem nos endpoints de região: /api/v2/navarea/ and /api/v2/coastal/ respondem como v1 e também aplicam date_from, date_to, keyword and has_coordinates às mensagens que retornam.
  • Configurações salvas em cada token: escolha um token em Profile > API > API v2 builder, construa a resposta com menus e uma pré-visualização ao vivo, e salve. Toda chamada /api/v2/ com esse token retorna essa forma; chamadas /api/v1/ ignoram as configurações salvas e respondem exatamente como antes.
  • prompt filter (Full API):descreva em suas próprias palavras os avisos que um token deve retornar, por exemplo "only space debris warnings around the USA".
  • Integrate: the kit on GitHub (OpenAPI spec, clients, MCP server, Action) is the way in; a README.md per token, with its settings, plan and every parameter and field, is there for any program that wants one file.
  • Settings file:instead of ticking options, ask LagoPal (with the README) for a settings file: a small JSON file with the token's endpoint, parameters and prompt. Load it on Profile > API (Load settings file); it fills the builder so you can check the live preview before saving. Download settings file gives the current settings in the same form. JSON Schema: /api/public/api-settings-schema/.

GET /api/v2/messages/

ParâmetroPlanoO que faz
scopeTodosnavarea, coastal ou all (padrão).
navarea_idTodosUm ou mais ids NAVAREA (repita ou separe por vírgula).
coastal_idTodosUm ou mais ids de região costeira.
countryTodosNome do país, correspondência parcial (ex.: France).
qTodosPalavras no texto do aviso (original ou English).
date_from, date_toTodosAdicionado em ou após / em ou antes, YYYY-MM-DD.
keywordTodosCategoria de palavra-chave ou qualquer palavra no texto; repetir para várias.
has_coordinatesTodostrue: apenas avisos com posições.
include_localsTodostrue: avisos locais franceses (AVURNAV) também.
include_archived, only_archivedPaid APIAtivos e arquivados, ou apenas arquivados.
status, message_class, station, lat, lon, radius_nm, bboxTodosFiltros do arquivo: in_force, cancelled ou expired; o tipo; uma estação NAVTEX; uma posição com raio em milhas, ou uma caixa west,south,east,north.
include_coordinatesPaid APIPosições lidas de cada aviso.
include_enhanced_coordinatesFull APIDecimal, DMS, GeoJSON e links de mapa para cada posição.
include_keywordsFull APIMapa de palavras-chave por aviso.
include_geo_featuresFull APIÁreas, círculos, linhas, pistas, setores como GeoJSON.
include_ai_analysisFull APIThe analysis object per warning.
ai_severityFull APIcritical, high, moderate, low, info (repetir para vários).
ai_categoryFull APIcategory ids, e.g. firing_practice, piracy_or_security.
ai_statusFull APIStatus ao vivo: active, scheduled, expired, withdrawn (archived), cancellation_notice, informational.
ai_in_forceFull APItrue: apenas avisos em vigor agora.
expires_within_hoursFull APIApenas avisos cujo valid_until cai nas próximas N horas.
expires_after, expires_beforeFull APIvalid_until em ou após / em ou antes de uma data (YYYY-MM-DD) ou hora ISO.
exclude_routineFull APItrue: deixe de fora relatórios rotineiros (relatórios de gelo, listas de plataformas, listas em vigor).
ai_hasFull APIApenas análises com: contacts, vessels, aids, keep_clear, time_windows, charts, hazards.
min_keep_clear_nmFull APIDistância de keep-clear de pelo menos N milhas náuticas.
page, page_sizeTodosPadrão 50 por página; até 200 em planos pagos, 50 no gratuito.
prompt_filterFull APIoff: ignore the token's prompt filter for this call.
topicFull APIUm feed: ice, military, space, cables, offshore, survey, hazards, aton, sar, security (veja Themed feeds).
settingsTodosoff: ignore as configurações salvas do token para esta chamada (uma chamada simples).

Campos ou filtros que seu plano não inclui são deixados de fora e listados em meta.warnings, nunca um erro.

content é o texto conforme transmitido; 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 nomeia a língua original.

Os US Coast Guard Local Notices to Mariners (10 districts, updated weekly) são regiões costeiras intituladas 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, listando seus auxílios à navegação com uma discrepância.

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

Configurações salvas em um token

  • Um token, uma área: 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.
  • Toda opção é mostrada, Inclui as Full API, com o plano que cada uma exige. Salvar requer um plano API ativo.
  • URL tem prioridade: qualquer parâmetro que você coloque na URL substitui o valor salvo para essa chamada; ?settings=off faz uma chamada simples.
  • Períodos relativos: "últimos 30 dias" envia date_from como hoje menos 30 dias em toda chamada.
  • As respostas trazem um X-API-Token-Settings header nomeando o token cujas configurações foram aplicadas.

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 retorna um GeoJSON FeatureCollection, uma feature por shape, pronto para verificações de rota e sobreposição em cartas.
  • ice_type narrow s it: iceberg, sea_ice, ice_edge, icing, ice_report, icebreaker, ice_navigation, other_ice (repeat or comma-separate). Every /api/v2/messages/ parameter also works, and /api/v2/messages/?topic=ice é o mesmo feed.
  • Plano Full API, ou uma licença de feed de gelo (anual, faturada): contate-nos.
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=para manter apenas algumas das categorias de um feed. Todo parâmetro /api/v2/messages/ também funciona, e /api/v2/messages/?topic=military é o mesmo feed.
  • Only warnings with an analysis are included. GET /api/v2/feeds/ (não requer token) lista cada feed com quantos de seus avisos estão em vigor.
  • Plano Full API, ou licença de feed para um único feed (anual, faturado): contate-nos.
  • 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.

Loading feeds…

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/ chamadas com esse token então retornam apenas os avisos correspondentes. Um aviso que correspondeu enquanto estava em vigor permanece correspondente depois de arquivado.
  • A resposta adiciona meta.prompt_filter com o prompt, seu status (matching logo após salvar, ready depois) e quantos avisos corresponderam. ?prompt_filter=off ignora-o por uma chamada.
  • 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
    }
  }
}

Características geográficas estruturadas

Assinatura Full API

Solicitar com include_messages=true and include_geo_features=true no endpoint de lista/detalhe NAVAREA ou costeiro. Cada mensagem pode incluir um geo_features object com geometrias estruturadas prontas para cartas e SIG.

  • features[].kind: point, line, lane, area, circle, sector, displacement
  • circle / sector: incluir radius_nm, ponto central, e limites de rumo opcionais
  • lane: linha central mais largura de corredor em corridor_nm or corridors_nm
  • points[]: graus decimais; coordinates_raw[]: strings de coordenadas originais do aviso
  • Avisos com múltiplas zonas: message_profile, multi_zone, zone_labels, e por recurso metadata.zone_label
  • Zonas de segurança opcionais: safety_zone_meters, safety_zone_nm
  • Exportações de arquivo: Contributors recebem geometria completa em ECDIS e KML. Outros formatos de exportação incluem geometria estruturada quando sua conta tem acesso Full API (veja planos).

Campo de mensagem de exemplo

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

Exemplo de requisição

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

Assinatura Full API

Every new or changed warning is read by a model and turned into structured data. Add include_ai_analysis=true (com include_messages=true) nos endpoints de lista/detalhe de NAVAREA ou Coastal e cada mensagem traz um ai_analysis object, or null enquanto um novo aviso ainda aguarda ser analisado.

  • headline, summary: descrição em linguagem simples (avisos não-ingleses são traduzidos)
  • status: active, scheduled, expired, withdrawn (não mais na lista vigente do emissor), cancellation_notice, informational. Recomputado a cada requisição a partir das datas de validade, de modo que um aviso passa de agendado para ativo para expirado por conta própria.
  • valid_from / valid_until (ISO 8601 UTC) e time_windows[]: períodos de atividade e o horário de auto-cancelamento; validity_text cita a frase de origem
  • category, severity (crítico, alto, moderado, baixo, 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[]: números de avisos que esta mensagem cancela ou menciona
  • Detalhes operacionais: keep_clear_nm (maior distância de manutenção, NM), contacts[] (canais VHF, estações, telefones), vessels[] (nome, indicativo, MMSI, IMO, função), depth_m (menor profundidade sobre um naufrágio), observed_at (quando um objeto à deriva foi reportado), aids[] (luzes e boias afetadas, com condição), charts[]
  • translations: manchete, resumo e ação em Chinês, Espanhol, Russo, Português, Grego, Ucraniano, Turco, Francês e Filipino
  • coord_check: positions the automatic read compared with the parser's (ok, mismatch com as posições que só um dos lados encontrou)
  • Também: status_label, category_label, status_at_analysis (status conforme julgado quando analisado), positions_read[] (positions as the automatic read them), confidence (0 a 1), analyzed_at and model
  • Séries recorrentes: is_routine, series_key and series_label agrupe boletins repetidos (relatórios de gelo, listas de posições de plataformas, listas de avisos vigentes) para que você mantenha apenas a edição mais recente

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.

Com API v2 você também pode filtrar por estes dados: status ao vivo, expiração (por exemplo tudo expirando nas próximas 24 horas), vigente agora, severidade, categoria, distância de manutenção, e análises que nomeiam contatos, embarcações ou balizas.

A análise é gerada automaticamente e pode estar errada. O texto original do aviso em content permanece a fonte autorizada.

Campo de mensagem de exemplo

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

Exemplo de requisição

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"

Objetos do mapa (plataformas & MODU)

Avisos que incluem listas de posições de plataformas ou MODU podem retornar um map_objects campo em cada mensagem quando você usa include_messages=true.

Campo da mensagem: map_objects.oil_rigs[]

  • name: nome da plataforma ou unidade conforme publicado
  • coordinate: string de coordenadas a partir do aviso
  • lat, lon: graus decimais
  • is_new_rig, is_new_position: quando assinalado no texto-fonte
  • catalog (opcional): entrada de catálogo correspondente com slug, href, MMSI, área de navegação

Catálogo público (sem token de API)

  • GET /api/public/modu/?q=&page=1 - search active rigs
  • GET /api/public/modu/s/{slug}/ - detalhe da plataforma e avisos vinculados
  • GET /api/public/map-rigs/ - all active rigs for map overlays

Estações costeiras de rádio e centros de resgate

Centros de coordenação de resgate (RCC, MRCC, MRSC, JRCC) e estações costeiras DSC de 70 países, a partir da NGA Pub 117 Radio Navigational Aids (capítulo 4), com as estações de teste MF/HF DSC da SeaLagom marcadas. Nenhum token de API é necessário.

  • 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}/ - uma estação: MMSI, bandas e alcances, horários de vigília, área, contatos
  • GET /api/public/coast-stations/near/?lat=&lon=&radius_nm=200&limit=12 - nearest stations

near returns rcc_covering (centros de resgate cuja área contém a posição), rcc_near, dsc_near and test_nearest, cada um com distance_nm. position_approximate é verdadeiro quando a Pub 117 não fornece posição e a estação é colocada no porto de mesmo nome. Verifique cada entrada contra sua lista oficial de rádio.

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"

Finlândia e o Báltico: navegação no gelo, luzes e boias avariadas

Navegação de inverno do serviço de quebra-gelos finlandês-sueco (portos com restrições de gelo ou encerrados, quebra-gelos e as suas tarefas, rotas no gelo) e as luzes e boias avariadas em águas finlandesas, da Fintraffic Digitraffic, atualizado a cada 10 minutos. Não é preciso token de API. Licença CC BY 4.0: mostre o crédito que acompanha os dados.

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

Uma restrição como IA 2000 significa assistência de quebra-gelo só para navios com pelo menos essa classe de gelo e esse porte bruto em toneladas. Fora da época as listas estão vazias. Os avisos oficiais dos serviços de navegação de inverno prevalecem.

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 costeira

Avisos náuticos costeiros por região hidrográfica, tipicamente mais localizados que NAVAREA, cobrindo operações portuárias, perigos costeiros e avisos locais de segurança marítima.

  • 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"

Parâmetros de consulta costeira

Os endpoints de lista/detalhe costeiros aceitam o mesmo estilo de filtros que NAVAREA quando aplicável.

ParâmetroTipoDescrição
idintegerFiltrar por ID da região costeira.
titlestringFiltrar por título.
sub_titlestringFiltrar por sub_título.
include_messagesbooleanIncluir mensagens costeiras ativas.
include_archivedbooleanIncluir mensagens arquivadas (Full / Custom).
include_coordinatesbooleanCoordenadas na resposta (Full / Custom).
include_enhanced_coordinatesbooleanDecimal, Google Maps, GeoJSON, DMS formats (Full / Custom).
include_keywordsbooleanMapa de palavras-chave na resposta (Full / Custom).
include_geo_featuresbooleangeo_features JSON estruturado por mensagem (apenas Full API).
include_ai_analysisbooleanai_analysis JSON por mensagem (apenas Full API).
date_fromdateMesma semântica que NAVAREA (Full / Custom).
date_todateMesma semântica que NAVAREA (Full / Custom).
keywordstringFiltro de palavras-chave (Full / Custom).
has_coordinatesbooleanFiltrar mensagens que contenham coordenadas (Completo / Personalizado).
countrystringFiltrar por nome do país (correspondência parcial).
content_searchstringPesquisar corpo da mensagem (parcial).
title_searchstringPesquisar nos títulos (correspondência parcial).

Integração via webhook

Assinantes Full API e Custom podem configurar uma URL de webhook para receber notificações POST em tempo real sempre que avisos NAVAREA ou Costeiros forem adicionados, atualizados ou arquivados (sem necessidade de polling).

Como webhooks funcionam

  1. Configure uma URL de webhook nas configurações da sua assinatura.
  2. Quando um aviso é publicado ou atualizado, enviamos um POST assinado para sua URL.
  3. Verifique a requisição usando seu segredo de webhook.
  4. Seu servidor processa o payload e toma ações (atualizar BD, enviar notificação push, etc.).

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.

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

Exemplo de payload do 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"
}

Casos de uso

A API SeaLagom é adequada para uma ampla gama de aplicações marítimas. Alguns exemplos:

Software de navegação

Sobreponha avisos NAVAREA e costeiros ao vivo diretamente nas cartas eletrônicas. Use filtragem por coordenadas para exibir apenas os perigos relevantes à posição da embarcação ou à rota planejada.

Apps móveis para marinharia

Notificações push sobre novos avisos em áreas de interesse. Combine filtragem geográfica com webhooks para alertar usuários somente para as regiões especificadas.

Ferramentas de avaliação de risco

Incorpore dados de avisos no planejamento de rotas e na análise de segurança. A filtragem por palavras-chave permite isolar tipos de perigo como SUBMARINE CABLES, MILITARY EXERCISES ou PIRACY.

Análise histórica

Use filtragem por datas e o feed de mensagens arquivadas para identificar padrões sazonais de avisos, perigos recorrentes ou corredores de alto risco ao longo do tempo.

Integração GIS

Alimente os dados de coordenadas (decimal, GeoJSON, DMS) no ArcGIS, QGIS, ou camadas de mapa customizadas para criar visualizações dinâmicas de perigos marítimos.

Sistemas de alerta personalizados

Construa alertas automáticos para companhias de navegação, operadores offshore ou autoridades portuárias. Webhooks disparam imediatamente quando novos avisos correspondem aos seus critérios.

Precisa de algo que não esteja listado aqui? contact@sealagom.com

Padrões de integração de dados

Padrões comuns para integrar dados de avisos marítimos aos seus sistemas:

PadrãoDescriçãoTier recomendado
Sincronização periódicaAgende chamadas regulares à API para sincronizar avisos no seu banco de dados. Bom quando entrega em tempo real não é necessária.Full API
Atualizações em tempo realA integração via webhook fornece notificações imediatas em eventos de publicação/atualização.Full or Custom
Filtragem geográficaFiltre por coordenadas para recuperar apenas dados relevantes a áreas específicas de operação.Full or Custom
Alertas por palavra-chaveAlertas automáticos acionados por palavras-chave específicas nas mensagens de aviso (por exemplo submarine cables, military exercises).Full or Custom
Armazenamento de dados (Data warehousing)Alimente os dados de avisos em pipelines de BI e analytics usando os endpoints de intervalo de datas e arquivo.Full or Custom
Sobreposição em carta / GISPlote avisos enriquecidos com coordenadas em cartas eletrônicas ou sistemas de mapeamento.Full or Custom
Formas de resposta customizadasSeleção específica de campos, formatos espaciais sob medida ou estruturas JSON não padronizadas.Custom

Dica para desenvolvedores: Use filtros avançados para reduzir ao mínimo a transferência e o processamento de dados. Assim as respostas do nível gratuito cabem nos registos que cada chamada permite e o tamanho da resposta diminui nos planos Full / Custom.

Limitação de taxa & uso de tokens

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

PlanoRequisiçõesArquivados / Coordenadas / Palavras-chave
Plano FreeA API sem chave: 100 chamadas por dia, até 50 avisos por chamada, por 3 dias ou 300 chamadas, o que vier primeiroNão incluído
API DefaultIlimitadoArchived + raw coordinates; no keywords, enhanced coordinates, geo_features or analysis
Full APIIlimitadoTudo incluído
CustomAcordado por contratoTotalmente customizável

As suas chamadas gratuitas à API restantes aparecem em Perfil → API.

Exemplos

Requisição básica de coleta

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

Exemplo de resposta de lista (truncada)

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

Filtros avançados (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"

Resposta da Full API com coordenadas & palavras-chave

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

Filtrar mensagens com coordenadas, todos os formatos

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"

Filtros combinados

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