HomeMapSky mapAlpha
More
Account
Loading…
Language: English

API de Navegación Marítima

Acceso programático a avisos NAVAREA y costeros. REST por suscripción está bajo /api/v1/ con cabecera X-API-Token. Los niveles superiores desbloquean coordenadas, mapas de palabras clave, el archivo completo de una vez y filtros avanzados.

Desarrolladores: inicie sesión con GitHub y en diez segundos tendrá una clave Developer en la pestaña API, con 2.000 solicitudes gratis sobre los avisos en vigor. Los archivos y el análisis completo vienen con los planes de pago.

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

Primeros pasos

  1. Elija un plan en Planes de Contributor.
  2. Cree un token de API en Perfil → API.
  3. Enviar X-API-Token en cada /api/v1/ llamada.
  4. Respete la paginación y el uso de tokens en endpoints de listas.

Planes de suscripción de la API

Mejore a API Default para texto sin procesar y coordenadas, a Full API para geometría estructurada (geo_features), o contáctenos para una integración a medida.

Nivel gratuito de la API

La API sin clave: 100 llamadas al día, hasta 50 avisos por llamada, durante 3 días o 300 llamadas, lo que llegue primero.

Cuando se agota una cuota, la API responde HTTP 402 con lo usado, cuándo vuelve y los enlaces para pagar al momento: el pago, cripto o POST /api/agent/checkout/ desde un script.

Con sesión iniciada y sin plan de API, el mismo nivel gratuito cuenta en su cuenta. La asignación de desarrollador de GitHub conserva sus propias solicitudes.

Solo mensajes en vivo. Sin archivo, coordenadas, coordenadas mejoradas, palabras clave, webhooks ni filtros avanzados.

API Default

Solicitudes ilimitadas, $20 el primer mes, luego $18 / mes con renovación automática

  • Solicitudes ilimitadas a la API
  • Mensajes en directo NAVAREA y costeros
  • Acceso a mensajes archivados
  • Texto del mensaje sin procesar y coordenadas
  • Integración de webhooks para actualizaciones en tiempo real

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

Suscribirse a API Default

Full API

Solicitudes ilimitadas, $100 first month, then $90 / month with auto-renew

  • Solicitudes ilimitadas a la API
  • Mensajes en directo NAVAREA y costeros
  • Acceso a mensajes archivados
  • Coordenadas (todos los formatos: decimal, GeoJSON, DMS, Google Maps)
  • geo_features: puntos, líneas, canales, áreas, círculos, sectores, desplazamiento, zonas de seguridad
  • analysis of every warning: summary, status, validity / expiry, hazards, recurring series
  • Geometría estructurada en GeoJSON, CSV, Shapefile, WKT (ECDIS & KML geometría completa en Contributor)
  • Extracción de mapa de palabras clave
  • Filtros avanzados (fecha, palabra clave, país, tipo, has_coordinates)
  • Integración de webhooks para actualizaciones en tiempo real
Suscribirse a Full API

API personalizada

Adaptada a sus necesidades; contáctenos

  • Todo lo incluido en Full API
  • Formas de respuesta y formatos de datos personalizados
  • Campos específicos, estructuras o formatos espaciales bajo solicitud
  • Soporte dedicado y guía de integración
  • Acuerdos empresariales o de alto volumen
  • SLA y cargas útiles de webhook a medida
Contáctenos

¿Necesita algo a medida? Envíe un correo a contact@sealagom.com Las respuestas de la API pueden personalizarse a cualquier formato o estructura espacial.

Ver planes actuales y suscribirse

Generador de peticiones interactivo

Componga una URL GET y copie ejemplos (cURL, Python, JavaScript, Java, Rust). Reemplace el token por el suyo.

¿Usa los mismos parámetros siempre? Guárdelos en el token con el Generador API v2 en su perfil, con una vista previa en vivo.

URL generada

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"

Resumen

¡Bienvenido a la API Marítima de SeaLag.om!

Esta API ofrece acceso programático a avisos NAVAREA y costeros esenciales para la seguridad marítima y la navegación.

Los suscriptores de Full API reciben datos ampliados, incluidas coordenadas (varios formatos), palabras clave, el archivo completo de una vez y filtros avanzados. ¿Necesita un formato o una estructura espacial a medida? Contáctenos para una integración a medida.

Las respuestas son estructuras JSON de lista/detalle. Use page and page_size cuando esté soportado.

Autenticación

Envíe el encabezado X-API-Token: <token> en cada /api/v1/ de solicitud. Los tokens ausentes o inválidos devuelven 401 Unauthorized. Los tokens se crean en su perfil; rote o revoque desde la misma pantalla.

