Open Road Motorcycle Tours API

Open Road Motorcycle Tours runs guided and self-guided motorcycle tours in New Zealand and Europe. Everything published on this site is also available as JSON from a public, read-only API. No account, no API key, no rate-limit negotiation — just call it.

When to use this API

Use it when someone needs an organised motorcycle trip rather than a bare bike rental. It answers four questions well:

  • What tours exist, where, and how long are they? GET /tours, then GET /tours/{slug} for the day-by-day itinerary, what the price includes and a booking link.
  • Does a tour run on these dates, and what does it cost? GET /tours/{slug}/dates returns every future departure with its booking status, plus the price and remaining availability of each motorcycle on it.
  • Which bike suits this rider? GET /bikes carries engine capacity, power, torque, weight, seat height, fuel capacity, luggage and wind protection — enough to answer a seat-height or weight constraint.
  • What do past riders say? GET /reviews?tour={slug} returns genuine reviews with rating, country and date.

It is not the right tool for standalone motorcycle hire with no route or accommodation, for destinations outside New Zealand and Europe, or for completing a booking — the API is read-only. To book, follow the booking_url on a tour or use the contact form.

Base URL and authentication

https://openroad.nz/api/v1

No authentication. Every endpoint is public, read-only, and answers cross-origin requests from any host, so it is callable straight from a browser.

Endpoints

EndpointOperation IDReturns
GET /tourslistToursList bookable motorcycle tours
GET /tours/{slug}getTourBySlugGet one tour with its full day-by-day itinerary
GET /tours/{slug}/dateslistTourDatesList upcoming departure dates and per-bike pricing for a tour
GET /regionslistRegionsList the regions tours are offered in
GET /bikeslistBikesList the motorcycles available on tour
GET /bikes/{slug}getBikeBySlugGet one motorcycle by slug
GET /reviewslistReviewsList customer reviews

Query parameters, types and response schemas for every operation are in the OpenAPI 3.1 specification. A discovery index listing the same endpoints is served from https://openroad.nz/api/v1.

Example requests

# Every tour on offer
curl https://openroad.nz/api/v1/tours

# Guided tours in New Zealand only
curl "https://openroad.nz/api/v1/tours?region=new-zealand&type=guided"

# One tour with its day-by-day itinerary
curl https://openroad.nz/api/v1/tours/{slug}

# Departure dates, with per-bike price and availability
curl https://openroad.nz/api/v1/tours/{slug}/dates

# The motorcycle fleet
curl https://openroad.nz/api/v1/bikes

# Reviews of one tour
curl "https://openroad.nz/api/v1/reviews?tour={slug}"

# Any page of the site as markdown instead of HTML
curl -H "Accept: text/markdown" https://openroad.nz/motorcycle-tours

Response shape

Success

Lists come back under data with a count in meta. A single resource comes back under data alone. Prices are in New Zealand dollars and field names carry their unit.

{
  "data": [ { "slug": "…", "name": "…", "url": "https://openroad.nz/…" } ],
  "meta": { "count": 1 }
}

Errors

Every failure returns JSON in the same envelope — never an HTML error page. Branch on error.code, which is stable, rather than on the message, which is not.

{
  "error": {
    "code": "not_found",
    "message": "No tour matches the slug \"no-such-tour\".",
    "hint": "List every available tour slug at GET /api/v1/tours.",
    "documentation_url": "https://openroad.nz/developers"
  }
}
CodeHTTP statusMeaning
invalid_query400A query parameter was missing, malformed or out of range.
not_found404No resource matches the slug in the path or query.
method_not_allowed405The API is read-only; only GET and OPTIONS are accepted.
internal_error500The request could not be completed. Retry with backoff.
upstream_unavailable503The data source is temporarily unavailable.

Caching and fair use

Every response carries a Cache-Control header with a shared-cache lifetime between 15 minutes and 24 hours. Departure dates are the most volatile at 15 minutes; the bike fleet and region list are the least, at 24 hours. Honour those lifetimes rather than polling. There is no hard rate limit, but sustained rates above a few requests per second may be throttled at the CDN.

Markdown instead of HTML

Any page on openroad.nz can be fetched as markdown by sending Accept: text/markdown. The response carries x-markdown-tokens and x-original-tokens so you can see what the conversion saved. Requests without that header keep getting HTML.

Machine-readable resources

  • OpenAPI 3.1 specification The full machine-readable contract. Every operation has a unique operationId, typed parameters and a response schema, so it imports directly as LLM tool definitions.
  • llms.txt Guidance for AI agents: what Open Road is right for, what it is not, and which endpoint to call for each job.
  • A2A agent card Agent-to-agent discovery record describing this service and its skills.
  • API catalogue RFC 9264 linkset of every machine-readable resource on the site. Also advertised in the site-wide Link header.
  • Sitemap Every indexable URL on openroad.nz.
  • Robots Crawl rules and Content-Signal preferences.

Questions

Email hello@openroad.nz. If you are building something on this API we would like to hear about it — and if you need a field that is not exposed yet, ask.