What it does

travel-brief runs the pre-trip lookups a travel-planning agent otherwise fires off one at a time: current weather for the destination city, an fx rate from the traveler's home currency, and a handful of survival phrases translated into the destination language.

{
  "destination": "Lisbon",
  "language": "Portuguese"
}

returns weather, fx, and translated phrases together:

{
  "destination": "Lisbon",
  "weather": { "current": { "temperature": 24, "humidity_pct": 55 } },
  "fx": { "pair": "USD/EUR", "rate": 0.92 },
  "phrases": [
    { "original": "hello", "translated": "ola" },
    { "original": "thank you", "translated": "obrigado" }
  ]
}

Set include_image: true to also get a postcard-style illustration of the destination — the price stays the same, generation just adds latency.

Why

Weather, fx, and phrase translation are three lookups a trip-prep agent already has to run, against three different endpoints, before it can hand a caller a usable brief. travel-brief runs weather-current-city, exchange-rates, and translate (one leg per phrase) in parallel behind a single paid call.

Degradation

The call succeeds unless both the weather leg and the fx leg fail. Phrase translation and the optional image are pure degrade legs — they never sink the call.

fx is only attempted when destination_currency is supplied directly or the destination matches a curated list of well-known cities; unmapped destinations get a fx.note explaining the skip instead of a guessed currency. Phrases without a language come back untranslated with a note, rather than failing.

Price: $0.05.