OPEN ITINERARY FORMAT · PROPOSAL 1.1.0
A journey you can read.
An open structure.
A .rihla file brings together the story, the stops and the terms for sharing it. It is readable JSON, with attribution built in.
Three distinct versions
| Field | Meaning |
|---|---|
| rihla_version | Format version, currently 1.1.0. |
| version | Published story version: 1.0.0, then 1.0.1… A new draft starts at 0.0.0. |
| lineage.forked_from.version | The exact source version at the time of adaptation. It remains fixed. |
The content contract
Each text is a language dictionary. The title, summary and each stop’s story must be provided in the primary language. Coordinates use WGS84 degrees; ordering starts at 1 and days follow the journey.
Version 1.1.0 adds region_translations, practical.notes_translations and media[].alt_translations. The region, notes and alt fields remain in the primary language; version 1.0.0 files are still accepted.
The interface offers French and English. An incomplete translation falls back to the labelled original. Translations are entered or reviewed manually; no automatic translation service is enabled.
{
"rihla_version": "1.1.0",
"id": "rihla:golfe-morbihan",
"version": "1.0.0",
"default_locale": "fr",
"title": { "fr": "Le golfe, au rythme des marées" },
"pricing": { "model": "free" },
"licence": "CC-BY-NC-4.0"
}Abbreviated excerpt: download the example file for a complete, valid document.
Attribution and adaptation
A fork receives its own identity and keeps a reference to its source: identifier, version, title, author and licence. Earlier sources remain in lineage.ancestors. Published versions are immutable; editing a draft does not change a publication.
Source restrictions are preserved. Version 1 takes a conservative approach to adaptations: a CC BY-NC source retains CC BY-NC, a CC BY-SA source retains CC BY-SA, and existing attribution cannot be removed using CC0.
Read, cite, export
GET /api/itineraries returns free publications. GET /api/itineraries/{id}?version=1.0.0 lets you cite a specific version. Each page also includes TouristTrip structured data.
GET /api/itineraries/{id}/export?format=gpx accepts rihla, gpx, geojson and kml. GPX, GeoJSON and KML preserve stops and attribution; the .rihla file preserves all multilingual content.
These points do not describe a navigable route. Budgets are indicative; 0–0 means “to be estimated”. An unspecified maximum height does not imply permission to access a location.
Add lang=en to GPX, GeoJSON and KML exports to choose English. The .rihla file retains all languages. French URLs are preserved; English pages use /en.
What comes next
The MCP server, x402 purchases, monetisation and partner spaces belong to later phases. The distribution.mcp field therefore remains false.