Storefront Endpoints
All public-facing endpoints available with publishable keys.
Complete reference for all storefront endpoints. These work with publishable keys (renta_pk_...) and are safe for client-side use.
Endpoint Summary
| Method | Endpoint | Description |
|---|---|---|
GET | /v1/storefront/shop | Get shop profile and locations |
GET | /v1/storefront/inventory | Browse available items with pricing |
POST | /v1/storefront/book | Create a booking with payment |
POST | /api/storefront/auth/request | Request customer auth code |
POST | /api/storefront/auth/verify | Verify auth code |
GET | /api/storefront/addons-check | Get available add-ons |
GET | /api/storefront/waiver-template | Get waiver for signing |
POST | /api/storefront/payment-intent | Create payment intent (storefront flow) |
Endpoints under /v1/ are the public API. Endpoints under /api/storefront/ are internal storefront routes used by the hosted booking flow.
GET /v1/storefront/shop
Returns the public shop profile including name, branding, and pickup locations.
See Storefront API for full details.
GET /v1/storefront/inventory
Returns available fleet items with calculated pricing for a date range.
Required query parameters: pickup_date, return_date
See Storefront API for full details.
POST /v1/storefront/book
Creates a booking from the storefront flow. Requires a Stripe payment intent ID.
See Storefront API for full details.
POST /api/storefront/auth/request
Sends a one-time authentication code to the customer's email. Used for returning customer login during the booking flow.
Body:
{
"email": "john@example.com"
}Response:
{
"success": true,
"message": "Verification code sent to john@example.com"
}POST /api/storefront/auth/verify
Verifies the one-time code and returns a session token.
Body:
{
"email": "john@example.com",
"code": "123456"
}Response:
{
"success": true,
"customer_id": "cust_abc123",
"name": "John Doe",
"email": "john@example.com"
}GET /api/storefront/addons-check
Returns available add-ons for the booking flow. Filters add-ons based on the selected fleet items and their addon configuration (required, optional, hidden).
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
fleet_item_ids | string | Comma-separated fleet item IDs |
Response:
{
"addons": [
{
"id": "addon_helmet",
"name": "Helmet",
"price": 500,
"price_type": "per_item",
"mode": "required",
"description": "DOT-certified full-face helmet"
},
{
"id": "addon_insurance",
"name": "Damage Protection",
"price": 1500,
"price_type": "per_day",
"mode": "optional",
"description": "Covers up to $500 in damage"
}
]
}GET /api/storefront/waiver-template
Returns the waiver template that customers need to sign during the booking process.
Response:
{
"template": {
"id": "wt_liability",
"name": "Liability Waiver",
"content": "<h2>Release of Liability</h2><p>...</p>",
"type": "per_rider"
}
}POST /api/storefront/payment-intent
Creates a Stripe payment intent for the storefront booking flow.
Body:
{
"amount": 10800,
"booking_details": {
"pickup_date": "2026-07-01T09:00:00Z",
"return_date": "2026-07-03T17:00:00Z",
"line_items": [{"fleet_item_id": "fi_abc123"}]
}
}Response:
{
"client_secret": "pi_stripe_abc123_secret_xyz",
"payment_intent_id": "pi_stripe_abc123",
"amount": 10800
}