Skip to content

Data & source

The board aggregates the travel advisories published by 5 foreign ministries. Each one publishes on its own format and licence:

OriginFeedLicence / attribution
🇺🇸 USRSS — travel.state.gov (levels 1–4)Public domain (US federal)
🇨🇦 CAJSON — data.international.gc.ca (official EN and FR texts)Open Government Licence — Canada
🇩🇪 DEJSON — auswaertiges-amt.de/opendata/travelwarningOpen data Auswärtiges Amt
🇬🇧 GBContent API — gov.uk/api/content/foreign-travel-adviceOpen Government Licence v3.0
🇫🇷 FRdiplomatie.gouv.fr (Conseils aux voyageurs)Licence Ouverte / Etalab 2.0

Those five feeds don’t agree on anything — not the risk scale, not the country codes, not the language. An ingestion pipeline reads each source, normalizes it and stores the current state in the Visamundi referential (one row per ministry × destination):

  • Levels are normalized to 1–4 (e.g. Germany’s partialWarning → 3, the UK’s “advise against all travel” → 4, France’s « formellement déconseillé » → 4). The original wording stays available through the link to the source.
  • Destinations are keyed by ISO 3166-1 alpha-2 — each ministry’s exotic country coding is resolved at ingestion, which is also what the rounded flags are keyed on.
  • Titles and summaries exist in French and English — official text when the source publishes both (Canada does), translated otherwise and flagged as such. Details always defer to the official advisory.

A small serverless function reads the referential server-side (credentials never reach the browser) and returns the flattened list with permissive CORS, edge-cached for about an hour:

GET https://advisories.visamundi.app/api/advisories

See Installation for a drop-in snippet that consumes it.

{
"updated": "2026-08-13T10:12:50.736Z",
"count": 1063,
"advisories": [
{
"source": "CA",
"iso2": "AF",
"level": 4,
"url": "https://travel.gc.ca/destinations/afghanistan",
"date": "2026-07-29T18:31:46.200Z",
"title": {
"fr": "Afghanistan — Éviter tout voyage",
"en": "Afghanistan — Avoid all travel"
},
"summary": {
"fr": "Changement mineur",
"en": "Editorial change"
}
}
]
}

One entry per (ministry, destination) pair — source is the ministry’s country code (US · CA · DE · GB · FR), iso2 the destination. The widget groups the list by destination entirely in the browser (average level rounded to the nearest, per-ministry badges, freshest date), so it’s always current — no rebuild needed.

Request API access

Tell us a little about your integration and we'll get back to you within one business day with a partner token.