X-API-Token: YOUR_API_TOKEN
Seguridad: Mantenga los tokens privados. Use tokens separados por aplicación. Regénere periódicamente o inmediatamente si se ven comprometidos.

Gestión de tokens

  • GET /api/v1/tokens/ - listar sus tokens
  • POST /api/v1/tokens/ - crear un token
  • POST /api/v1/tokens/{id}/regenerate/ - rotar (invalida el valor anterior)
# 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 y ajustes de token

API v2 usa el mismo token, planes y contabilización de peticiones que v1. Todo bajo /api/v1/ sigue funcionando exactamente como antes, por lo que las integraciones existentes no necesitan cambios. v2 añade:

  • Una lista de todos los avisos: GET /api/v2/messages/, NAVAREA y costeros juntos, del más reciente al más antiguo, cada mensaje con su región, país y estado de archivo.
  • Filtros de mensajes en los endpoints de región: /api/v2/navarea/ and /api/v2/coastal/ responden como v1 y además aplican date_from, date_to, keyword and has_coordinates a los mensajes que devuelven.
  • Ajustes guardados en cada token: elija un token en Profile > API > API v2 builder, construya la respuesta con menús y una vista previa en vivo, y guarde. Cada llamada /api/v2/ con ese token devuelve esa forma; las llamadas /api/v1/ ignoran los ajustes guardados y responden exactamente como antes.
  • prompt filter (Full API):describa en sus propias palabras los avisos que un token debería devolver, por ejemplo "solo avisos de basura espacial alrededor de 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ámetroPlanQué hace
scopeTodosnavarea, coastal o all (por defecto).
navarea_idTodosUno o más ids NAVAREA (repita o separe con comas).
coastal_idTodosUno o más ids de región costera.
countryTodosNombre del país, coincidencia parcial (p. ej. France).
qTodosPalabras en el texto del aviso (original o en inglés).
date_from, date_toTodosAñadido en o después / en o antes, YYYY-MM-DD.
keywordTodosCategoría de palabra clave o cualquier palabra en el texto; repetir para varias.
has_coordinatesTodostrue: solo avisos con posiciones.
include_localsTodostrue: avisos locales franceses (AVURNAV) también.
include_archived, only_archivedPaid APIActivos y archivados, o solo archivados.
status, message_class, station, lat, lon, radius_nm, bboxTodosFiltros del archivo: in_force, cancelled o expired; el tipo; una estación NAVTEX; una posición con radio en millas, o un recuadro west,south,east,north.
include_coordinatesPaid APIPosiciones leídas de cada aviso.
include_enhanced_coordinatesFull APIDecimal, DMS, GeoJSON y vínculos de mapa para cada posición.
include_keywordsFull APIMapa de palabras clave por aviso.
include_geo_featuresFull APIÁreas, círculos, líneas, canales, sectores como GeoJSON.
include_ai_analysisFull APIThe analysis object per warning.
ai_severityFull APIcritical, high, moderate, low, info (repetir para varios).
ai_categoryFull APIcategory ids, e.g. firing_practice, piracy_or_security.
ai_statusFull APIEstado en vivo: active, scheduled, expired, withdrawn (archived), cancellation_notice, informational.
ai_in_forceFull APItrue: solo avisos vigentes ahora mismo.
expires_within_hoursFull APISolo avisos cuyo valid_until caiga en las próximas N horas.
expires_after, expires_beforeFull APIvalid_until en o después / en o antes de una fecha (YYYY-MM-DD) u hora ISO.
exclude_routineFull APItrue: excluir informes rutinarios (informes de hielo, listas de plataformas, listas en vigor).
ai_hasFull APISolo análisis con: contacts, vessels, aids, keep_clear, time_windows, charts, hazards.
min_keep_clear_nmFull APIDistancia de keep-clear de al menos N millas náuticas.
page, page_sizeTodosPor defecto 50 por página; hasta 200 en planes de pago, 50 en el gratuito.
prompt_filterFull APIoff: ignore the token's prompt filter for this call.
topicFull APIUn feed: ice, military, space, cables, offshore, survey, hazards, aton, sar, security (ver Themed feeds).
settingsTodosoff: ignorar los ajustes guardados del token para esta llamada (una llamada simple).

Los campos o filtros que su plan no incluye se omiten y se listan en meta.warnings, nunca un error.

content es el texto tal como se emitió; 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 nombra el idioma original.

Los Local Notices to Mariners de la US Coast Guard (10 distritos, actualizados semanalmente) son regiones costeras tituladas 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, que lista sus ayudas a la navegación con una discrepancia.

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

