Discover/Musement API
live

Musement APIlastminute.musement.com ↗

Search tours, tickets, and attractions on lastminute.musement.com. Get activity details, availability dates, and per-day prices via 3 structured endpoints.

Endpoint health
monitored
get_activity
get_activity_dates
search_activities
Checks pendingself-healing
Endpoints
3
Updated
1h ago

What is the Musement API?

The lastminute.musement.com API exposes 3 endpoints covering search, detail, and availability for tours, tickets, and attraction experiences listed on the Italian lastminute.com experiences site. Use search_activities to find activities by destination or name with filters for category, language, and cancellation policy, then get_activity to retrieve full descriptions, highlights, included items, and venue coordinates, and get_activity_dates to pull a day-by-day price calendar.

This call costs1 credit / call— charged only on success
Try it
Result ordering.
Number of activities per page, 1 to 100 (values above 100 are clamped).
Free-text search: a destination, attraction, or experience name (e.g. a city name).
Zero-based index of the first activity to return; add limit to walk to the next page.
End of availability window, ISO date YYYY-MM-DD.
Ticket-option feature code filter; confirmed codes: free (free cancellation), istant (instant confirmation), skip (skip the line), fast (priority entrance), ADDVA_GUIDE (guided tour), ADDVA_SMALL (small group), ADDVA_MEAL (meals included), ADDVA_TOURAU (audio guide).
Category code filter, e.g. new-food-drink; codes come from activities[*].categories[*].code of a previous search.
Two-letter activity language code filter (e.g. it, en, es, fr, de).
Start of availability window, ISO date YYYY-MM-DD. Used together with date_to.
Maximum adult price in EUR (whole euros).
Minimum adult price in EUR (whole euros).
→ api.parse.bot/scraper/5a5741b0-4d89-4b8b-b5ac-7d899e4e7819/<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/5a5741b0-4d89-4b8b-b5ac-7d899e4e7819/search_activities?query=Roma' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace lastminute-musement-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Musement SDK — search activities, drill into details and dates."""
from parse_apis.lastminute_musement_com_api import Musement, SortOrder, InputNotFound

client = Musement()

# Search for top-rated activities in Roma, capped at 5 results.
for summary in client.activity_summaries.search(query="Roma", sort=SortOrder.RATING, limit=5):
    print(summary.title, summary.retail_price.value, summary.retail_price.currency)

# Drill down: take the first result and navigate to its full detail.
summary = client.activity_summaries.search(query="Roma", limit=1).first()
if summary is not None:
    activity = summary.details()
    print(activity.title, activity.about[:120])
    print("Highlights:", activity.highlights)
    print("Included:", activity.included)
    print("Reviews:", activity.reviews_number, "avg", activity.reviews_avg)

    # List the next 10 available booking dates for this activity.
    for date in activity.dates.list(limit=10):
        print(date.day, "sold_out" if date.sold_out else date.retail_price.value, date.retail_price.currency)

# Point lookup by an id discovered from the search above.
if summary is not None:
    try:
        detail = client.activities.get(activity_id=summary.activity_id)
        print(detail.title, detail.city, detail.country)
        for venue in detail.venues:
            print(" ", venue.name, venue.address)
    except InputNotFound:
        print("Activity no longer available")

print("exercised: activity_summaries.search / details / activities.get / dates.list")
All endpoints · 3 totalmissing one? ·

Searches activities and experiences by free text (a city, attraction, or experience name) and returns one page of activity summaries with the site's total match count. Results are paginated by offset and limit: omit offset to start at 0; limit defaults to 20 and is capped at 100; has_more tells whether a further page exists at offset+limit. Optional filters narrow results by category code (as emitted in activities[*].categories[*].code), ticket feature code, activity language code, availability date window, and adult price range; filters are applied by the site and an unknown filter value yields an empty result rather than an error. Prices are in EUR, text is Italian. A query with no matches returns total 0 and an empty activities list.

