API conventions
Rules shared by most endpoints, with the exceptions named. Skim before writing your client.
Country subdomains
The base URL is https://<country>.yatmo.com, where <country> is the lowercased ISO code of the country whose data you’re querying. Examples:
https://be.yatmo.com: Belgiumhttps://fr.yatmo.com: Francehttps://nl.yatmo.com: Netherlandshttps://lu.yatmo.com: Luxembourghttps://ch.yatmo.com: Switzerlandhttps://de.yatmo.com: Germanyhttps://at.yatmo.com: Austriahttps://it.yatmo.com: Italyhttps://es.yatmo.com: Spainhttps://pt.yatmo.com: Portugalhttps://ie.yatmo.com: Irelandhttps://uk.yatmo.com: United Kingdomhttps://ca.yatmo.com: Canadahttps://gr.yatmo.com: Greecehttps://ma.yatmo.com: Moroccohttps://au.yatmo.com: Australiahttps://hr.yatmo.com: Croatiahttps://mt.yatmo.com: Maltahttps://si.yatmo.com: Sloveniahttps://rs.yatmo.com: Serbiahttps://cy.yatmo.com: Cyprushttps://ba.yatmo.com: Bosnia and Herzegovinahttps://me.yatmo.com: Montenegrohttps://bg.yatmo.com: Bulgariahttps://al.yatmo.com: Albania
Same endpoint paths on every subdomain. The full coverage list is on Countries & languages.
Latitude / longitude order
Most endpoints take a point as two named query parameters, which removes any doubt about the order:
?latitude=50.846714&longitude=4.352514
Three exceptions, each with its own order:
/pointstakes two corners,bound1(south-west) andbound2(north-east), each as a singlelatitude,longitudestring:bound1=50.8440,4.3482.- The JavaScript map plugin takes
center: [longitude, latitude], the MapLibre and GeoJSON order, while itsrouteFromandisochroneobjects take namedlatitudeandlongitude. - GeoJSON responses (
/isochrone,/routegeometries) list positions as[longitude, latitude], as the GeoJSON specification requires.
Language parameter
Endpoints that return user-facing strings (place labels, travel labels, the structured summary) take a language query param: the two-letter ISO 639-1 code, uppercased: EN, FR, NL, DE, IT, ES, PT, CA, ZH, HI, AR, RU, JA, EL, HR, MT, SL, SR, TR, BS, SQ, BG. One exception: Montenegrin has no ISO 639-1 code, so it uses the three-letter ISO 639-2/3 code CNR.
Exception: /summary/text takes no language parameter. It returns every language the country supports in one response, each sentence keyed by its language code; pick the one you publish.
If you pass a language that is not supported in the country you queried, Yatmo falls back to EN. See Countries & languages for the matrix.
URL encoding
Standard query-string rules. The two things people forget:
- Hex color codes:
#becomes%23. SopinColor=#af0014goes on the wire aspinColor=%23af0014. - Multiple values: when an endpoint accepts a list, join the values with literal commas, for example
poiTypesIds=10030001000001,10020003000001(supermarkets and bus stops in Belgium, from /simplifiedcategories). No bracket syntax.
JSON encoding
Responses are application/json; charset=utf-8. Property names use PascalCase (e.g. AvailableCategoriesAroundPosition) — matching the C# DTO field names directly. Some highly-traversed list endpoints (like /points) return short field names (n, la, ln, p) to keep payloads small — those are documented per-endpoint.
Dates and times are ISO 8601 in UTC.