Changelog#
Changes to the TripGo API that API users and white-label clients may need to know about, newest first. Entries are grouped by the date they reached production. Numbers in brackets are SkedGo's internal ticket references.
2026-10-06#
- Changed: Trips only include
subscribeURLandunsubscribeURLwhen the request has auserTokenheader, as subscribing requires one. (#26298) - Fixed:
geocode.jsonnow honours a fullAccept-Languageheader such asde-DE,de;q=0.9. Before, only a bare language code likedeworked, and anything else fell back to English. (#26284) - Added: SkedGo can now configure default
ph[<kind>]values per API key, which apply to allrouting.jsonGET requests of that key. A value sent in the request still wins for that kind. (#26090)
2026-10-05#
- Fixed: A request whose
Accept-Languageheader wasn't a plain language code (for examplezh-CN,zh-Hans;q=0.9) could make later requests to the same server fail with HTTP 500. Localised responses also no longer pick up the language of another request. (#26285)
2026-10-02#
- Added:
routing.jsontakes newph[<kind>]parameters, for extra parking hassle when travellers park their own car, by where they park:ph[*](anywhere),ph[pnr](Park & Ride),ph[offstreet],ph[onstreet]andph[garage]. For example,ph[*]=10&ph[pnr]=0demotes driving except to a Park & Ride. Penalised trips are ranked lower, not removed. (#26090) - Changed: Requests for only the traveller's own vehicle (
me_car,me_mot, or their own bicycle or micromobility vehicle) now always return a trip, however short, instead of it losing out to walking. WithallModes=truethese trips are kept too, so the results match making one request per mode. (#26090)
2026-09-18#
- Added:
clients.jsonincludes dark-mode app colours,tintColorDark,barBackgroundDarkandbarForegroundDark, inappColorswhere configured. (#26198) - Changed: Taxi bookings made through provider integrations identify the rider to the provider by their short user ID, where they have one.
- Changed: When an admin books on behalf of a rider and invoices an organisation, the rider is now added to that organisation. (#21198)
2026-09-16#
- Removed: The
psb("payment sandbox") parameter of the booking and payment endpoints is ignored, and payment URLs no longer include it. Whether Stripe runs in test or live mode now depends on the server environment, not on the request.
2026-09-14#
- Fixed: In
departures.json, real-time data for today's run of a service no longer marks the same service on other days asIS_REAL_TIMEorCANCELLED. (#26087) - Changed: In
departures.json, services of real-time capable operators that have no real-time data yet now haverealTimeStatusset toCAPABLE, where it used to be missing. Clients can keep checkinglatest.jsonfor these services. (#26166) - Removed: The legacy Stripe webhook endpoint
payment/stripe/webhookis gone; usepayment/stripe/webhook/v2/{stripeAccount}. Webhooks are now rejected unless their Stripe signature can be verified. (#25749)
2026-09-10#
- Fixed: Bookings with external on-demand providers can be made up to 5 minutes after the trip's start time, instead of being rejected as in the past. (#26030)
2026-09-08#
- Improved:
agenda/run: when a user's day is edited several times in a row, only the latest version is computed and superseded runs stop early, so the final agenda is ready sooner. (#25927)
2026-08-27#
- Fixed:
info/routeInfo.jsonreturns one complete shape for routes that run several loops out of the same stop, or whose loop is split over several patterns, with every stop on the shape and in travel order. Before, only part of such a route was drawn and some stops were far from it. A duplicated last stop was also removed. (#26066, #26088) - Fixed: Rules on whether bicycles may be taken on public transport now apply as each region defines them. This affects
bicycleAccessibleand trips that take a bicycle on public transport, for each region from its next data update. (#26103) - Fixed: Long-distance driving trips no longer make detours around roundabouts, for each region from its next data update. (#26016)
2026-08-24#
- Fixed: On-demand services with zone-based pricing now price pick-ups and drop-offs on a zone's boundary. (#26003)
- Fixed: Changing a booking from return to one-way before confirming it no longer leaves the outbound and return bookings linked.
2026-08-21#
- Changed:
service.jsonreturns HTTP 400 instead of 200 whenregionorserviceTripIDis missing. (#25970)
2026-08-19#
- Changed: Updated the exchange rates used to compare costs in different currencies, which hadn't been refreshed since 2015. This changes trip ranking where a currency has moved a lot against the US dollar (for example in Argentina, Turkey and Egypt), and
usdCostin bookings. Prices in local currency are unchanged.
2026-08-13#
- Added: Booking providers can offer several products with different booking rules, such as which days they can be booked. Fare options that can't be booked for the chosen time are left out, and a booking is only refused if none of them can be booked. (#25831)
- Added:
clients.jsonincludesuiConfig.messages(smsDisclaimerandcategoryDescription, each with translations) andprofile.riderCategories, where configured for the app. (#25907)
2026-08-05#
- Fixed: Roads that double as emergency landing strips are no longer left out of the road network. One of these cut the Eyre Highway in Australia, so driving trips along it took huge detours. Applies to each region from its next data update. (#26014)
2026-07-09#
- Fixed: Regions whose public transport feeds use accented characters in station IDs, such as
FR_PAC_RegionSudandFR_PDL_Angers, get timetable updates again. (#25875)
2026-07-06#
- Improved:
locations.jsonno longer takes up to half a minute on the first request for a region after a server restart, as shared-vehicle providers are now loaded when the server starts. (#25903)
2026-07-02#
- Changed:
regions.jsonlists the main TripGo API URL in every region'surls, instead of the URLs of individual servers. Theurlsfield is deprecated: send all requests to the main TripGo API host. (#25689) - Fixed: A custom walking (
ws) or cycling (cs) speed of zero, or one that isn't a finite number, now falls back to the default (medium) speed instead of breaking the routing results. (#25888)