HomeMapSky mapAlpha
More
Account
Loading…
Language: English

API de navigation maritime

Accès programmatique aux avertissements NAVAREA et côtiers. L'abonnement REST est disponible dans /api/v1/ avec l'en-tête X-API-Token. Les niveaux supérieurs débloquent les coordonnées, les cartes de mots-clés, l'archive entière d'un coup et les filtres avancés.

Développeurs : connectez-vous avec GitHub et une clé Developer est dans votre onglet API en dix secondes, avec 2 000 requêtes gratuites sur les avertissements en vigueur. Les archives et l'analyse complète viennent avec les formules payantes.

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

Démarrage

  1. Choisissez un forfait dans plans du contributeur.
  2. Créez un token API sous Profil → API.
  3. Envoyer X-API-Token à chaque /api/v1/ appel.
  4. Respectez la pagination et l'utilisation des tokens sur les endpoints de liste.

Plans d'abonnement API

Passez à API Default pour texte brut et coordonnées, à Full API pour géométrie structurée (geo_features), ou contactez-nous pour une intégration sur mesure.

Niveau gratuit de l'API

L'API sans clé : 100 appels par jour, jusqu'à 50 avertissements par appel, pendant 3 jours ou 300 appels, selon ce qui arrive en premier.

Quand un quota est utilisé, l'API répond HTTP 402 avec ce qui a été utilisé, quand il revient et les liens pour payer tout de suite : le paiement, la crypto ou POST /api/agent/checkout/ depuis un script.

Connecté sans forfait API, le même niveau gratuit compte sur votre compte. Le quota développeur GitHub garde ses propres requêtes.

Messages en direct uniquement. Pas d'archives, de coordonnées, de coordonnées enrichies, de mots-clés, de webhooks ni de filtres avancés.

API Default

Requêtes illimitées, $20 le premier mois, puis $18 / mois avec renouvellement automatique

  • Requêtes API illimitées
  • Messages en direct NAVAREA et côtiers
  • Accès aux messages archivés
  • Texte brut des messages et coordonnées
  • Intégration webhook pour mises à jour en temps réel

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

S'abonner à API Default

Full API

Requêtes illimitées, $100 first month, then $90 / month with auto-renew

  • Requêtes API illimitées
  • Messages en direct NAVAREA et côtiers
  • Accès aux messages archivés
  • Coordonnées (tous formats : décimales, GeoJSON, DMS, Google Maps)
  • geo_features : points, lignes, couloirs, zones, cercles, secteurs, déplacement, zones de sécurité
  • analysis of every warning: summary, status, validity / expiry, hazards, recurring series
  • Géométrie structurée en GeoJSON, CSV, Shapefile, WKT (ECDIS & KML géométrie complète sur Contributor)
  • Extraction cartographique de mots-clés
  • Filtres avancés (date, keyword, country, type, has_coordinates)
  • Intégration webhook pour mises à jour en temps réel
S'abonner à Full API

Custom API

Adaptée à vos besoins ; contactez-nous

  • Tout ce qui est dans Full API
  • Structures de réponse personnalisées & formats de données
  • Champs spécifiques, structures ou formats spatiaux sur demande
  • Support dédié et assistance à l'intégration
  • Offres entreprise ou à fort volume
  • SLA et charges utiles webhook sur mesure
Contactez-nous

Besoin de quelque chose sur mesure ? Envoyez un e-mail contact@sealagom.com Les réponses de l'API peuvent être personnalisées dans n'importe quel format ou structure spatiale.

Voir les offres en cours et s'abonner

Générateur de requêtes interactif

Composez une URL GET et copiez les exemples (cURL, Python, JavaScript, Java, Rust). Remplacez le token par le vôtre.

Vous utilisez constamment les mêmes paramètres ? Enregistrez-les directement sur le token avec le API v2 builder sur votre profil, avec un aperçu en direct.

URL générée

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"

Aperçu

Bienvenue sur l'API Maritime SeaLag.om !

Cette API fournit un accès programmatique aux avertissements NAVAREA et côtiers essentiels pour la sécurité maritime et la navigation.

