bookretreats.com APIbookretreats.com ↗
Access BookRetreats.com data via API: search retreats by location, category, price, and duration. Get full listing details, reviews, offers, and host info.
curl -X GET 'https://api.parse.bot/scraper/e25017fd-fef6-467c-a2f4-26d70a700097/search_retreats?page=1&category=yoga-retreats&location=Mexico' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for retreats based on location, category, and other filters. Returns a paginated list of retreat cards with details including pricing, ratings, duration, and availability.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order for results. |
| category | string | Retreat category filter (e.g. 'yoga-retreats', 'wellness-retreats'). Values available from get_categories endpoint. |
| location | string | Location filter (e.g. 'Mexico', 'Thailand', 'Costa Rica'). Values available from get_default_locations endpoint. |
| price_max | integer | Maximum price filter in USD. |
| price_min | integer | Minimum price filter in USD. |
| duration_max | integer | Maximum duration in days. |
| duration_min | integer | Minimum duration in days. |
{
"type": "object",
"fields": {
"page": "current page number",
"items": "array of retreat card objects with id, title, location, sessions, duration, price, rating, and other metadata",
"per_page": "number of results per page",
"total_count": "total number of matching retreats",
"total_pages": "total number of pages available"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"id": "64732",
"tags": [],
"price": {
"currency": "USD",
"from_price": 15,
"original_price": 2475
},
"title": "15 Day 200 HR Island Immersive Yoga Teacher Training, Mexico",
"rating": {
"score": null,
"reviews_count": 0
},
"source": {
"rank": 1,
"page_url": "https://bookretreats.com/search?scopes%5Blocation%5D=Mexico&pageNumber=1&sort=Recommended"
},
"cta_urls": {
"details_url": "https://bookretreats.com/r/15-day-200-hr-island-immersive-yoga-teacher-training-mexico",
"book_now_url": null
},
"duration": {
"max": 15,
"min": 15
},
"location": {
"city": "Quintana Roo",
"country": "Mexico",
"state_or_region": null
},
"sessions": [
{
"label": "May | Aug | Sep | Oct | Nov, 2026"
}
],
"sold_out": false,
"host_badges": [
"Gold host"
],
"cancellation": {
"policy": "Flexible Cancellation",
"free_cancellation": false
},
"eco_friendly": true,
"interest_count": 9,
"raw_dates_text": "May | Aug | Sep | Oct | Nov, 2026",
"availability_note": ""
}
],
"per_page": 30,
"total_count": 278,
"total_pages": 10
},
"status": "success"
}
}About the bookretreats.com API
The BookRetreats API exposes 4 endpoints covering retreat search, detailed listing data, location references, and category taxonomy from BookRetreats.com. The search_retreats endpoint returns paginated results with pricing, ratings, duration, and session metadata, while get_retreat_details delivers per-listing data including host info, offer pricing, program descriptions, and individual guest reviews.
Search and Filter Retreats
The search_retreats endpoint accepts filters for location (e.g. Mexico, Thailand), category (e.g. yoga-retreats, wellness-retreats), price_min/price_max in USD, and duration_min/duration_max in days. Results are paginated and each item in the items array includes an id, title, location data, sessions, duration, price, rating, and a cta_urls.details_url field you pass directly into get_retreat_details.
Retreat Detail Data
get_retreat_details takes a full retreat URL and returns a structured object with fields covering description, program, food, included, summary, host, and an offers array. Each offer has a price, currency, name, and availability status. The reviews array contains individual entries with author, date, rating, and review body. The rating field holds aggregated data conforming to a schema including reviewCount and ratingValue.
Reference Data Endpoints
get_categories returns a typed category taxonomy: each entry in the types array has an id, alias, name, and nested categories and styles arrays. Use the alias values as inputs to the category param in search_retreats. get_default_locations returns a flat array of location name strings — the same values accepted by the location filter. Both endpoints require no inputs and are useful for building filter UIs or iterating over the full site taxonomy.
- Build a retreat comparison tool using price, duration, and rating fields from search_retreats results
- Aggregate guest reviews from get_retreat_details to analyze sentiment across retreat hosts
- Map retreat availability by location using get_default_locations and search_retreats filters
- Surface retreats by category type using get_categories alias values as search filters
- Track pricing trends across yoga or wellness retreats by category and location over time
- Populate a travel app's retreat section with offer prices, inclusions, and program details from get_retreat_details
- Identify top-rated retreat hosts by combining rating.ratingValue and rating.reviewCount fields across listings
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does BookRetreats have an official developer API?+
What does the get_retreat_details endpoint return beyond what search results show?+
Are photos or images for retreat listings included in API responses?+
Can I filter search results by specific amenities or accommodation type?+
How does pagination work in search_retreats?+
page field for the current page, per_page for results per page, total_count for total matching retreats, and total_pages for the number of available pages. Pass the page integer parameter to iterate through results.