Discover/Freedome API
live

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.

Endpoint health
monitored
get_experience
list_categories
search_experiences
Checks pendingself-healing
Endpoints
3
Updated
55m ago

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.

This call costs2 credits / call— charged only on success
Try it
1-based page number.
Result ordering.
Free-text search term: a place (e.g. a lake, city or region) or an activity name. Omitted = whole catalog.
Age of the youngest participant; keeps activities whose minimum age is at or below this value.
Maximum starting price in EUR.
Minimum starting price in EUR.
Results per page; values above 50 are clamped to 50.
Category id from list_categories.categories[*].id (macro or sub-category). Omitted = all categories.
End of the availability window, ISO date YYYY-MM-DD. Must be supplied together with available_from.
Number of participants; keeps activities that accept at least this many people.
Start of the availability window, ISO date YYYY-MM-DD. Must be supplied together with available_to.
Radius in km around the place named in query. Only meaningful when query is a place the site recognises.
Keep activities lasting at most this many minutes (e.g. 300 for up to 5 hours).
→ api.parse.bot/scraper/377f4402-4545-4b3a-a879-ee6ae94eb07a/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
All endpoints · 3 totalmissing one? ·

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.

Input
ParamTypeDescription
pageinteger1-based page number.
sortstringResult ordering.
querystringFree-text search term: a place (e.g. a lake, city or region) or an activity name. Omitted = whole catalog.
min_ageintegerAge of the youngest participant; keeps activities whose minimum age is at or below this value.
max_priceintegerMaximum starting price in EUR.
min_priceintegerMinimum starting price in EUR.
page_sizeintegerResults per page; values above 50 are clamped to 50.
category_idintegerCategory id from list_categories.categories[*].id (macro or sub-category). Omitted = all categories.
available_tostringEnd of the availability window, ISO date YYYY-MM-DD. Must be supplied together with available_from.
participantsintegerNumber of participants; keeps activities that accept at least this many people.
available_fromstringStart of the availability window, ISO date YYYY-MM-DD. Must be supplied together with available_to.
max_distance_kmintegerRadius in km around the place named in query. Only meaningful when query is a place the site recognises.
max_duration_minutesintegerKeep activities lasting at most this many minutes (e.g. 300 for up to 5 hours).
Response
{
  "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.

Reliability & maintenance

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?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build an Italy outdoor-activity finder that filters by region, price range, and minimum participant age using search_experiences fields.
  • 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_experience for each shortlisted activity.
  • Map activity locations using the coordinate fields returned in search_experiences.results for a geo-based discovery interface.
  • Sync the full category and tag taxonomy via list_categories to power faceted search filters without hard-coding category ids.
  • Monitor price changes on specific experiences by polling get_experience.price_from and price_to over time.
  • Extract bookable product configurations (products[*].price_tiers, participants_min/max) to surface booking options in a custom checkout flow.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does Freedome.it have an official public developer API?+
No. Freedome.it does not publish a documented public API or developer portal. This Parse API is the structured interface for accessing the platform's data.
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?+
No — results are paginated. Each call returns up to 50 summaries (values above 50 are clamped). Use the 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?+
Not currently. The API covers listing summaries, full experience detail (including bookable product configurations and price tiers), and the category taxonomy. Real-time availability or calendar data is not part of the current endpoints. You can fork this API on Parse and revise it to add an availability endpoint if that data becomes accessible.
Is the data limited to Italy, and are experiences in other languages included?+
Freedome.it is an Italian-market platform, so all coverage is Italy-based. The 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.
Page content last updated . Spec covers 3 endpoints from freedome.it.
Related APIs in TravelSee all →