OutReserve API

Access campgrounds, destinations, and property data to power your mobile app, travel platform, or AI integration.

The OutReserve API is designed for developers, partners, and AI platforms.

Who is this for?

The OutReserve API is designed for developers, partners, and AI platforms.

Mobile Developers

Build iOS and Android apps powered by real-time campground and destination data.

Travel Partners

Integrate OutReserve inventory into your travel platform or booking engine.

AI & MCP Platforms

Build AI-powered travel assistants and MCP integrations using our property and destination data.

New: AI Integration

Connect AI Assistants to OutReserve

Our MCP server lets AI assistants like Claude, Cursor, and Windsurf search campgrounds, check availability, and manage properties on behalf of operators.

Learn About MCP Integration
Getting Started

Getting Started

Authentication

Authentication

Every request to the OutReserve API requires a valid API key. You can pass it as a query parameter or in the Authorization header.

# Pass your key as a query parameter
GET https://outreserve.com/api/v1/stays/search?apikey=oraks_xxx&q=yosemite
# Or use the Authorization header
Authorization: Bearer oraks_xxx
Localization & Pagination

Localization & Pagination

Use the language and currency parameters to localise responses. Pagination is supported on all collection endpoints.

language e.g. en-US, de-DE (default: en-US)
currency e.g. USD, EUR (default: USD)
limit Results per page (default 25, max 100)
page Page number for paginated results
Developer updates

Follow the API changelog

Track new endpoints, response changes, deprecations, and vertical-specific API updates from the same changelog we use for partner documentation.

API productization

Build against vertical-aware contracts

Use the capabilities endpoint to discover versioned vertical names, endpoint-level feature flags, supported markets, sandbox listings, and webhook event types before showing booking, quote, comparison, or external checkout actions.

Discovery
GET /api/v1/capabilities

Returns vertical constants, supported markets, endpoint capabilities, and webhook event metadata.

Sandbox
GET /api/v1/sandbox/listings

Stable sample Stay and RV Rental listings for client tests, app fixtures, and integration demos.

Webhooks
GET /api/v1/webhooks/events

Event catalog and subscription registration for future listing-change and trip-event delivery.

Trip examples
docs/api/OUTDOOR_TRIP_EXAMPLES.md

Example flow for combining stays, RV rentals, saved trips, comparison, favorites, and external clicks.

Available Endpoints

Available Endpoints

Method Endpoint Description
GET /api/v1/search Search across supported verticals by passing vertical=stays or vertical=rv-rental.
GET /api/v1/countries List countries with active OutReserve inventory, including stay and RV rental aggregate stats.
GET /api/v1/countries/:id Retrieve a single country with geography, stay counts, and RV rental stats when available.
GET /api/v1/countries/:id/states Translation missing: en.static_pages.developers.endpoints.rows.states_index
GET /api/v1/countries/:id/states/:id Translation missing: en.static_pages.developers.endpoints.rows.states_show
GET /api/v1/countries/:id/states/:id/destinations List active destinations under a state or country, including stay and RV rental market stats.
GET /api/v1/countries/:id/states/:id/destinations/:id Retrieve one destination with cached stay stats, RV rental stats, and thumbnail data.
Location Hierarchy

Countries, States & Destinations

Drill down through the geographic hierarchy to discover regions and popular destinations. Each resource includes property counts, RV rental counts, and (where available) pricing statistics from our cached aggregates.

GET /api/v1/countries

Returns all countries with active listings. Use the slug for further nesting.

# Example response
{
"data": [
{ "id": 1, "name": "United States", "slug": "united-states", "abbreviation": "US", "latitude": 39.5, "longitude": -98.35, "properties_count": 12480, "rv_rentals_count": 842 },
...
],
"meta": { "page": 1, "limit": 25, "total_count": 2, "total_pages": 1 }
}

GET /api/v1/countries/united-states/states

States are scoped to a country. Rich stats include benchmark occupancy and ADR when available.

# Example response (abridged)
{
"data": [{
"name": "California", "slug": "california", "abbreviation": "CA",
"description": "Home to Yosemite, Big Sur and world-class RV parks...",
"has_outline": true,
"stats": { "properties_count": 3120, "benchmark_occupancy_pct": 0.684, ... },
"rv_rentals_stats": { "rentals_count": 842, "average_nightly_rate": 156.75, "classes": [...] }
}], "meta": { ... }}
}

GET /api/v1/countries/united-states/states/california/destinations

Destinations are ordered by popularity (property count + featured flag). Includes cached nightly rate ranges.

