Changelog

Every change you can see in the API, newest first. Follow it in a feed reader: Atom feed.

  1. Added

    Pace plans for a course

    POST /v1/pace-plan gives splits every kilometre or mile for one GPX or GeoJSON line, from a target time or a pace on the flat, slower where the course climbs or descends steeply. Each split ends on its mark and names its terrain. 2 credits. POST /v1/route now allows legs up to 60 km and counts waypoints and legs from 0.

  2. Added

    Route through waypoints in the /v1 style

    POST /v1/route takes 2 to 100 [lon, lat] waypoints and flat settings and answers with a GeoJSON line, its legs, climb, hike time, surfaces, SAC grades, hazards and turn-by-turn steps; errors as { error: { code, message } }. Same router and credits as POST /route/v1, which stays.

  3. Added

    Browser keys, and a daily ceiling for area lookups

    The console can issue browser keys (ts_pub_…) that work only from the web origins you list, at 2 requests a second per visitor; elsewhere they get 403 origin_not_allowed. Area lookups (outdoor places and trails in a box) now have a daily ceiling per project of three times the plan's daily average credits (3,000 on Free), then 429 bbox_daily_ceiling.

  4. Added

    GPX clean and simplify

    POST /v1/gpx/clean removes repeated and broken points (and, if asked, times and sensor data) and returns the file as the file: everything else stays byte for byte. POST /v1/gpx/simplify keeps the shape within a tolerance in metres or a point budget, protects the climb and keeps stops. 1 credit each; files up to 5 MB.

  5. Added

    Elevation profile of a line

    POST /v1/elevation-profile returns the series a chart draws (distance, height, grade and position at each point) with ascent, descent, extremes and steepest stretches read from the same series. 2 credits.

  6. Changed

    Heavy requests: a limit on how many run at once

    Round trips, route analysis and route weather now also have a per-project concurrency limit: 1 on Free and without a key (per address), 2 on Starter, 4 on Pro, 8 on Business. A request over it gets 429 concurrency_limit with Retry-After: 2. The per-second rates are unchanged.

  7. Added

    A reference page for every operation, with Try it on a map

    Sixteen operations now have their own page with curl, JavaScript and Python examples, parameters, response fields, errors and the full contract, and a Try it panel that sends the request and draws the answer on a map. The OpenAPI file covers all of them, now including search, reverse search, trails, outdoor places, static maps, map matching and snow.

  8. Changed

    Search finds misspellings

    When nothing matches exactly, place search now finds near misses and German ue/oe/ae spellings of umlauts ("Matterhon", "Mittagguepfi"). Such results carry "match": "fuzzy". Exact matches are unchanged.

  9. Added

    Free plan with commercial use, keys and usage

    Free keys from the API console: 30,000 credits a month, commercial use with attribution. Calls without a key keep working with 500 credits a day per address. Keyed answers carry X-TrailSplits-Credits-Remaining, and GET /v1/usage returns your usage per operation.

  10. Added

    Weather along a route at arrival time

    POST /v1/route-weather gives the forecast at the hour you reach each part of a line, each place at its own height, with the model named per hour.

  11. Added

    Hazards on the line

    Route analysis and round trips list hazards[]: each ford, aided passage and via ferrata, placed in metres along the line.

  12. Added

    Hourly weather values

    h=1 on the weather forecast adds hourly temperature, precipitation, rain probability, wind, gusts, wind direction and weather code per point, each hour with its model.

  13. Added

    Route analysis and round trips

    POST /v1/route-analysis analyses a GPX or GeoJSON line you already have (matched path, surfaces, tagged grades, climb, hike time, unknowns). POST /v1/roundtrips returns loops from a start point from the same engine as the TrailSplits Planner, with an honest refusal when no good loop exists.

Versions and deprecation

  • New fields, operations and data can appear at any time. Clients should ignore what they do not use.
  • A breaking change (a removed field or operation, or a changed meaning) gets a new schema version and an entry here marked "Breaking", normally 30 days before it takes effect.
  • The old behaviour keeps working until the date in that entry. Key holders are told by email when a breaking change affects an operation they use.
  • Security fixes, and changes a data source forces on us, can come sooner; the entry then says why.

See also the conventions and the API terms.