Les abonnés Full API reçoivent des données enrichies, dont les coordonnées (plusieurs formats), les mots-clés, l'archive entière d'un coup et les filtres avancés. Besoin d'un format ou d'une structure spatiale sur mesure ? Contactez-nous pour une intégration sur mesure.

Les réponses sont au format JSON liste / détail. Utilisez page and page_size là où c'est pris en charge.

Authentification

Envoyez l'en-tête X-API-Token: <token> à chaque /api/v1/ requête. Les tokens manquants ou invalides renvoient 401 Unauthorized. Les tokens sont créés dans votre profil ; faites-les pivoter ou révoquez-les depuis le même écran.

X-API-Token: YOUR_API_TOKEN
Sécurité : Gardez les tokens privés. Utilisez un token séparé par application. Régénérez périodiquement ou immédiatement en cas de compromission.

Gestion des tokens

  • GET /api/v1/tokens/ - lister vos tokens
  • POST /api/v1/tokens/ - créer un token
  • POST /api/v1/tokens/{id}/regenerate/ - régénérer (invalide l'ancienne valeur)
# 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 et paramètres de token

API v2 utilise le même token, les mêmes plans et la même comptabilisation des requêtes que v1. Tout ce qui se trouve sous /api/v1/ continue de fonctionner exactement comme avant, donc les intégrations existantes n'ont pas besoin d'être modifiées. v2 ajoute :

  • Une liste unique de tous les avertissements : GET /api/v2/messages/, NAVAREA et côtiers ensemble, du plus récent au plus ancien, chaque message avec sa région, son pays et son statut d'archivage.
  • Filtres de message sur les endpoints de région : /api/v2/navarea/ and /api/v2/coastal/ répond comme v1 et s'appliquent aussi date_from, date_to, keyword and has_coordinates aux messages qu'ils renvoient.
  • Paramètres sauvegardés sur chaque token : choisissez un token dans Profile > API > API v2 builder, construisez la réponse avec des menus et un aperçu en direct, puis enregistrez. Chaque appel /api/v2/ avec ce token renverra cette forme ; les appels /api/v1/ ignorent les paramètres sauvegardés et répondent exactement comme avant.
  • prompt filter (Full API):décrivez, avec vos propres mots, les avertissements qu'un token doit renvoyer, par exemple "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/

ParamètrePlanCe que cela fait
scopeTousnavarea, coastal ou all (par défaut).
navarea_idTousUn ou plusieurs identifiants NAVAREA (répétez ou séparez par des virgules).
coastal_idTousUn ou plusieurs identifiants de région côtière.
countryTousNom du pays, correspondance partielle (p.ex. France).
qTousMots dans le texte de l'avis (dans la langue d'origine ou en anglais).
date_from, date_toTousAjouté le ou après / le ou avant, YYYY-MM-DD.
keywordTousCatégorie de mot-clé ou n'importe quel mot dans le texte ; répéter pour plusieurs.
has_coordinatesToustrue : seuls les avis avec positions.
include_localsToustrue : aussi les avis locaux français (AVURNAV).
include_archived, only_archivedAPI payanteActifs et archivés, ou uniquement archivés.
status, message_class, station, lat, lon, radius_nm, bboxTousFiltres de l'archive : in_force, cancelled ou expired ; le type ; une station NAVTEX ; une position avec un rayon en milles, ou un cadre west,south,east,north.
include_coordinatesAPI payantePositions extraites de chaque avis.
include_enhanced_coordinatesFull APIDécimal, DMS, GeoJSON et liens cartographiques pour chaque position.
include_keywordsFull APICarte des mots-clés par avis.
include_geo_featuresFull APIZones, cercles, lignes, couloirs, secteurs en GeoJSON.
include_ai_analysisFull APIThe analysis object per warning.
ai_severityFull APIcritical, high, moderate, low, info (répéter pour plusieurs).
ai_categoryFull APIcategory ids, e.g. firing_practice, piracy_or_security.
ai_statusFull APIStatut en direct : active, scheduled, expired, withdrawn (archived), cancellation_notice, informational.
ai_in_forceFull APItrue : uniquement les avis en vigueur en ce moment.
expires_within_hoursFull APIUniquement les avis dont valid_until tombe dans les N prochaines heures.
expires_after, expires_beforeFull APIvalid_until le ou après / le ou avant une date (YYYY-MM-DD) ou un horaire ISO.
exclude_routineFull APItrue : exclure les rapports routiniers (rapports de glace, listes de plateformes, listes en vigueur).
ai_hasFull APIUniquement les analyses avec : contacts, vessels, aids, keep_clear, time_windows, charts, hazards.
min_keep_clear_nmFull APIDistance de garde d'au moins N milles nautiques.
page, page_sizeTousPar défaut 50 par page ; jusqu'à 200 sur les plans payants, 50 sur le plan gratuit.
prompt_filterFull APIoff: ignore the token's prompt filter for this call.
topicFull APIUn flux : ice, military, space, cables, offshore, survey, hazards, aton, sar, security (voir Themed feeds).
settingsTousoff : ignorer les paramètres enregistrés du token pour cet appel (appel simple).