Input
ParamTypeDescription
sortstringResult ordering.
limitintegerNumber of activities per page, 1 to 100 (values above 100 are clamped).
queryrequiredstringFree-text search: a destination, attraction, or experience name (e.g. a city name).
offsetintegerZero-based index of the first activity to return; add limit to walk to the next page.
date_tostringEnd of availability window, ISO date YYYY-MM-DD.
featurestringTicket-option feature code filter; confirmed codes: free (free cancellation), istant (instant confirmation), skip (skip the line), fast (priority entrance), ADDVA_GUIDE (guided tour), ADDVA_SMALL (small group), ADDVA_MEAL (meals included), ADDVA_TOURAU (audio guide).
categorystringCategory code filter, e.g. new-food-drink; codes come from activities[*].categories[*].code of a previous search.
languagestringTwo-letter activity language code filter (e.g. it, en, es, fr, de).
date_fromstringStart of availability window, ISO date YYYY-MM-DD. Used together with date_to.
max_priceintegerMaximum adult price in EUR (whole euros).
min_priceintegerMinimum adult price in EUR (whole euros).
Response
{
  "type": "object",
  "fields": {
    "limit": "integer, page size used",
    "query": "echo of the search text",
    "total": "integer, total matching activities on the site for this query and filters",
    "offset": "integer, offset used for this page",
    "has_more": "boolean, true when offset+limit is below total",
    "activities": "array of activity summaries: activity_id (UUID, use with get_activity / get_activity_dates), title, description, city, country, duration (ISO 8601 duration, P0D when not specified), languages (array of language codes), features (array of Italian feature labels), categories (array of {code, name}), retail_price and original_retail_price ({value, currency}), free_cancellation, likely_to_sell_out, reviews_number, reviews_avg, cover_image_url, url (activity page on the site)"
  },
  "sample": {
    "data": {
      "limit": 3,
      "query": "Roma",
      "total": 515,
      "offset": 0,
      "has_more": true,
      "activities": [
        {
          "url": "https://lastminute.musement.com/it/roma/ingresso-con-salto-della-linea-ai-musei-vaticani-e-alla-cappella-sistina-20598/",
          "city": "Roma",
          "title": "Ingresso con salto della linea ai Musei Vaticani e alla Cappella Sistina",
          "country": "Italia",
          "duration": "P0D",
          "features": [
            "Conferma istantanea",
            "Salta la coda",
            "Ingresso prioritario",
            "Cancellazione gratuita",
            "Voucher elettronico"
          ],
          "languages": [],
          "categories": [
            {
              "code": "new-attractions-guided-tours",
              "name": "Attrazioni e tour guidati"
            },
            {
              "code": "new-monuments",
              "name": "Monumenti"
            }
          ],
          "activity_id": "dc99d6d9-8cf3-4983-968e-e503907ca029",
          "description": "Approfittate dell'accesso \"skip-the-line\" per ammirare i Musei Vaticani e visitare la Cappella Sistina, una delle più grandi attrazioni di Roma.",
          "reviews_avg": 4.43,
          "retail_price": {
            "value": 57,
            "currency": "EUR"
          },
          "reviews_number": 1587,
          "cover_image_url": "https://images.musement.com/cover/0001/87/thumb_86171_cover_header.jpeg?w=540",
          "free_cancellation": false,
          "likely_to_sell_out": true,
          "original_retail_price": {
            "value": 57,
            "currency": "EUR"
          }
        }
      ]
    },
    "status": "success"
  }
}

About the Musement API

Search and Filter Activities

The search_activities endpoint accepts a free-text query — a city name, attraction, or experience keyword — and returns a paginated list of activity summaries alongside a total count of all site matches. Pagination is offset-based: pass offset and limit (up to 100 per page) to walk through result sets. Optional filters include category (codes like new-food-drink sourced from activities[*].categories[*].code in prior results), language (two-letter codes such as it, en, es), feature (e.g. free for free cancellation, istant for instant confirmation), and a date_to window. Each summary includes an activity_id UUID used by the other two endpoints.

Activity Detail

get_activity takes a single activity_id and returns the full record: title, about (long plain-text description), included and not_included arrays, highlights, meeting_point, latitude/longitude, a venues array of name-address pairs, supplier name, operational data, and an HTML info block for practical notes. The sold_out and status fields indicate current booking availability without making a separate availability call.

Availability Calendar and Prices

get_activity_dates returns an array of dates entries, each containing a day (ISO date), a sold_out flag, a retail_price object, and an original_retail_price object (both with value and currency). The window defaults to one year ahead but can be narrowed with the date_to parameter. Note that for some activities the site does not publish per-day pricing; those entries return a retail_price.value of 0.

Reliability & maintenance

The Musement API is a managed, monitored endpoint for lastminute.musement.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when lastminute.musement.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 lastminute.musement.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?+
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 a destination activity finder that queries search_activities with a city name and surfaces results filtered by language and cancellation policy.
  • Aggregate lowest available prices for a set of activities across a travel date range using get_activity_dates and comparing retail_price vs original_retail_price.
  • Populate a tour detail page with get_activity fields: included, not_included, highlights, and venues with map coordinates.
  • Monitor sold-out status changes for specific attraction tickets by polling get_activity_dates and tracking the sold_out flag per day.
  • Filter experiences by feature code free to list only free-cancellation activities available in a given window.
  • Compare supplier offerings for a destination by collecting the supplier field across multiple get_activity responses.
  • Detect price drops for an activity by storing historical retail_price values from repeated get_activity_dates calls.
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 lastminute.musement.com have an official developer API?+
Musement (the platform underlying lastminute.musement.com) has historically offered a trade/affiliate API for business partners, but there is no publicly documented, self-serve developer API available to individual developers. This Parse API provides structured access to the same activity, detail, and pricing data.
What does `get_activity_dates` return, and how should I interpret a price of 0?+
The endpoint returns one entry per bookable day within the requested window, each with a day (ISO date), a sold_out boolean, and two price objects (retail_price and original_retail_price, each carrying value and currency). A retail_price.value of 0 means the site does not publish a specific per-day price for that activity — it does not indicate the activity is free.
How does pagination work in `search_activities`?+
Results use offset-based pagination. The response includes total (total matches on the site), limit (page size used, max 100), offset (starting index for this page), and has_more (true when offset + limit < total). To fetch the next page, add limit to offset and repeat the request with the same query and filters.
Does the API cover reviews, ratings, or user-generated content for activities?+
Not currently. The API covers activity summaries, full detail fields (description, included items, venues, coordinates), and per-day availability and pricing. You can fork it on Parse and revise to add an endpoint targeting review and rating data.
Can I retrieve activities outside Italy or in languages other than Italian?+
The source site is the Italian lastminute.musement.com domain, so inventory is weighted toward Italy-based and Italian-language experiences. The language filter in search_activities lets you request activities offered in a specific language (e.g. en, es, de), but the underlying catalog is scoped to this regional site. Experiences from other Musement regional domains are not covered. You can fork the API on Parse and revise it to point at a different regional domain.
Page content last updated . Spec covers 3 endpoints from lastminute.musement.com.
Related APIs in TravelSee all →