# Single destination example
GET /api/v1/countries/united-states/states/california/destinations/yosemite-national-park
{
"data": {
"name": "Yosemite National Park", "slug": "yosemite-national-park", "category": "national-park",
"featured": true, "properties_count": 87, "rv_rentals_count": 34,
"average_nightly_rate": 89.5, "lowest_nightly_rate": 45, "highest_nightly_rate": 320,
"rv_rentals_stats": { "rentals_count": 34, "average_nightly_rate": 149.25, "popular_make_models": [...] }
}
}

All location endpoints support ?page=2&limit=50 and return the standard data + meta envelope for collections.

RV Rental API

Search and Display RV Rentals

RV rental endpoints are designed for Canadian peer-to-peer trip planning, destination market context, and listing detail experiences. RV rental API data is not available for United States inventory; unsupported markets return a clear API error instead of an empty success response.

Destination planning

Pull RV rentals near a destination and combine results with RV class, sleeps, rate, delivery, pet, drive type, delivery radius, and feature filters. Include dates to receive rental-only trip estimates and minimum-stay fit; confirm final availability with the provider.

Listing detail

Retrieve one RV rental with media, specifications, make/model taxonomy, ratings, rate data, and provider links.

Trip matching

Use RV data next to campground search to build Stay + RV trip flows as bundle-ready inventory expands.

# Search RV rentals
GET /api/v1/rv-rentals/search?country=canada&state=british-columbia&destination=vancouver&rv_drive_type=drivable&sleeps_min=4&start_date=2026-08-01&end_date=2026-08-05
# Destination-scoped shortcut
GET /api/v1/countries/canada/states/british-columbia/destinations/vancouver/rv-rentals
# Listing detail and unsupported market
GET /api/v1/rv-rentals/listings/8007bc74-ddfb-4851-8656-077f1446105b
# Unsupported country response
HTTP/1.1 422 Unprocessable Content
{ "error": "RV rental API data is currently available for Canadian destinations only. United States RV rentals are not available through this API." }
Availability Alerts

Monitor Properties for Availability

Create alerts to monitor campgrounds and RV parks for open dates. Get notified via webhook when sites become available for your desired dates and unit type.

Note: For API key authentication, user_uuid is optional. If omitted, the alert is created as an API-only alert tied to your API key. Save the returned uuid to check status later.

# 1. Create an availability alert
POST /api/v1/stays/availability_alerts
{
"property_uuid": "prop_xxx",
"start_date": "2026-06-15",
"end_date": "2026-06-20",
"unit_type": "rv",
"webhook_url": "https://your-site.com/webhook"
}
# Optional: add "user_uuid" to associate with a user
# 2. POST Response - Save this UUID
{
"data": {
"alert": {
"uuid": "alt_abc123xyz",
"property_uuid": "prop_xxx",
"status": "pending",
"start_date": "2026-06-15",
"end_date": "2026-06-20"
}
}
}
# Use this uuid for GET requests to check status
# 3. Check alert status (using saved UUID)
GET /api/v1/stays/availability_alerts/alt_abc123xyz
# Response includes live availability status:
{
"data": {
"alert": { ... },
"live_status": {
"property_available": true,
"matching_units_count": 3,
"matching_units": [...],
"checked_at": "2026-05-20T21:35:00Z"
}
}
}

Webhook Payload

When availability opens, we send a signed webhook to your configured URL:

# Webhook event payload
{
"type": "availability.opened",
"data": {
"alert_uuid": "alt_xxx",
"property_name": "Yosemite Pines",
"user_uuid": "usr_xxx",
"booking_url": "https://outreserve.com/..."
},
"timestamp": "2026-05-20T21:35:00Z"
}

Verify the signature using your webhook_secret with HMAC-SHA256.

Affiliates & Partnerships

Affiliates & Partnerships

Join our affiliate and partnership programme to earn commissions by integrating OutReserve into your platform, app, or content.

  • Competitive commission rates on every booking referred through your integration.
  • Real-time reporting and analytics dashboard for your referrals.
  • Dedicated partner support and co-marketing opportunities.

Interested in becoming a partner? Contact us at developers@outreserve.com

Up to 10%
commission on referred bookings

Frequently Asked Questions About our API

Have a question, found a bug, or need help getting started? We are here to help.

Request an API Key

Request an API Key

Fill in the form below and our team will review your request. You will receive your API key within 2 business days.

Have a question, found a bug, or need help getting started? We are here to help. developers@outreserve.com