Glossary
A reference for the domain concepts and project-specific terms used throughout
reisewarnungen-cli. The domain (German foreign-office travel advice) is German;
this glossary gives the English term used in the CLI/client alongside the
original German where one exists.
Translation table. The CLI/client follows these:
German English / client term Reisewarnung (full) travel warning Teilreisewarnung partial / regional warning Reise- und Sicherheitshinweise travel and safety advice Auswärtiges Amt Federal Foreign Office Land country Inhalt content
The API and its publisher
Auswärtiges Amt (AA) — Federal Foreign Office. The German federal ministry
for foreign affairs. It issues the official travel and safety advice this tool
reads. Web home and data host: auswaertiges-amt.de.
Travel-warning open-data API. The open, no-authentication endpoint published
by the AA at https://www.auswaertiges-amt.de/opendata/travelwarning. It returns
the AA’s per-country travel and safety advice as JSON. Read-only (GET); no API
key is required. This is the only API the tool wraps; DEFAULT_BASE_URL is
https://www.auswaertiges-amt.de and the resource path is
/opendata/travelwarning.
Reise- und Sicherheitshinweise (travel and safety advice). The AA’s
country-by-country guidance for travellers: entry rules, security situation,
health, and — where the situation warrants — an explicit warning. The advice text
is delivered as HTML in the content field.
Endpoints / resources
List endpoint (GET /opendata/travelwarning). Returns all countries at
once as a map of content id -> country summary, plus envelope members. The
per-country summaries here do not include the HTML content. CLI: list
(raw) and countries (flattened).
Single-warning endpoint (GET /opendata/travelwarning/{contentId}). Returns
one country’s full advice, with the HTML content populated. CLI: get.
Response shape
response envelope. Every API response is wrapped in a top-level response
object. The client unwraps it: list() returns response; a 200 whose body
lacks the response envelope is surfaced as a ReiseParseError rather than
masked as an empty success.
lastModified. An envelope member (a Unix-epoch timestamp, in
seconds) carried alongside the country entries — nominally when the dataset
was last changed, but it lags far behind the entries’ own lastModified values
(1757063288, 2025-09-05, when checked on 2026-09-15). It is not a country, so
summaries() skips it when flattening.
contentList. An envelope member: an array of all content ids the upstream
includes alongside the per-country summaries. Also not a country, so
summaries() skips it.
TravelWarning. One country’s entry. Fields the client surfaces: title,
countryCode, iso3CountryCode, countryName, the four boolean warning flags
(below), lastModified, effective, lastChanges, content (HTML, single
endpoint only), and disclaimer.
CountryEntry. A TravelWarning augmented with its id (the content id),
produced by summaries() — the flattened, array-shaped view of the list.
Identifiers & codes
content id (contentId). The numeric-string key under which a country’s
entry is stored in the response map (e.g. 226768). It is the id field on a
CountryEntry and the required argument to get <contentId>. It is not an ISO
country code. An empty content id is rejected as a usage error rather than sent
upstream.
countryCode. The ISO 3166-1 alpha-2 (two-letter) country code, e.g. TH,
JO. Kosovo, which has no official ISO code, uses XK.
iso3CountryCode. The ISO 3166-1 alpha-3 (three-letter) country code, e.g.
DEU, FRA.
countryName. The human-readable country name (German).
Warning flags
The four boolean fields the client surfaces, in increasing specificity. A
country counts as “warned” (the countries --warned-only filter) if any of
them is true.
warning. A full travel warning (Reisewarnung) is in force for the whole country — the AA’s strongest advice against travel.
partialWarning. A partial/regional warning (Teilreisewarnung) is in force — the warning applies to specific regions rather than the whole country.
situationWarning. A situation-specific warning is in force (tied to a particular event or circumstance).
situationPartWarning. A situation-specific partial warning — situational and limited to part of the country.
Other entry fields
title. The advice document’s title.
effective. A Unix-epoch timestamp (seconds): when the current advice
took effect. Each entry’s own lastModified uses the same unit.
lastChanges. A short, human-readable note describing what changed in the latest revision of the advice.
content. The full advice text as HTML. Present only on the
single-warning endpoint, so it appears on get results, not on list /
countries.
disclaimer. The AA’s standard legal disclaimer text accompanying the advice.
API & transport concepts
Read-only, no auth. The endpoint serves data over GET with no key, token
or login. The client only reads; it issues no writes.
Retry / backoff. Transient 429 (rate limited) and 503 responses are
retried automatically with linear backoff (--max-retries, default 2;
base delay grows with each attempt).
Redirects. The engine follows up to maxRedirects (default 5) HTTP
redirects (301/302/303/307/308), resolving Location relative to the current
URL. On a cross-origin redirect it strips sensitive headers
(Authorization, Cookie, X-API-Key, Proxy-Authorization,
WWW-Authenticate) so credentials are never leaked to another host.
maxResponseBytes. A hard cap on the response body size (default 100 MiB;
0 disables it) that aborts the request if exceeded, defending against memory
exhaustion from a hostile or buggy endpoint.
Sole-entry tolerance. On get, the single-warning endpoint normally keys its
one entry under the requested content id. As a tolerance for that key ever
differing, a sole non-lastModified object entry is accepted as the result;
but an ambiguous (multi-entry) or empty response is treated as not found
rather than risk returning a different country than requested.
Library & internals. Terms for the TypeScript client and its internals —
ReisewarnungenClient, the request engine, transport, retry/backoff, error types, sole-entry tolerance — now live in DEVELOPING.md.