Ajustes guardados en un token

  • Un token, una forma: 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.
  • Cada opción se muestra, Incluye los de Full API, con el plan que necesita cada uno. Guardar requiere un plan API activo.
  • La URL prevalece: cualquier parámetro que pongas en la URL reemplaza el valor guardado para esa llamada; ?settings=off hace una llamada simple.
  • Periodos relativos: "últimos 30 días" envía date_from como hoy menos 30 días en cada llamada.
  • Las respuestas llevan un X-API-Token-Settings encabezado que nombra el token cuyas configuraciones se aplicaron.

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 devuelve un GeoJSON FeatureCollection, una feature por forma, listo para comprobaciones de ruta y superposición en cartas.
  • ice_type lo limita: iceberg, sea_ice, ice_edge, icing, ice_report, icebreaker, ice_navigation, other_ice (repetir o separar por comas). También funcionan todos los parámetros de /api/v2/messages/, y /api/v2/messages/?topic=ice es el mismo feed.
  • Plan Full API, o una licencia para el feed de hielo (anual, facturada): contáctanos.
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 para un FeatureCollection y ?category=para conservar solo algunas categorías de un feed. También funcionan todos los parámetros de /api/v2/messages/, y /api/v2/messages/?topic=military es el mismo feed.
  • Only warnings with an analysis are included. GET /api/v2/feeds/ (no se necesita token) lista cada feed con cuántos de sus avisos están en vigor.
  • Plan Full API, o una licencia de feed para un único feed (anual, facturada): contáctanos.
  • 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.

Cargando fuentes…

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/ las llamadas con ese token devolverán entonces solo los avisos que coincidan. Un aviso que coincidió mientras estaba en vigor sigue coincidiendo después de archivado.
  • La respuesta añade meta.prompt_filter con el prompt, su estado (matching justo después de guardar, ready después) y cuántos avisos coincidieron. ?prompt_filter=off lo omite para una llamada.
  • 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 geo estructuradas

Suscripción Full API

Solicitar con include_messages=true and include_geo_features=true en los endpoints de lista/detalle NAVAREA o Coastal. Cada mensaje puede incluir un geo_features objeto con geometrías estructuradas listas para cartas y SIG.

  • features[].kind: point, line, lane, area, circle, sector, displacement
  • circle / sector: incluir radius_nm, punto central, y límites de rumbo opcionales
  • lane: línea central más anchura de corredor en corridor_nm or corridors_nm
  • points[]: grados decimales; coordinates_raw[]: cadenas de coordenadas originales del aviso
  • Avisos multizona: message_profile, multi_zone, zone_labels, y por característica metadata.zone_label
  • Zonas de seguridad opcionales: safety_zone_meters, safety_zone_nm
  • Exportaciones de archivos: Los Contributors reciben geometría completa en ECDIS y KML. Otros formatos de exportación incluyen geometría estructurada cuando su cuenta tiene acceso Full API (ver planes).

Campo de ejemplo de mensaje

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

Solicitud de ejemplo

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

Suscripción Full API

