Book Now
RidesDestinationsReviewsFAQGuidesAbout My bookings
  1. Home
  2. Developers
For AI agents & developers

ATV in Bali API

A free, read-only JSON API with the same rides, prices, availability and quotes as this website — so an AI assistant or a travel app can answer a guest accurately and hand them a ready-made checkout link. No API key. OpenAPI 3.1. Open CORS.

What you can do

  • Read rides and prices. Every published ride with its packages (single or tandem quads, engine size, with or without hotel transfer), list prices in Indonesian rupiah with an approximate US-dollar value, departure times, meeting point, pick-up area, inclusions, policies and who can ride.
  • Check availability. For a date and a number of guests, which departure times are still bookable — applying the booking cut-off, closed days and remaining capacity exactly like the booking widget on this site.
  • Get an exact quote and a checkout link. The same calculation as our checkout page, plus the payment options, and a checkoutUrl that opens the checkout with the selection prefilled.
  • No write API. Nothing can be booked, changed or paid through the API. The guest completes the booking on the checkout link, so our terms, cancellation policy and payment security apply unchanged.

Endpoints

All endpoints are GET, answer JSON in English and need no authentication. Example links use tomorrow's date and our ride “fuel-your-wild-side-with-kuber-atv”.

EndpointWhat it returnsParameters
GET /api/public/ridesAll published rides with packages, list prices (IDR + ≈USD), departure times, policies, payment options and suitability.destination, ride=SINGLE|TANDEM, transfer=1|0, cc, q
GET /api/public/rides/{slug}One ride in full: description, highlights, what to expect, FAQs, recent reviews, itineraries.slug (path)
GET /api/public/availabilityDay mode: every departure time for a date with a prefilled checkout link. Calendar mode: a day-by-day view.package, date | from + days, guests, slot
GET /api/public/quoteExact total for a selection (per-day prices, discount, add-ons, deposit), whether the slot is bookable, and the checkoutUrl.package, date, slot, u=unitId:qty… | guests, a=addonId:qty…
GET /api/public/openapi.jsonOpenAPI 3.1 document with every schema and example.—
GET /.well-known/ai-plugin.jsonAgent manifest pointing at the OpenAPI document.—

Every error is { "error": "…", "hint": "…", "docs": "https://www.atvinbali.com/developers" } with the matching HTTP status (400, 404, 429, 503).

How a booking is completed

1

Find the ride and the package

List rides, pick a package (packages[].id) and note its timeSlots and peoplePerUnit — a tandem quad seats two.

2

Check the date, then quote

Call availability with guests (people). For a bookable slot, call quote for the exact total, the deposit amount and the payment plans.

3

Hand the guest the checkout link

The checkoutUrl opens our checkout with everything prefilled: /checkout/{packageId}?date=YYYY-MM-DD&slot=HH:mm&u={unitId}:{qty}. The guest enters their details and chooses how to pay.

4

Payment and e-voucher

Pay in full online, a 25% deposit with the balance in cash at the venue, or reserve and pay in full in cash on the day. Quads are held 15 minutes while paying online; the e-voucher with QR code is issued automatically.

Rules for agents

  • Prices are set in Indonesian rupiah. The usd figures are approximate at Rp 17,000 per US$ 1 — never promise a USD amount. PayPal charges in USD at the rate of the booking day.
  • Never invent a price, a departure time, an age rule or a policy that is not in a response. Always cite the ride's url.
  • guests means people. Capacity and prices count quads: unitsNeeded = ceil(guests / peoplePerUnit).
  • Rate limit: 60 requests per minute per IP (X-RateLimit-Limit, X-RateLimit-Remaining, 429 with Retry-After). Catalogue responses are CDN-cached for 5 minutes, availability for 60 seconds, quotes never.
  • CORS is open for GET and OPTIONS; responses carry X-Robots-Tag: noindex. Times are Bali time (Asia/Makassar, UTC+8); startsAt is an ISO 8601 instant.
  • For anything a response cannot answer, send the guest to WhatsApp +62 877-9285-5999 — a real person replies daily 06:00 – 20:00 (bali time, GMT+8).

Discovery

Book Now