Freedome APIfreedome.it ↗
Search, filter, and retrieve full details on bookable outdoor experiences from Freedome.it via 3 REST endpoints covering listings, details, and categories.
What is the Freedome API?
The Freedome.it API exposes 3 endpoints to query the Italian outdoor experiences marketplace. Use search_experiences to retrieve paginated listing summaries with pricing, coordinates, duration, and review scores, get_experience to fetch full detail on a single activity including its gallery, difficulty, and bookable products, and list_categories to pull the complete category and tag vocabulary used for filtering.
curl -X GET 'https://api.parse.bot/scraper/377f4402-4545-4b3a-a879-ee6ae94eb07a/search_experiences?query=Lago+di+Garda' \ -H 'X-API-Key: $PARSE_API_KEY'
Searches bookable experiences and attractions on Freedome. One call returns one page of listing summaries (title, location, coordinates, starting price in EUR, duration in minutes, participant range, minimum age, review score, category and tag ids) plus the site's total match count. Pagination is caller-controlled: page (default 1) and page_size (default 18, clamped to 50); has_more is true while page*page_size is below total_results. The free-text query matches activity names and places; when it is a recognised place the site also returns distance_km per item and max_distance_km limits results to that radius. A query the site does not recognise falls back to the whole catalog rather than an empty list. Filters: category_id (an id from list_categories), min_price/max_price (EUR), participants (minimum group size the activity accepts), max_duration_minutes, min_age (keep activities whose minimum age is at or below this value), and an availability window available_from/available_to (ISO dates, must be given together). sort defaults to the site's relevance ordering.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based page number. |
| sort | string | Result ordering. |
| query | string | Free-text search term: a place (e.g. a lake, city or region) or an activity name. Omitted = whole catalog. |
| min_age | integer | Age of the youngest participant; keeps activities whose minimum age is at or below this value. |
| max_price | integer | Maximum starting price in EUR. |
| min_price | integer | Minimum starting price in EUR. |
| page_size | integer | Results per page; values above 50 are clamped to 50. |
| category_id | integer | Category id from list_categories.categories[*].id (macro or sub-category). Omitted = all categories. |
| available_to | string | End of the availability window, ISO date YYYY-MM-DD. Must be supplied together with available_from. |
| participants | integer | Number of participants; keeps activities that accept at least this many people. |
| available_from | string | Start of the availability window, ISO date YYYY-MM-DD. Must be supplied together with available_to. |
| max_distance_km | integer | Radius in km around the place named in query. Only meaningful when query is a place the site recognises. |
| max_duration_minutes | integer | Keep activities lasting at most this many minutes (e.g. 300 for up to 5 hours). |
{
"type": "object",
"fields": {
"page": "page number returned",
"query": "echo of the search term, null when omitted",
"results": "array of experience summaries: id (use as experience_id in get_experience), title, slug, url, cover_image, city/province/region/country, latitude/longitude, distance_km (null when the query is not a place), price_from (EUR) with price_label (unit the price refers to, e.g. per person), currency, duration_minutes, participants_min/participants_max, min_age, review_count, review_score_average (null when unreviewed), category_ids, tag_ids, available, immediate_confirmation, published_at",
"has_more": "true when a further page exists",
"page_size": "effective page size after clamping",
"total_results": "site-reported number of matching experiences"
},
"sample": {
"data": {
"page": 1,
"query": "Lago di Garda",
"results": [
{
"id": 4777,
"url": "https://freedome.it/attivita/volo-ultraleggero-lago-garda/",
"city": "Comezzano-Cizzago",
"slug": "volo-ultraleggero-lago-garda",
"title": "Pilota d'aereo per un giorno sul Lago di Garda",
"region": "Lombardia",
"country": "Italia",
"min_age": 16,
"tag_ids": [
2,
7,
11,
13,
15,
16
],
"currency": "EUR",
"latitude": 45.4845672,
"province": "Brescia",
"available": true,
"longitude": 9.9546921,
"price_from": 175,
"cover_image": "https://cdn.freedome.it/listing/128482/ARUCXsXIcrnckeen564cJamnQMhRSix3qGFtJyyI.jpg",
"distance_km": 44.56103318165424,
"price_label": "per persona",
"category_ids": [
3,
39
],
"published_at": "2024-01-31 10:45:42",
"review_count": 7,
"duration_minutes": 75,
"participants_max": 5,
"participants_min": 1,
"review_score_average": 5,
"immediate_confirmation": false
}
],
"has_more": true,
"page_size": 5,
"total_results": 533
},
"status": "success"
}
}About the Freedome API
What the API covers
Freedome.it is an Italian platform listing bookable outdoor activities and attractions. The API surfaces three endpoints that cover search, detail, and taxonomy. search_experiences accepts free-text query (a place name, region, or activity type), numeric filters (min_price, max_price), an age filter (min_age), a category_id, and standard page/page_size pagination (capped at 50 results per page). Each summary in results includes the experience id, title, slug, url, cover_image, geographic fields (city, province, region, co), starting price in EUR, duration in minutes, participant range, minimum age, review score, and associated category and tag ids.
Experience detail
get_experience accepts a numeric experience_id (taken from search_experiences.results[*].id) and returns a richer payload: description_html, a highlights array, a gallery of image URLs, difficulty code, price_from/price_to in EUR, categories, and a products array. Each product carries its own id, title, duration_minutes, booking_type, participants_min/participants_max, and price_tiers with label and age description — enough to reconstruct the booking options shown on the site.
Category and tag taxonomy
list_categories takes no inputs and returns two arrays. categories lists every macro-category (is_macro_category: true, parent_id: null) and sub-category (with parent_id and parent_title) alongside their id, title, slug, and description. tags is a flat array of {id, title} pairs that map to the tag_ids returned in search summaries. Use these ids directly in search_experiences.category_id to scope a query to a single activity type or discipline.
The Freedome API is a managed, monitored endpoint for freedome.it — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when freedome.it 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 freedome.it 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 an Italy outdoor-activity finder that filters by region, price range, and minimum participant age using
search_experiencesfields. - Aggregate starting prices (
price_from) and review scores across categories to compare activity types in a given Italian province. - Populate a trip-planning UI with gallery images and HTML descriptions pulled from
get_experiencefor each shortlisted activity. - Map activity locations using the coordinate fields returned in
search_experiences.resultsfor a geo-based discovery interface. - Sync the full category and tag taxonomy via
list_categoriesto power faceted search filters without hard-coding category ids. - Monitor price changes on specific experiences by polling
get_experience.price_fromandprice_toover time. - Extract bookable product configurations (
products[*].price_tiers,participants_min/max) to surface booking options in a custom checkout flow.
| 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 Freedome.it have an official public developer API?+
What does `list_categories` return, and how do I use it with search?+
list_categories returns a categories array covering both macro-categories (is_macro_category: true) and their sub-categories, plus a tags array. Pass any id from that array as category_id in search_experiences to scope results to that activity type. Sub-categories carry a parent_id linking them to their macro-category.Does `search_experiences` return all results in one call?+
page parameter to advance through results and check has_more to determine whether further pages exist. total_results gives the site-reported total match count.Are availability calendars or real-time booking slots exposed?+
Is the data limited to Italy, and are experiences in other languages included?+
get_experience response includes an activity_languages field indicating which languages a given experience is offered in, but the catalog itself is Italian-focused. Listings outside Italy are not currently indexed.