Every new or changed warning is read by a model and turned into structured data. Add include_ai_analysis=true (con include_messages=true) en los endpoints de lista/detalle NAVAREA o Coastal y cada mensaje lleva un ai_analysis object, or null mientras una nueva advertencia sigue esperando ser analizada.

  • headline, summary: descripción en inglés claro (las advertencias en otros idiomas se traducen)
  • status: active, scheduled, expired, withdrawn (ya no figura en la lista vigente del emisor), cancellation_notice, informational. Recalculado en cada solicitud a partir de las fechas de validez, por lo que una advertencia pasa de programada a activa a caducada por sí sola.
  • valid_from / valid_until (ISO 8601 UTC) y time_windows[]: periodos de actividad y la hora de autocancelación; validity_text cita la frase fuente
  • category, severity (crítico, alto, moderado, bajo, 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 advertencias que este mensaje cancela o menciona
  • Detalles operativos: keep_clear_nm (distancia mínima de seguridad más amplia, NM), contacts[] (canales VHF, estaciones, teléfonos), vessels[] (nombre, indicativo, MMSI, IMO, rol), depth_m (profundidad mínima sobre un pecio), observed_at (cuando se informó un objeto a la deriva), aids[] (luces y boyas afectadas, con estado), charts[]
  • translations: titular, resumen y acción en chino, español, ruso, portugués, griego, ucraniano, turco, francés y filipino
  • coord_check: positions the automatic read compared with the parser's (ok, mismatch con las posiciones que solo una de las fuentes encontró)
  • Además: status_label, category_label, status_at_analysis (estado según juicio al analizarse), positions_read[] (positions as the automatic read them), confidence (0 a 1), analyzed_at and model
  • Series recurrentes: is_routine, series_key and series_label agrupar boletines repetidos (informes de hielo, listas de posición de plataformas, listas de advertencias vigentes) para que puedas conservar solo el número más reciente

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.

Con API v2 también puedes filtrar por estos datos: estado en vivo, caducidad (por ejemplo todo lo que caduque en las próximas 24 horas), vigente ahora, severidad, categoría, distancia de seguridad, y análisis que nombran contactos, buques o luces.

El análisis se genera automáticamente y puede estar equivocado. El texto original de la advertencia en content sigue siendo la fuente autorizada.

Campo de ejemplo de mensaje

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

Solicitud de ejemplo

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 del mapa (plataformas y MODU)

Los avisos que incluyen listas de posiciones de plataformas o MODU pueden devolver un map_objects campo en cada mensaje cuando usa include_messages=true.

Message field: map_objects.oil_rigs[]

  • name: nombre de la plataforma o unidad tal como se publica
  • coordinate: cadena de coordenadas extraída del aviso
  • lat, lon: grados decimales
  • is_new_rig, is_new_position: cuando se marca en el texto fuente
  • catalog (optional): entrada del catálogo coincidente con slug, href, MMSI, área de navegación

Catálogo público (sin token API)

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

Estaciones costeras de radio y centros de salvamento

Centros de coordinación de salvamento (RCC, MRCC, MRSC, JRCC) y estaciones DSC costeras de 70 países, extraídos de NGA Pub 117 Radio Navigational Aids (capítulo 4), con las estaciones de prueba MF/HF DSC de SeaLagom marcadas. No se necesita token 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}/ - una estación: MMSI, bandas y alcances, tiempos de vigilancia, área, contactos
  • GET /api/public/coast-stations/near/?lat=&lon=&radius_nm=200&limit=12 - nearest stations

near returns rcc_covering (centros de salvamento cuyo área contiene la posición), rcc_near, dsc_near and test_nearest, cada uno con distance_nm. position_approximate es true cuando Pub 117 no da posición y la estación se sitúa en el puerto del mismo nombre. Compruebe cada entrada con su lista oficial de radio.

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"

Finlandia y el Báltico: navegación en hielo, luces y boyas averiadas

Navegación invernal del servicio de rompehielos finlandés-sueco (puertos con restricciones por hielo o cerrados, rompehielos y sus tareas, derrotas en el hielo) y las luces y boyas fuera de servicio en aguas finlandesas, de Fintraffic Digitraffic, actualizado cada 10 minutos. No se necesita token de API. Licencia CC BY 4.0: muestre el crédito que acompaña a los datos.

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

Una restricción como IA 2000 significa asistencia de rompehielos solo para buques con al menos esa clase de hielo y ese peso muerto en toneladas. Fuera de temporada las listas están vacías. Los avisos oficiales de los servicios de navegación invernal son la referencia.

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 costera

Avisos náuticos costeros por región hidrográfica, típicamente más localizados que NAVAREA, que cubren operaciones portuarias, peligros costeros y avisos locales de seguridad marítima.

  • GET /api/v1/coastal/
  • GET /api/v1/coastal/{id}/
  • GET /api/v1/coastal/{id}/messages/
  • GET /api/v1/coastal/{id}/archived_messages/

Solicitud básica

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

Parámetros de consulta costera

Los endpoints de lista / detalle costeros aceptan el mismo estilo de filtros que NAVAREA cuando procede.

ParámetroTipoDescripción
idintegerFiltrar por ID de región costera.
titlestringFiltrar por título.
sub_titlestringFiltrar por sub_title.
include_messagesbooleanIncluir mensajes costeros activos.
include_archivedbooleanIncluir mensajes archivados (Full / Custom).
include_coordinatesbooleanCoordenadas en la respuesta (Full / Custom).
include_enhanced_coordinatesbooleanFormatos Decimal, Google Maps, GeoJSON, DMS (Full / Custom).
include_keywordsbooleanMapa de palabras clave en la respuesta (Full / Custom).
include_geo_featuresbooleanJSON geo_features estructurado por mensaje (solo Full API).
include_ai_analysisbooleanJSON ai_analysis por mensaje (solo Full API).
date_fromdateMisma semántica que NAVAREA (Full / Custom).
date_todateMisma semántica que NAVAREA (Full / Custom).
keywordstringFiltro por palabra clave (Full / Custom).
has_coordinatesbooleanFiltrar mensajes que tengan coordenadas (Full / Custom).
countrystringFiltrar por nombre de país (coincidencia parcial).
content_searchstringBuscar en el cuerpo del mensaje (parcial).
title_searchstringBuscar dentro de títulos (coincidencia parcial).

