Discover/Crociere API
live

Crociere APIcrociere.com ↗

Search cruise itineraries on crociere.com, retrieve departure dates, cabin prices by type, and fare inclusions. 3 endpoints covering the full Italian cruise catalogue.

Endpoint health
monitored
get_cruise_departures
list_search_filters
search_cruises
Checks pendingself-healing
Endpoints
3
Updated
1h ago

What is the Crociere API?

The crociere.com API exposes 3 endpoints that cover the Italian cruise marketplace: search itineraries with filters for destination, ship, departure port, cruise line, and date range; retrieve the full filter vocabulary of destinations, ports, and companies; and pull every bookable departure of a specific cruise with per-cabin-type pricing and fare breakdowns. The search_cruises endpoint returns a paginated catalogue with EUR-per-person prices.

This call costs1 credit / call— charged only on success
Try it
1-based page number.
Result ordering.
Departure month, YYYY-MM. Alternative to date_from/date_to.
Latest departure date, ISO YYYY-MM-DD.
Comma-separated ship ids from list_search_filters.companies[*].ships[*].ship_id.
Earliest departure date, ISO YYYY-MM-DD.
Cruises per page, clamped to 50.
Comma-separated cruise line ids from list_search_filters.companies[*].company_id (e.g. 5 = MSC Crociere).
Upper bound of the site's duration filter.
Lower bound of the site's duration filter (see description for the days/nights offset).
Comma-separated port ids (same vocabulary as departure_port_id) that the itinerary must call at.
Destination filter: a region group id (form g-<n>, e.g. g-173 = Mediterraneo e le sue Isole) or a single destination id (e.g. 35 = Mediterraneo) from list_search_filters.destinations[*].destination_id / children[*].destination_id. Comma-separated ids allowed.
Comma-separated departure port ids from list_search_filters.departure_ports[*].port_id (e.g. 443,463 for Genova and Savona).
→ api.parse.bot/scraper/62cde6ff-7a6d-4a6a-ba9c-cdafe20fb11f/<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/62cde6ff-7a6d-4a6a-ba9c-cdafe20fb11f/search_cruises?sort=PRICE_ASC&page_size=5&destination_id=g-173' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 3 totalmissing one? ·

Searches the cruise catalogue and returns one page of cruise offers (one row per cruise itinerary with its cheapest upcoming departure, 'price_from' in EUR per person for the cheapest cabin). All filters are optional and combine with AND; omit everything to search the whole catalogue (about 13,000 cruises). Filter ids come from list_search_filters: destination_id accepts a region group id (e.g. g-173) or a single destination id (e.g. 35); departure_port_id, company_id, ship_id and stop_port_id accept comma-separated numeric ids. The site applies min_nights/max_nights to the trip length in days (nights + 1), so a 7-night cruise matches 6-8 but not 7-7. Paging is caller controlled via page (1-based, default 1) and page_size (default 25, clamped to 50); total_count is the site's total for the filters and has_more tells whether a further page exists. Sort BEST_SELLER (default) is the site's popularity order. One request per call.

Input
ParamTypeDescription
pageinteger1-based page number.
sortstringResult ordering.
monthstringDeparture month, YYYY-MM. Alternative to date_from/date_to.
date_tostringLatest departure date, ISO YYYY-MM-DD.
ship_idstringComma-separated ship ids from list_search_filters.companies[*].ships[*].ship_id.
date_fromstringEarliest departure date, ISO YYYY-MM-DD.
page_sizeintegerCruises per page, clamped to 50.
company_idstringComma-separated cruise line ids from list_search_filters.companies[*].company_id (e.g. 5 = MSC Crociere).
max_nightsintegerUpper bound of the site's duration filter.
min_nightsintegerLower bound of the site's duration filter (see description for the days/nights offset).
stop_port_idstringComma-separated port ids (same vocabulary as departure_port_id) that the itinerary must call at.
destination_idstringDestination filter: a region group id (form g-<n>, e.g. g-173 = Mediterraneo e le sue Isole) or a single destination id (e.g. 35 = Mediterraneo) from list_search_filters.destinations[*].destination_id / children[*].destination_id. Comma-separated ids allowed.
departure_port_idstringComma-separated departure port ids from list_search_filters.departure_ports[*].port_id (e.g. 443,463 for Genova and Savona).
Response
{
  "type": "object",
  "fields": {
    "page": "integer, requested page",
    "cruises": "array of cruise offers: cruise_id (integer, use in get_cruise_departures), title, company_name, ship_name, ship_rating (0-5 float, 0 when unrated), ship_review_count, departure_port, departure_date (ISO, cheapest departure), other_departure_dates (ISO list, may be empty), duration_nights, price_from (number, EUR per person), taxes, taxes_excluded, cabin_group_code (int/ext/balc/suite of the quoted cabin), itinerary (ordered port names), destinations (destination_id string + name + principal flag), advantages (site perk labels, Italian), promotion (short promo label or null), full_board, flight_included, departs_from_italy, other_departure_ports (same itinerary from other ports: cruise_id, port_id, port_name), url, ship_image_url, itinerary_map_url",
    "currency": "ISO currency code of all prices (EUR)",
    "has_more": "boolean, whether page+1 exists",
    "page_size": "integer, effective page size",
    "total_count": "integer, site-reported number of cruises matching the filters"
  },
  "sample": {
    "data": {
      "page": 1,
      "cruises": [
        {
          "url": "https://www.crociere.com/f-11606575-msc-msc-sinfonia-mediterraneo",
          "taxes": 0,
          "title": "Italia, Spagna, Francia",
          "currency": "€",
          "cruise_id": 11606575,
          "itinerary": [
            "Genova",
            "Livorno",
            "Civitavecchia - Roma",
            "Valencia",
            "Barcellona",
            "Marsiglia",
            "Genova"
          ],
          "promotion": null,
          "ship_name": "MSC Sinfonia",
          "advantages": [
            "Bambini gratis fino a 12 anni",
            "Mini Club bambini gratis"
          ],
          "full_board": true,
          "price_from": 319,
          "ship_is_new": false,
          "ship_rating": 4.263157844543457,
          "company_name": "MSC Crociere",
          "destinations": [
            {
              "name": "Mediterraneo",
              "principal": true,
              "destination_id": "35"
            }
          ],
          "departure_date": "2026-12-01",
          "departure_port": "Genova",
          "ship_image_url": "https://media.crociere.com/images/compagnies/gd/msc/msc-sinfonia/msc-sinfonia.webp",
          "taxes_excluded": false,
          "duration_nights": 7,
          "flight_included": false,
          "cabin_group_code": "int",
          "itinerary_map_url": "https://media.crociere.com/images/carteIgemoe/img/300_200/it/11606575.webp",
          "ship_review_count": 494,
          "departs_from_italy": true,
          "other_departure_dates": [
            "2026-11-10",
            "2026-11-24"
          ],
          "other_departure_ports": [
            {
              "port_id": 17,
              "cruise_id": 11606568,
              "port_name": "Marsiglia"
            }
          ]
        }
      ],
      "currency": "EUR",
      "has_more": false,
      "page_size": 5,
      "total_count": 3
    },
    "status": "success"
  }
}

