Discover/Opapisa API
live

Opapisa APIopapisa.it ↗

Get official opening and closing times for Pisa's Tower, Cathedral, Baptistery, and more. Daily calendar data for up to 7 days via one endpoint.

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

What is the Opapisa API?

The opapisa.it API exposes the official opening calendar for the six monuments of Piazza dei Miracoli in Pisa — the Tower, Cathedral, Baptistery, Camposanto, Opera del Duomo Museum, and Sinopie Museum — through a single endpoint, get_opening_hours. Each response includes per-monument entries with opens_at and closes_at times in Europe/Rome local time, closure notices, split-schedule support, and general notices published on the official calendar page.

This call costs2 credits / call— charged only on success
Try it
Number of consecutive days to return starting at start_date, 1 to 7 (larger values are clamped to 7).
First day of the window, ISO date YYYY-MM-DD.
→ api.parse.bot/scraper/c4cb95ae-ebfb-4f12-ac03-075c15ee60e7/<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/c4cb95ae-ebfb-4f12-ac03-075c15ee60e7/get_opening_hours?start_date=2026-10-02' \
  -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 opapisa-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: Piazza dei Miracoli opening hours — check a week's schedule."""
from parse_apis.opapisa_it_api import OpaPisa, InputFormatInvalid

client = OpaPisa()

# Fetch the opening schedule for a week starting tomorrow-ish.
try:
    schedule = client.schedules.get(start_date="2026-10-01", days=7)
except InputFormatInvalid:
    print("Invalid date format — use YYYY-MM-DD within the published calendar range.")
    raise

print(f"Schedule: {schedule.start_date} to {schedule.end_date} ({schedule.days} days)")

# Show general visitor notices published on the calendar page.
for note in schedule.general_notes:
    print(f"  ℹ {note[:120]}")

# List open monuments and closures for each entry.
if schedule.entries is not None:
    for entry in schedule.entries:
        if entry.is_closure:
            print(f"  {entry.date}  CLOSED  {entry.monument}: {entry.title}")
        else:
            print(f"  {entry.date}  {entry.opens_at}–{entry.closes_at}  {entry.monument}")

print("exercised: schedules.get / Schedule fields / Entry fields")
All endpoints · 1 totalmissing one? ·

Returns the official opening calendar for a window of consecutive days starting at start_date, one entry per monument per calendar event. A regular entry carries opens_at/closes_at in 24h local (Europe/Rome) time; a monument with a split schedule appears twice on that day with two time ranges; a closure or special all-day notice appears as an entry with all_day=true, opens_at/closes_at null and the notice text in title (is_closure is true when the title says the monument is closed). monument is the site's own category label (the Camposanto is labelled 'Cemetery'). general_notes lists the free-text notice paragraphs published above the calendar (ticket rules, seasonal evening openings, per-monument caveats). One request per call regardless of days (days is clamped to 7). A start_date beyond the published calendar (currently valid through early January 2027) is answered by the site with a 404 and surfaces as an upstream error.

Input
ParamTypeDescription
daysintegerNumber of consecutive days to return starting at start_date, 1 to 7 (larger values are clamped to 7).
start_daterequiredstringFirst day of the window, ISO date YYYY-MM-DD.
Response
{
  "type": "object",
  "fields": {
    "days": "number of days actually covered after clamping",
    "entries": "array of calendar entries: date, monument (site category label), title (event name or closure notice), opens_at/closes_at (H:MM local time, null for all-day notices), all_day, is_closure, event_id (integer), event_url",
    "end_date": "last day of the returned window (ISO date)",
    "start_date": "first day of the returned window (ISO date)",
    "general_notes": "array of notice paragraphs published on the opening-time page"
  },
  "sample": {
    "data": {
      "days": 2,
      "entries": [
        {
          "date": "2026-10-01",
          "title": "Tower",
          "all_day": false,
          "event_id": 22511,
          "monument": "Tower",
          "opens_at": "9:00",
          "closes_at": "20:00",
          "event_url": "https://www.opapisa.it/en/event/tower-124/?instance_id=113395",
          "is_closure": false
        },
        {
          "date": "2026-10-02",
          "title": "Cathedral closed to visitors",
          "all_day": true,
          "event_id": 22764,
          "monument": "Cathedral",
          "opens_at": null,
          "closes_at": null,
          "event_url": "https://www.opapisa.it/en/event/cathedral-closed-to-visitors-2/?instance_id=114940",
          "is_closure": true
        }
      ],
      "end_date": "2026-10-02",
      "start_date": "2026-10-01",
      "general_notes": [
        "The published calendar is valid through January 6, 2027. This page is regularly updated.",
        "Open every day Entrance is allowed up to 30 minutes before closing time."
      ]
    },
    "status": "success"
  }
}

About the Opapisa API

What the API Returns

The get_opening_hours endpoint accepts two parameters: start_date (required, ISO date YYYY-MM-DD) and days (optional integer, 1–7; values above 7 are clamped). The response covers a consecutive window of calendar days and returns start_date, end_date, days (the count actually used after clamping), a general_notes array of notice paragraphs from the official calendar page, and an entries array.

Entries Array

Each item in entries represents one calendar event for one monument on one date. Fields include date, monument (the site category label, e.g. "Leaning Tower" or "Baptistery"), title (the event name or closure notice), and opens_at/closes_at in 24-hour local time. Monuments that operate a split schedule — for example, a mid-day closure — appear as two separate entries for the same date and monument, each with its own time window. Closure days carry a descriptive title instead of time fields.

Coverage and Freshness

All six monuments managed by Opera della Primaziale Pisana are covered: the Leaning Tower, Cathedral, Baptistery, Camposanto Monumentale, Museo dell'Opera del Duomo, and Museo delle Sinopie. Times reflect the official calendar published at opapisa.it and include seasonal schedule changes and special closure notices as they appear there. The general_notes field surfaces any site-wide notices that accompany a given calendar window.

Reliability & maintenanceVerified

The Opapisa API is a managed, monitored endpoint for opapisa.it — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when opapisa.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 opapisa.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 today's opening and closing times for the Leaning Tower in a travel itinerary app.
  • Warn tourists of monument closures by checking the title field for closure notices before a visit date.
  • Build a weekly schedule view showing split-schedule entries across all six Piazza dei Miracoli monuments.
  • Sync a Google Calendar or iCal feed with monument hours by querying get_opening_hours each day.
  • Show general_notes banners in a Pisa city guide app when official site-wide notices are active.
  • Check whether a specific monument is open on a requested date by filtering entries by monument and date.
  • Alert tour operators to seasonal schedule changes by comparing opens_at/closes_at values across consecutive weekly queries.
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 opapisa.it provide an official developer API?+
No. Opera della Primaziale Pisana does not publish a public developer API. Opening time data is available only through the official calendar page at opapisa.it/en/opening-and-closing-time/.
How does the API handle monuments with mid-day breaks or split schedules?+
When a monument operates a split schedule on a given day, get_opening_hours returns two separate entries for the same date and monument, each with its own opens_at and closes_at values. A single uninterrupted schedule produces one entry for that day.
What is the maximum date window I can query at once?+
The days parameter accepts integers from 1 to 7. Any value larger than 7 is clamped to 7, and the actual count used is reflected in the days field of the response. The end_date field shows the last date covered.
Does the API return historical opening hours for past dates?+
The API is oriented toward the published forward-looking calendar starting at start_date. Historical date coverage is not guaranteed. The endpoint covers the official calendar window as published on the opapisa.it opening-time page. You can fork this API on Parse and revise it to add explicit historical date handling if your use case requires it.
Can I get ticket prices or booking availability alongside the opening times?+
Not currently. The API covers opening and closing times, split schedules, closure notices, and general calendar notes for the six monuments. Ticket pricing and booking availability are not included. You can fork this API on Parse and revise it to add an endpoint targeting the opapisa.it ticketing section.
Page content last updated . Spec covers 1 endpoint from opapisa.it.
Related APIs in TravelSee all →
ticketing.colosseo.it API
Browse and book tickets for the Colosseum with real-time availability calendars, detailed ticket information, and transparent pricing across different ticket categories. Check what's available on specific dates and compare pricing tiers to plan your visit to Rome's iconic archaeological site.
opendays.com API
Search and discover open day events at educational institutions, view detailed event information and institution profiles, and browse the complete calendar of upcoming visits. Find the perfect school or university open day by searching institutions or exploring all available options with their program details and dates.
verkaufsoffener-sonntag.com API
Access data from verkaufsoffener-sonntag.com.
sagradafamilia.org API
sagradafamilia.org API
ticketone.it API
Browse upcoming events and search for artists or venues on TicketOne.it, then check real-time ticket availability and get detailed event information all in one place. Discover featured events by category or search directly to find events to attend.
itinerarinelgusto.it API
Discover and explore Italian food festivals and local celebrations across different provinces with complete event details like dates, locations, descriptions, and contact information. Plan your culinary adventures by searching through listings of sagre and feste happening throughout Italy.
comingsoon.it API
Find movie showtimes, theater locations, and box office rankings across Italy with access to detailed movie and theater information. Search now-playing films by city, compare showtimes at different cinemas, and discover what's trending at the Italian box office.
queue-times.com API
Monitor real-time wait times, crowd levels, and historical data across 130+ theme parks worldwide to plan your visits and avoid peak hours. Get daily statistics and predictions to make informed decisions about when and where to experience attractions with minimal wait times.