Les champs ou filtres que votre plan n'inclut pas sont omis et listés dans meta.warnings, jamais une erreur.

content est le texte tel que diffusé ; 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 indique la langue d'origine.

Les Local Notices to Mariners de la US Coast Guard (10 districts, mis à jour hebdomadairement) sont des régions côtières intitulées US Coast Guard LNM, pays US. They are not analysed, so their automatic fields are empty; each district also has one message, number LNMxx-DISCREPANCIES, listant ses aides à la navigation présentant une anomalie.

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

Paramètres enregistrés sur un token

  • Un token, une forme : 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.
  • Toutes les options sont affichées, Comprend les Full API, avec le plan nécessaire pour chacun. L'enregistrement nécessite un plan API actif.
  • L'URL l'emporte : tout paramètre passé dans l'URL remplace la valeur enregistrée pour cet appel ; ?settings=off effectue un appel simple.
  • Périodes relatives : "les 30 derniers jours" envoie date_from comme aujourd'hui moins 30 jours pour chaque appel.
  • Les réponses contiennent un X-API-Token-Settings en-tête indiquant le token dont les réglages ont été appliqués.

Flux glace : 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 retourne un GeoJSON FeatureCollection, une feature par forme, prêt pour les contrôles de route et les superpositions de cartes.
  • ice_type la restreint : iceberg, sea_ice, ice_edge, icing, ice_report, icebreaker, ice_navigation, other_ice (répétez ou séparez par des virgules). Tous les paramètres /api/v2/messages/ fonctionnent aussi, et /api/v2/messages/?topic=ice est le même flux.
  • Plan Full API, ou licence flux glace (annuelle, facturée) : contactez-nous.
curl "https://www.sealagom.com/api/v2/ice/?output=geojson&ice_type=iceberg,ice_edge" -H "X-API-Token: YOUR_API_TOKEN"

Flux thématiques : 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 pour une FeatureCollection et ?category=pour ne conserver que certaines catégories d'un flux. Tous les paramètres /api/v2/messages/ fonctionnent aussi, et /api/v2/messages/?topic=military est le même flux.
  • Only warnings with an analysis are included. GET /api/v2/feeds/ (pas de token requis) liste chaque flux avec le nombre d'avis en vigueur.
  • Plan Full API, ou licence de flux pour un seul flux (annuelle, facturée) : contactez-nous.
  • 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.

Chargement des flux…

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/ les appels avec ce token renvoient alors seulement les avis correspondants. Un avis qui correspondait pendant qu'il était en vigueur reste correspondant après son archivage.
  • La réponse ajoute meta.prompt_filter avec le prompt, son statut (matching juste après l'enregistrement, ready puis) et combien d'avis ont été retenus. ?prompt_filter=off l'ignore pour un appel.
  • 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
    }
  }
}

Fonctions géo structurées

Abonnement Full API

