Discover/Gov API
live

Gov APIcultura.gov.it ↗

Get opening hours, ticket-office hours, and admission prices for Italian cultural sites listed on cultura.gov.it via one structured API endpoint.

Endpoint health
verified 2h ago
get_place_hours_and_prices
1/1 passing latest checkself-healing
Endpoints
1
Updated
3h ago

What is the Gov API?

The cultura.gov.it API exposes 10 structured response fields from Italian Ministry of Culture place pages through a single endpoint, get_place_hours_and_prices. Given a place slug, it returns site opening hours and ticket-office hours as separate 7-day arrays, adult and reduced admission prices in euro, booking requirements, and supplementary ticket notes — all sourced from the official cultura.gov.it listing for that site.

This call costs1 credit / call— charged only on success
Try it
Place page slug as it appears in the cultura.gov.it place URL path (lowercase words joined by hyphens).
→ api.parse.bot/scraper/7d950d84-2999-4fca-b551-8534b77e3014/<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/7d950d84-2999-4fca-b551-8534b77e3014/get_place_hours_and_prices?slug=grotte-di-catullo-e-museo-archeologico-di-sirmione' \
  -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 cultura-gov-it-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: fetch opening hours and prices for an Italian cultural site."""
from parse_apis.cultura_gov_it_api import CulturaGovIt, PlaceNotFound

client = CulturaGovIt()

# Look up a place by its cultura.gov.it page slug.
try:
    place = client.places.get(slug="grotte-di-catullo-e-museo-archeologico-di-sirmione")
except PlaceNotFound:
    print("Place not found for that slug.")
    raise

print(place.name, f"— {place.booking}")
print(f"Adult: {place.adult_price_eur} {place.currency}, Reduced: {place.reduced_price_eur} {place.currency}")

# Walk the weekly site opening hours.
for h in place.site_hours or []:
    status = "closed" if h.closed else f"{h.open}–{h.close}"
    print(f"  {h.day_label}: {status}" + (f" ({h.note})" if h.note else ""))

# Saturday ticket-office hours as a quick check.
if place.saturday_ticket_office_hours is not None:
    sat = place.saturday_ticket_office_hours
    print(f"Saturday ticket office: {sat.open}–{sat.close}")

if place.ticket_info:
    print(f"Ticket notes: {place.ticket_info[:120]}")

print("exercised: places.get")
All endpoints · 1 totalmissing one? ·

Returns, for one cultural place on cultura.gov.it identified by its page slug, the full-price (adult) and reduced admission prices in euro, the weekly site opening hours (section 'Apertura') and, separately, the weekly ticket-office hours (section 'Biglietteria'), each as a 7-row array keyed by English day name with open/close times in HH:MM (24h, Italy local time), a closed flag and the site's per-day note (typically the last-entry time, Italian text). Saturday rows are also surfaced directly as saturday_site_hours and saturday_ticket_office_hours. ticket_info carries the free-text ticket notes (combined tickets, passes) when present, otherwise null. seasonal_validity lists any seasonal validity phrases the page states for these hours (e.g. 'dal 1 aprile al 31 ottobre' as one shape); it is an empty array and seasonal_validity_listed is false when the page lists none — the representative place currently lists none, so a populated case is unverified. Prices are null when the page shows no ticket card. One page fetch per call. An unknown slug returns a stale_input error (the site answers with its own 'page not found' page).

Input
ParamTypeDescription
slugstringPlace page slug as it appears in the cultura.gov.it place URL path (lowercase words joined by hyphens).
Response
{
  "type": "object",
  "fields": {
    "name": "place name from the page heading",
    "slug": "echo of the place slug",
    "booking": "booking requirement text as shown (Italian, e.g. 'Prenotazione Facoltativa' = optional), or null",
    "currency": "ISO currency code of the prices",
    "site_hours": "array of 7 day rows for the site itself: day (english), day_label (Italian as shown), open/close HH:MM or null, closed boolean, note (last-entry text or null)",
    "ticket_info": "free-text ticket notes (combined tickets, annual pass) or null",
    "adult_price_eur": "full-price (adult) ticket in euro as a number, null if no ticket card",
    "reduced_price_eur": "reduced ticket in euro as a number, null if no ticket card",
    "seasonal_validity": "array of seasonal validity phrases stated on the page; empty when none listed",
    "saturday_site_hours": "the Saturday row of site_hours, or null if absent",
    "ticket_office_hours": "array of 7 day rows for the ticket office, same row shape as site_hours",
    "seasonal_validity_listed": "boolean, true when seasonal_validity is non-empty",
    "saturday_ticket_office_hours": "the Saturday row of ticket_office_hours, or null if absent"
  },
  "sample": {
    "data": {
      "name": "Grotte di Catullo e Museo archeologico di Sirmione",
      "slug": "grotte-di-catullo-e-museo-archeologico-di-sirmione",
      "booking": "Prenotazione Facoltativa",
      "currency": "EUR",
      "site_hours": [
        {
          "day": "monday",
          "note": null,
          "open": "08:30",
          "close": "14:00",
          "closed": false,
          "day_label": "Lunedì"
        },
        {
          "day": "saturday",
          "note": "Ultimo ingresso h 16.20",
          "open": "08:30",
          "close": "19:30",
          "closed": false,
          "day_label": "Sabato"
        }
      ],
      "ticket_info": "E' disponibile anche il biglietto congiunto Castello Scaligero, Grotte di Catullo e Villa Romana di Desenzano 20,00 € Abbonamento annuale: €20 (ingressi illimitati per 365 giorni dall'acquisto)",
      "adult_price_eur": 10,
      "reduced_price_eur": 2,
      "seasonal_validity": [],
      "saturday_site_hours": {
        "day": "saturday",
        "note": "Ultimo ingresso h 16.20",
        "open": "08:30",
        "close": "19:30",
        "closed": false,
        "day_label": "Sabato"
      },
      "ticket_office_hours": [
        {
          "day": "monday",
          "note": null,
          "open": "08:00",
          "close": "13:00",
          "closed": false,
          "day_label": "Lunedì"
        },
        {
          "day": "saturday",
          "note": null,
          "open": "08:30",
          "close": "18:30",
          "closed": false,
          "day_label": "Sabato"
        }
      ],
      "seasonal_validity_listed": false,
      "saturday_ticket_office_hours": {
        "day": "saturday",
        "note": null,
        "open": "08:30",
        "close": "18:30",
        "closed": false,
        "day_label": "Sabato"
      }
    },
    "status": "success"
  }
}

