---
title: "Vroam Public API — Bali Scooter Rental Pricing &amp; Catalog"
description: "Read-only API for Bali scooter rental price discovery, model catalog, supported areas and indicative estimates. OpenAPI 3.1 spec, JSON responses, designed for AI agents."
lang: en
json-ld: |
  {
    "@context": "https://schema.org",
    "@type": "TechArticle",
    "headline": "Vroam Public API — Bali Scooter Rental Pricing & Catalog",
    "description": "Read-only public API exposing Vroam's Bali scooter & motorbike rental catalog, supported locations and indicative price estimates for AI agents and integrators.",
    "author": {
      "@type": "Organization",
      "name": "Vroam"
    },
    "inLanguage": "en",
    "url": "https://ridevroam.com/docs/api"
  }
---

[](/)

# Public API

Built for AI agents

## Vroam Public API

A small, read-only API exposing Vroam's Bali scooter rental catalog, supported areas and indicative price estimates. Designed for AI agents, LLMs and price-discovery integrations. Final booking availability requires supplier confirmation.

Read-only

Never creates bookings or charges.

Live DB-backed

Models & categories pulled fresh per request.

OpenAPI 3.1

Machine-readable spec at /openapi.json.

### Base URL

```
https://yjahgjlsvggmxtctftje.supabase.co/functions/v1/api
```

No auth required. CORS open to all origins. Cache headers set to ~5 minutes for catalog/estimate responses.

### Endpoints

-   GET `/health`
    
    Service health probe — returns { status: 'ok' }.
    
-   GET `/openapi.json`
    
    OpenAPI 3.1 specification (application/vnd.oai.openapi+json).
    
-   GET `/catalog/models`
    
    All active scooter & motorbike models with id, brand, name, category, cc.
    
-   GET `/catalog/categories`
    
    All bike categories (Budget, Comfort/Medium, Premium, Sport/Large) with pricing tiers.
    
-   GET `/catalog/locations`
    
    Supported Bali areas (Canggu, Ubud, Uluwatu, Seminyak, Sanur, Kuta, Amed, Sukawati, Nusa Dua, Denpasar).
    
-   GET `/prices/estimate?location=&start_date=&end_date=&category=&delivery=&surf_rack=`
    
    Indicative IDR price estimate. Required: location, start\_date (YYYY-MM-DD), end\_date (YYYY-MM-DD). Optional: category, delivery, surf\_rack.
    

### Examples

1\. Premium scooter price for one week in Canggu

```
curl "https://yjahgjlsvggmxtctftje.supabase.co/functions/v1/api/prices/estimate?location=Canggu&start_date=2026-06-01&end_date=2026-06-08&category=Premium"
```

Returns total + per-day estimate in IDR with notes on availability.

2\. Compare Premium scooter prices in Ubud (3-day vs weekly)

```
# 3-day rental
curl "https://yjahgjlsvggmxtctftje.supabase.co/functions/v1/api/prices/estimate?location=Ubud&start_date=2026-06-01&end_date=2026-06-04&category=Premium"

# 7-day rental (typically a cheaper per-day rate)
curl "https://yjahgjlsvggmxtctftje.supabase.co/functions/v1/api/prices/estimate?location=Ubud&start_date=2026-06-01&end_date=2026-06-08&category=Premium"
```

3\. Fetch the full model catalog

```
curl "https://yjahgjlsvggmxtctftje.supabase.co/functions/v1/api/catalog/models"
```

4\. Discover this API automatically (RFC 9727)

```
curl "https://yjahgjlsvggmxtctftje.supabase.co/functions/v1/api-catalog"
# Returns application/linkset+json with rel="service-desc", "service-doc", "status".
```

### A note on pricing

-   All prices in **IDR** (Indonesian Rupiah).
-   Rentals are billed in **24-hour blocks**; 1-day rentals incur a 50% surcharge on the daily base price.
-   Longer rentals (7+ days, 28+ days) automatically tier into cheaper per-day rates.
-   Delivery is free across all major Bali areas — no fee added in the estimate.
-   Damage protection is optional and reported separately, not included in the total.
-   **Estimates are indicative.** Final availability and confirmed price are returned only when a booking is made through ridevroam.com — supplier confirmation is required.

### Agent discovery

Every page on ridevroam.com advertises this API via in-document `<link rel="api-catalog">` and `<link rel="service-desc">` tags (RFC 8288 in-HTML equivalent of HTTP Link headers). The catalog itself is served as `application/linkset+json` per RFC 9727.

[← Back to Vroam](/)

[](https://wa.me/16466767256)

[

](https://getbutton.io/?utm_campaign=multy_widget&utm_medium=widget&utm_source=vroam.lovable.app)