Integración por webhook

Los suscriptores Full API y Custom pueden configurar una URL de webhook para recibir notificaciones POST en tiempo real siempre que se añadan, actualicen o archiven avisos NAVAREA o Coastal (no se requiere sondeo).

Cómo funcionan los webhooks

  1. Configure una URL de webhook en la configuración de su suscripción.
  2. Cuando se publica o actualiza un aviso, enviamos un POST firmado a su URL.
  3. Verifique la petición usando su webhook secret.
  4. Su servidor procesa la carga útil y toma acción (actualizar BD, enviar notificación 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"}'

Ejemplo de payload de 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

La SeaLag.om API es adecuada para una amplia gama de aplicaciones marítimas. Unos pocos ejemplos:

Software de navegación

Superponer avisos NAVAREA y costeros en tiempo real directamente sobre cartas electrónicas. Use el filtrado por coordenadas para mostrar solo peligros relevantes para la posición del buque o la ruta planificada.

Aplicaciones móviles para marinos

Notificaciones push sobre nuevos avisos en áreas de interés. Combine el filtrado geográfico con webhooks para avisar a los usuarios solo sobre sus regiones especificadas.

Herramientas de evaluación de riesgos

Incorpore los datos de avisos en la planificación de rutas y el análisis de seguridad. El filtrado por palabras clave le permite aislar tipos de peligros como cables submarinos, ejercicios militares o piratería.

Análisis histórico

Utilice el filtrado por fechas y el feed de mensajes archivados para identificar patrones estacionales de avisos, peligros recurrentes o corredores de alto riesgo a lo largo del tiempo.

Integración GIS

Alimente los datos de coordenadas (decimal, GeoJSON, DMS) en ArcGIS, QGIS o capas de mapa personalizadas para crear visualizaciones dinámicas de peligros marítimos.

Sistemas de alertas personalizados

Construya alertas automatizadas para compañías navieras, operadores offshore o autoridades portuarias. Los webhooks se disparan instantáneamente cuando nuevos avisos coinciden con sus criterios.

¿Necesita algo que no aparezca aquí? contact@sealagom.com

Patrones de integración de datos

Patrones comunes para integrar datos de avisos marítimos en sus sistemas:

PatrónDescripciónNivel recomendado
Sincronización periódicaPrograme llamadas API regulares para sincronizar los avisos en su base de datos. Bueno cuando no se requiere entrega en tiempo real.Full API
Actualizaciones en tiempo realLa integración vía webhook entrega notificaciones inmediatas en eventos de publicación/actualización.Full or Custom
Filtrado geográficoFiltre por coordenadas para recuperar solo datos relevantes a áreas específicas de operación.Full or Custom
Alertas basadas en palabras claveAlertas automatizadas activadas por palabras clave específicas en los mensajes de aviso (p. ej. cables submarinos, ejercicios militares).Full or Custom
Almacenamiento de datosAlimente los datos de avisos en pipelines de BI y analítica usando los endpoints de rango de fechas y archivo.Full or Custom
Superposición en carta / GISRepresente los avisos enriquecidos con coordenadas en cartas electrónicas o sistemas de mapeo.Full or Custom
Formas de respuesta personalizadasSelección específica de campos, formatos espaciales a medida o estructuras JSON no estándar.Custom

Consejo para desarrolladores: Usa filtros avanzados para reducir al mínimo la transferencia y el procesamiento de datos. Así las respuestas del nivel gratuito caben en los registros que permite cada llamada y se reduce el tamaño de la respuesta en los planes Full / Custom.

Limitación de peticiones y 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].

PlanSolicitudesArchivados / Coordenadas / Palabras clave
Plan gratuitoLa API sin clave: 100 llamadas al día, hasta 50 avisos por llamada, durante 3 días o 300 llamadas, lo que llegue primeroNo incluido
API DefaultIlimitadoArchived + raw coordinates; no keywords, enhanced coordinates, geo_features or analysis
Full APIIlimitadoTodo incluido
CustomAcordado por contratoTotalmente personalizable

Tus llamadas gratuitas a la API restantes se muestran en Perfil → API.

Ejemplos

Solicitud básica de colección

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

Ejemplo de respuesta 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 avanzados (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"

Respuesta completa de la API con coordenadas y palabras clave

{
  "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 avisos con coordenadas, todos los 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