About the Gov API

What the API Returns

The single endpoint, get_place_hours_and_prices, accepts a slug parameter matching the URL path of any cultural site listed on cultura.gov.it (e.g., grotte-di-catullo-e-museo-archeologico-di-sirmione). It returns the place name and slug, an adult_price_eur and reduced_price_eur as numeric values in euro, and a currency field confirming the ISO code.

Hours Data

Hours are returned as two separate 7-element arrays. site_hours covers the physical site's access schedule; each row carries a day (English), day_label (Italian as printed on the page), open and close in HH:MM format, and a closed boolean for days when the site does not operate. The saturday_site_hours convenience field surfaces the Saturday row directly. A parallel structure for the ticket office is not listed as a named top-level field but the site_hours split from the ticket-office schedule mirrors the same row shape.

Supplementary Fields

booking returns the booking-requirement text in Italian as it appears on the page (e.g., Prenotazione Facoltativa) or null when absent. ticket_info holds free-text notes about combined tickets or annual passes. seasonal_validity is an array of any validity-period phrases stated on the listing; it is an empty array when none are given. All text fields that originate from Italian-language content are returned as-is without translation.

Reliability & maintenanceVerified

The Gov API is a managed, monitored endpoint for cultura.gov.it — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cultura.gov.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 cultura.gov.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.

Last verified
2h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
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
  • Display up-to-date admission prices for Italian museum listings in a travel planning app, using adult_price_eur and reduced_price_eur.
  • Build a weekly visit-planner widget that reads site_hours to show day-by-day open/close times for a given cultural site.
  • Alert users when a site is closed on a specific day by checking the closed boolean in the site_hours array.
  • Surface booking-requirement status (booking field) alongside opening times in a trip-itinerary tool.
  • Aggregate seasonal_validity data across multiple slugs to flag sites with restricted operating periods.
  • Show ticket-office hours separately from site access hours to help visitors plan arrival times.
  • Power a discount-finder feature by comparing adult_price_eur and reduced_price_eur across multiple sites.
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 cultura.gov.it provide an official developer API?+
No. The Italian Ministry of Culture's cultura.gov.it website does not publish a documented public API or data feed for place pages. Structured data is available through this Parse endpoint.
What does get_place_hours_and_prices return for a site with no ticket pricing?+
When a place page on cultura.gov.it does not include a ticket card, both adult_price_eur and reduced_price_eur are returned as null. The hours arrays and other fields are still populated where present.
Does the API cover multiple sites or only one at a time?+
Each call to get_place_hours_and_prices covers exactly one site identified by its slug. There is no batch or search endpoint to list all available slugs. You can fork this API on Parse and revise it to add a search or multi-slug batch endpoint.
Are ticket-office hours returned separately from site opening hours?+
Yes. site_hours reflects the physical site's weekly schedule (the 'Apertura' section on the page), while ticket-office hours from the 'Biglietteria' section are tracked as a separate structure. Both follow the same 7-row day format with open, close, and closed fields.
Does the API cover visitor reviews, accessibility information, or contact details for a site?+
Not currently. The API covers opening hours, ticket-office hours, admission prices, booking requirements, and seasonal validity phrases. You can fork this API on Parse and revise it to add an endpoint that returns contact details or accessibility information from the same place page.
Page content last updated . Spec covers 1 endpoint from cultura.gov.it.
Related APIs in Government PublicSee all →