BookYogaRetreats APIbookyogaretreats.com ↗
Access yoga retreat listings, search results, organizer profiles, and reviews from BookYogaRetreats.com via 4 structured API endpoints.
What is the BookYogaRetreats API?
The BookYogaRetreats.com API exposes 4 endpoints for browsing and searching yoga retreats listed across 2,700+ organizers worldwide. You can pull paginated retreat summaries from the homepage via get_retreat_listings, run keyword or destination searches with search_retreats, fetch full retreat details including instructors and amenity flags via get_retreat_detail, and retrieve organizer profiles — including bios, instructor credentials, price ranges, and guest reviews — through get_organizer_detail.
curl -X GET 'https://api.parse.bot/scraper/33981cd6-6f52-4c48-857d-62bc5aed2af6/get_retreat_listings?page=1' \ -H 'X-API-Key: $PARSE_API_KEY'
Fetch paginated retreat listings from the BookYogaRetreats homepage. Returns an array of retreat summaries including the organizer (retreat center) name, pricing, ratings, and availability. Results are ordered by the site's recommended sorting. Each page contains approximately 12 results; one page is fetched per call. The page input selects the page and defaults to the first page when omitted.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number to fetch for pagination. |
{
"type": "object",
"fields": {
"page": "integer indicating the current page number",
"listings": "array of retreat summary objects",
"listings[].rating": "number rating score or null",
"listings[].country": "string country name as shown on the card (may carry a discount label when the card shows one instead)",
"listings[].website": "string full URL of the retreat page (input for get_retreat_detail)",
"listings[].price_rs": "string price amount in USD",
"listings[].duration_days": "integer number of days or null",
"listings[].no_of_reviews": "integer review count or null",
"listings[].retreat_title": "string name of the retreat",
"listings[].organizer_name": "string name of the retreat organizer / retreat center; empty string when the page does not publish it for that row"
},
"sample": {
"data": {
"page": 1,
"listings": [
{
"rating": 4.6,
"country": "South Africa",
"website": "https://www.bookyogaretreats.com/vala-house/7-day-burnout-recovery-retreat-with-yoga-mindfulness-forest-bathing-and-more-in-knysna",
"price_rs": "1422",
"source_page": 1,
"availability": "",
"veg_friendly": false,
"duration_days": 7,
"no_of_reviews": 7,
"retreat_title": "7 Day Burnout Recovery Retreat with Yoga, Mindfulness, and More in Knysna, South Africa",
"organizer_name": "Vala House",
"max_no_of_booking": 1,
"people_interested": null,
"all_meals_included": true,
"instructed_in_english": true,
"airport_transfer_included": false,
"airport_transfer_available": false
}
]
},
"status": "success"
}
}About the BookYogaRetreats API
Retreat Listings and Search
get_retreat_listings returns paginated homepage results ordered by the site's default recommendation ranking. Each result includes retreat_title, organizer_name, price_rs (USD), duration_days, rating, no_of_reviews, country, and a website URL you can pass directly to get_retreat_detail. Pages contain approximately 12 listings each; use the page integer parameter to paginate.
search_retreats accepts a query string — either a destination like 'bali' or 'india' or a category like 'meditation' or 'vinyasa' — and returns matching listings in the same shape, echoing the query back in the response. This makes it straightforward to build destination-specific or style-specific feeds.
Retreat and Organizer Detail
get_retreat_detail returns the full record for a single retreat URL: instructors (array of name strings), veg_friendly (boolean), availability status, duration_days, price_rs, rating, no_of_reviews, and organizer_url — a link to the organizer's profile page on the site. That organizer_url is the required input for get_organizer_detail.
get_organizer_detail returns the organizer's description, location, country_code (ISO 3166-1 alpha-2), region, price_range text, overall rating, no_of_reviews, an instructors array with names, certificates, and bios, a retreats array of currently listed retreats, and a reviews array of guest reviews published on the page. This gives a full picture of any retreat center without requiring multiple lookups beyond the initial detail fetch.
The BookYogaRetreats API is a managed, monitored endpoint for bookyogaretreats.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bookyogaretreats.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official bookyogaretreats.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a destination search tool that maps retreat options by country using
search_retreatswith location queries and thecountryfield. - Aggregate pricing data across retreat styles by comparing
price_rsandduration_daysfrom paginatedget_retreat_listingsresults. - Create an instructor directory by extracting instructor names and certificates from
get_organizer_detailresponses. - Monitor new retreat listings for a specific category by polling
search_retreatswith keywords like 'meditation' or 'detox' on a schedule. - Analyze guest sentiment by collecting the
reviewsarray fromget_organizer_detailacross multiple organizer profiles. - Filter vegetarian-friendly retreats by checking the
veg_friendlyboolean returned byget_retreat_detail. - Build an organizer comparison tool using
rating,no_of_reviews, andprice_rangefromget_organizer_detail.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does BookYogaRetreats.com have an official developer API?+
What does `get_organizer_detail` return beyond basic contact info?+
description, location, country_code, region, price_range, overall rating, no_of_reviews, an instructors array with individual certificates and bios, the current retreats listed on that organizer's page, and a reviews array of guest reviews. You need the organizer's page URL as input, which you can obtain from the organizer_url field in any get_retreat_detail response.Can I filter listings by date range or availability window?+
get_retreat_detail does return an availability status string, but none of the four endpoints accept date parameters to narrow results. You can fork this API on Parse and revise it to add date-based filtering if the source exposes that parameter.Does the `country` field always contain the country name on listing cards?+
country field in get_retreat_listings and search_retreats reflects exactly what appears on the card at the time of the request. When a card displays a discount label in that position instead of the country name, the field will carry that label text rather than a country string. The full country is reliably available in get_retreat_detail results.Are retreat prices returned in a consistent currency?+
get_retreat_listings and search_retreats, price_rs is expressed in USD. In get_retreat_detail and get_organizer_detail, prices may appear in USD or the local currency as published on the page. No currency conversion or normalization is applied. The API currently does not expose a currency code field alongside each price. You can fork it on Parse and revise it to extract and normalize currency codes if needed.