Requête avec include_messages=true and include_geo_features=true sur les endpoints list/detail NAVAREA ou Coastal. Chaque message peut inclure un geo_features objet avec des géométries structurées prêtes pour les cartes et les SIG.

  • features[].kind: point, line, lane, area, circle, sector, displacement
  • circle / sector: inclure radius_nm, point central, et limites d'azimut optionnelles
  • lane: ligne centrale plus largeur de couloir en corridor_nm or corridors_nm
  • points[]: degrés décimaux; coordinates_raw[]: chaînes de coordonnées originales provenant de l'avis
  • Avertissements multi-zones : message_profile, multi_zone, zone_labels, et par fonctionnalité metadata.zone_label
  • Zones de sécurité optionnelles : safety_zone_meters, safety_zone_nm
  • Exports de fichiers : Les Contributor reçoivent la géométrie complète en ECDIS et KML. Les autres formats d'export incluent la géométrie structurée lorsque votre compte dispose de l'accès Full API (voir plans).

Exemple de champ de message

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

Exemple de requête

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

Abonnement Full API

Every new or changed warning is read by a model and turned into structured data. Add include_ai_analysis=true (avec include_messages=true) sur les points de terminaison de liste/détail NAVAREA ou côtiers et chaque message porte un ai_analysis object, or null pendant qu'un nouvel avis est encore en attente d'analyse.

  • headline, summary: description en anglais simple (les avis non anglais sont traduits)
  • status: active, scheduled, expired, withdrawn (n'est plus dans la liste en vigueur de l'émetteur), cancellation_notice, informational. Recalculé à chaque requête à partir des dates de validité, de sorte qu'un avis passe automatiquement de planifié à actif puis expira.
  • valid_from / valid_until (ISO 8601 UTC) et time_windows[]: périodes d'activité et l'heure d'auto-annulation; validity_text cite la phrase source
  • category, severity (critique, élevée, modérée, faible, 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[]: numéros d'avis que ce message annule ou auquel il se réfère
  • Détails opérationnels : keep_clear_nm (distance minimale de séparation, NM), contacts[] (canaux VHF, stations, téléphones), vessels[] (nom, indicatif d'appel, MMSI, IMO, rôle), depth_m (profondeur minimale au-dessus d'une épave), observed_at (moment où un objet dérivant a été signalé), aids[] (phares et bouées affectés, avec leur état), charts[]
  • translations: titre, résumé et action en Chinese, Spanish, Russian, Portuguese, Greek, Ukrainian, Turkish, French and Filipino
  • coord_check: positions the automatic read compared with the parser's (ok, mismatch avec les positions trouvées par une seule des sources)
  • Également : status_label, category_label, status_at_analysis (statut estimé lors de l'analyse), positions_read[] (positions as the automatic read them), confidence (0 à 1), analyzed_at and model
  • Séries récurrentes: is_routine, series_key and series_label regroupe les bulletins répétés (rapports sur la glace, listes de positions de plateformes, listes d'avis en vigueur) pour ne conserver que la dernière édition

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.

Avec API v2 vous pouvez aussi filtrer par ces données : statut en direct, expiration (par exemple tout ce qui expire dans les prochaines 24 heures), en vigueur maintenant, gravité, catégorie, distance de sécurité, et analyses qui nomment des contacts, navires ou feux.

L'analyse est générée automatiquement et peut être incorrecte. Le texte original de l'avis dans content reste la source faisant foi.

Exemple de champ de message

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

Exemple de requête

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"

Objets carte (plate-formes & MODU)

Les avis qui incluent des listes de positions de plate-forme ou de MODU peuvent renvoyer un map_objects champ sur chaque message lorsque vous utilisez include_messages=true.

Message field: map_objects.oil_rigs[]

  • name: nom de la plate-forme ou de l'unité tel que publié
  • coordinate: chaîne de coordonnées extraite de l'avis
  • lat, lon: degrés décimaux
  • is_new_rig, is_new_position: lorsqu'il est signalé dans le texte source
  • catalog (optionnel): entrée de catalogue appariée avec slug, href, MMSI, zone de navigation

Catalogue public (pas de jeton API)

  • GET /api/public/modu/?q=&page=1 - search active rigs
  • GET /api/public/modu/s/{slug}/ - détail de la plate-forme et avis liés
  • GET /api/public/map-rigs/ - all active rigs for map overlays

Stations radio côtières et centres de secours

Centres de coordination de sauvetage (RCC, MRCC, MRSC, JRCC) et stations DSC côtières de 70 pays, issus du NGA Pub 117 Radio Navigational Aids (chapitre 4), avec les stations d'essai MF/HF DSC de SeaLagom indiquées. Aucun jeton API requis.

  • 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}/ - une station : MMSI, bandes et portées, heures de veille, zone, contacts
  • GET /api/public/coast-stations/near/?lat=&lon=&radius_nm=200&limit=12 - nearest stations

near returns rcc_covering (centres de secours dont la zone contient la position), rcc_near, dsc_near and test_nearest, chacun avec distance_nm. position_approximate est vrai lorsque Pub 117 ne donne pas de position et que la station est placée au port du même nom. Vérifiez chaque entrée par rapport à votre liste radio officielle.

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"

Finlande et Baltique : navigation dans les glaces, feux et bouées en panne

Navigation hivernale du service finno-suédois de brise-glaces (ports soumis à des restrictions de glace ou fermés, brise-glaces et leurs missions, routes dans la glace) et feux et bouées hors service dans les eaux finlandaises, de Fintraffic Digitraffic, mis à jour toutes les 10 minutes. Aucun jeton d'API nécessaire. Licence CC BY 4.0 : affichez la mention de source fournie avec les données.

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

Une restriction telle que IA 2000 signifie que l'assistance des brise-glaces n'est accordée qu'aux navires d'au moins cette classe glace et de ce port en lourd en tonnes. Hors saison, les listes sont vides. Les avis officiels des services de navigation hivernale font foi.

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 côtière

Avis de navigation côtiers par région hydrographique, généralement plus localisés que NAVAREA, couvrant les opérations portuaires, les dangers côtiers et les avis locaux de sécurité maritime.

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

Requête basique

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

Paramètres de requête côtière

Les endpoints de liste / détail côtière acceptent le même style de filtres que NAVAREA lorsque applicable.

ParamètreTypeDescription
idintegerFiltrer par ID de région côtière.
titlestringFiltrer par titre.
sub_titlestringFiltrer par sub_title.
include_messagesbooleanInclure les messages côtiers actifs.
include_archivedbooleanInclure les messages archivés (Full / Custom).
include_coordinatesbooleanCoordonnées dans la réponse (Full / Custom).
include_enhanced_coordinatesbooleanFormats Decimal, Google Maps, GeoJSON, DMS (Full / Custom).
include_keywordsbooleanCarte de mots-clés dans la réponse (Full / Custom).
include_geo_featuresbooleangeo_features JSON structuré par message (Full API uniquement).
include_ai_analysisbooleanai_analysis JSON par message (Full API uniquement).
date_fromdateMêmes sémantiques que NAVAREA (Full / Custom).
date_todateMêmes sémantiques que NAVAREA (Full / Custom).
keywordstringFiltre de mots-clés (Full / Custom).
has_coordinatesbooleanFiltrer les messages contenant des coordonnées (Full / Custom).
countrystringFiltrer par nom de pays (correspondance partielle).
content_searchstringRechercher dans le corps du message (partiel).
title_searchstringRechercher dans les titres (correspondance partielle).

Intégration webhook

Les abonnés Full API et Custom peuvent configurer une URL de webhook pour recevoir des notifications POST en temps réel chaque fois que des avis NAVAREA ou côtiers sont ajoutés, mis à jour ou archivés (pas de polling requis).

Comment fonctionnent les webhooks

  1. Configurez une URL de webhook dans les paramètres de votre abonnement.
  2. Lorsqu'un avis est publié ou mis à jour, nous envoyons un POST signé vers votre URL.
  3. Vérifiez la requête en utilisant votre secret de webhook.
  4. Votre serveur traite la charge utile et prend des mesures (mise à jour de la base de données, notification 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.

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

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

Cas d'utilisation

L'API SeaLagom convient à un large éventail d'applications maritimes. Quelques exemples :

Logiciels de navigation

Superposer en direct les avertissements NAVAREA et côtiers directement sur les cartes électroniques. Utilisez le filtrage par coordonnées pour n'afficher que les dangers pertinents pour la position du navire ou la route prévue.

Applications mobiles pour marins

Notifications push concernant les nouveaux avertissements dans les zones d'intérêt. Associez le filtrage géographique aux webhooks pour alerter les utilisateurs uniquement pour leurs régions spécifiées.

Outils d'évaluation des risques

Intégrez les données d'avertissement dans la planification de route et l'analyse de sécurité. Le filtrage par mots-clés permet d'isoler des types de dangers tels que câbles sous-marins, exercices militaires ou piraterie.

Analyse historique

Utilisez le filtrage par date et le flux des messages archivés pour identifier des schémas saisonniers d'avertissements, des dangers récurrents ou des couloirs à risque élevé au fil du temps.

Intégration SIG

Alimentez les données de coordonnées (décimal, GeoJSON, DMS) dans ArcGIS, QGIS ou des couches cartographiques personnalisées pour créer des visualisations dynamiques des dangers maritimes.

Systèmes d'alerte personnalisés

Construisez des alertes automatisées pour des compagnies maritimes, des opérateurs offshore ou des autorités portuaires. Les webhooks se déclenchent instantanément lorsque de nouveaux avertissements correspondent à vos critères.

Besoin de quelque chose qui n'est pas listé ici ? contact@sealagom.com

Schémas d'intégration des données

Schémas courants pour intégrer les données d'avertissement maritime dans vos systèmes :

SchémaDescriptionNiveau recommandé
Synchronisation périodiquePlanifiez des appels API réguliers pour synchroniser les avertissements dans votre base de données. Utile lorsque la livraison en temps réel n'est pas nécessaire.Full API
Mises à jour en temps réelL'intégration par webhook fournit des notifications immédiates lors des événements de publication / mise à jour.Full or Custom
Filtrage géographiqueFiltrez par coordonnées pour ne récupérer que les données pertinentes pour des zones d'exploitation spécifiques.Full or Custom
Alertes basées sur des mots-clésAlertes automatisées déclenchées par des mots-clés spécifiques dans les messages d'avertissement (par ex. câbles sous-marins, exercices militaires).Full or Custom
Entrepôt de donnéesAlimentez les données d'avertissement dans des pipelines BI et d'analyse en utilisant les endpoints d'intervalle de dates et d'archive.Full or Custom
Superposition sur carte / SIGTracez les avertissements enrichis en coordonnées sur des cartes électroniques ou des systèmes de cartographie.Full or Custom
Formes de réponse personnaliséesSélection de champs spécifique, formats spatiaux sur mesure ou structures JSON non standard.Custom

Conseil pour développeurs : Utilisez les filtres avancés pour réduire au minimum le transfert et le traitement des données. Les réponses du niveau gratuit restent ainsi dans le nombre d'enregistrements permis par appel, et la taille des réponses diminue sur les plans Full / Custom.

Limitation du débit et utilisation des 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].

PlanRequêtesArchivés / Coordonnées / Mots-clés
Offre gratuiteL'API sans clé : 100 appels par jour, jusqu'à 50 avertissements par appel, pendant 3 jours ou 300 appels, selon ce qui arrive en premierNon inclus
API DefaultIllimitéArchived + raw coordinates; no keywords, enhanced coordinates, geo_features or analysis
Full APIIllimitéTout inclus
CustomConvenu par contratEntièrement personnalisable

Vos appels API gratuits restants sont affichés dans Profil → API.

Exemples

Requête de collecte basique

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

Exemple de réponse list (tronquée)

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

Filtres avancés (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"

Réponse Full API avec coordonnées et mots-clés

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

Filtrer les messages avec coordonnées, tous formats

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"

Filtres combinés

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