About the Crociere API

Searching the Cruise Catalogue

The search_cruises endpoint accepts up to eight optional filter parameters that combine with AND logic. You can filter by company_id (comma-separated cruise line ids), ship_id, month (YYYY-MM format), or an explicit date_from/date_to range in ISO YYYY-MM-DD. Results are paginated — page_size is clamped to 50 — and each row in the cruises array includes cruise_id, title, company_name, ship_name, ship_rating (a 0–5 float), and price_from in EUR per person for the cheapest upcoming departure. The total_count field gives the site-reported count of matching itineraries, and has_more signals whether a next page exists.

Filter Vocabulary

Before filtering, call list_search_filters to resolve valid ids. It returns destinations as region groups with child destinations (each child carrying destination_id, name, is_country, and is_river), a departure_ports array with port_id and a top boolean flag, and a companies array where each cruise line lists its ships with ship_id, commissioning_year, capacity, and is_new. The endpoint also returns sort_options — the accepted sort codes for search_cruises.sort — and duration_ranges_nights bucket labels. total_cruises gives the live catalogue size.

Departure-Level Pricing

Pass any cruise_id from a search result to get_cruise_departures to retrieve every bookable sailing of that itinerary. Each entry in the departures array includes departure_date (ISO), operator_reference, sold_out, filling_rate (null when unpublished), and best_price. Cabin-type breakdowns cover interior, outside, balcony, and suite categories, each with its own best price and a list of fares that include their specific inclusions. departure_count reports the total number of departures returned.

Reliability & maintenance

The Crociere API is a managed, monitored endpoint for crociere.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when crociere.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 crociere.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 cruise price-tracking tool that monitors EUR-per-person prices across cabin types for specific itineraries using get_cruise_departures.
  • Aggregate MSC Crociere departures by filtering search_cruises with the MSC company_id (e.g. 5) and a date range.
  • Populate a destination-based cruise search UI using region and child destination ids from list_search_filters.
  • Identify which sailings are filling up by reading the filling_rate field from get_cruise_departures departures.
  • Filter cruises by river itineraries using is_river flags on child destinations returned by list_search_filters.
  • Display the newest ships in a cruise line's fleet by checking the is_new and commissioning_year fields from the companies array.
  • Compare cheapest available fares across multiple departure ports by iterating departure_ports from list_search_filters and running parallel searches.
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 crociere.com offer an official developer API?+
Crociere.com does not publish a public developer API or documentation for third-party access to its cruise data.
What does `get_cruise_departures` return beyond a single best price?+
For each departure it returns departure_date, operator_reference, sold_out status, filling_rate (null when the site does not publish it), and best_price. It also breaks down pricing by cabin type — interior, outside, balcony, and suite — with the best price per type and a list of named fares with their inclusions.
Can I filter searches to river cruises only?+
Not directly with a dedicated parameter. The list_search_filters endpoint marks child destinations with is_river: true, so you can identify river destination ids and pass them to search_cruises as a destination filter to narrow results to river itineraries.
Does the API return cruise reviews or user ratings?+
Not currently. The API exposes ship_rating (a 0–5 float at the ship level) from search_cruises, but individual user reviews, review counts, and text content are not covered. You can fork the API on Parse and revise it to add an endpoint targeting review data.
Is there a way to retrieve cabin availability or specific cabin inventory?+
Not currently. The API covers departure-level pricing, cabin-type best prices, and fare inclusions via get_cruise_departures, but granular cabin inventory counts are not exposed. You can fork the API on Parse and revise it to add the missing endpoint.
Page content last updated . Spec covers 3 endpoints from crociere.com.
Related APIs in TravelSee all →