Itinerari nel Gusto APIitinerarinelgusto.it ↗
Access sagre and feste listings across Italian provinces via 2 endpoints. Get event names, dates, locations, organizer contacts, and category data.
What is the Itinerari nel Gusto API?
The Itinerari nel Gusto API exposes 2 endpoints for retrieving Italian food festival (sagra) and local celebration (festa) listings from itinerarinelgusto.it. The list_events endpoint returns paginated summaries — 15 events per page — covering fields like event name, dates, city, location, and category for a given Italian province. The get_event endpoint delivers full event records including organizer details, contact phone and email, booking links, and external URLs.
curl -X GET 'https://api.parse.bot/scraper/9acc8970-98ae-487f-8c29-d0f2688b4abd/list_events?page=1&province=bergamo' \ -H 'X-API-Key: $PARSE_API_KEY'
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 itinerarinelgusto-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: itinerarinelgusto_it_api SDK — bounded, re-runnable; every call capped."""
from parse_apis.itinerarinelgusto_it_api import ItinerariNelGusto, EventNotFound
client = ItinerariNelGusto()
# List upcoming sagre and feste in Bergamo province
for event in client.province("bergamo").list_events(limit=3):
print(event.name, event.city, event.start_date)
# Drill-down: take one event and fetch its full details
summary = client.province("bergamo").list_events(limit=1).first()
if summary:
try:
full = summary.details()
print(full.name, full.location, full.organizer)
print("Links:", full.links)
except EventNotFound as e:
print(f"Event not found: {e.slug}")
print("exercised: province.list_events / event_summary.details")
Lists sagre and feste for a given Italian province. Results are paginated (15 per page) and include event name, dates, location, city, description, and category. Each event includes a URL slug usable with get_event for full details.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based). |
| province | string | Italian province name in lowercase (e.g. 'bergamo', 'brescia', 'lecco'). |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"total": "integer, total number of events found",
"events": "array of event summaries with name, url, slug, start_date, end_date, description, city, location, address, category",
"total_pages": "integer, total number of pages"
},
"sample": {
"data": {
"page": 1,
"total": 66,
"events": [
{
"url": "https://www.itinerarinelgusto.it/eventi/borgo-divino-in-tour-a-lovere-8453",
"city": "Lovere",
"name": "Borgo diVino in Tour a Lovere",
"slug": "borgo-divino-in-tour-a-lovere-8453",
"address": "Piazza XIII Martiri - 24065 Lovere (BG)",
"category": "Eventi / Bergamo / Eventi",
"end_date": "2026-07-26T23:00:00",
"location": "Lovere, Piazza XIII Martiri",
"start_date": "2026-07-24T17:00:00",
"description": "Lovere ospita Borgo diVino in tour con degustazioni di vini italiani."
}
],
"total_pages": 5
},
"status": "success"
}
}About the Itinerari nel Gusto API
Browsing Events by Province
The list_events endpoint accepts a province parameter (lowercase Italian province name, e.g. bergamo, brescia, lecco) and an optional page integer for pagination. Each page returns up to 15 event summaries. The response includes a total count and total_pages value so you can iterate through all results. Each event object carries name, start_date, end_date, city, location, address, description, category, and a slug field that feeds directly into get_event.
Full Event Details
The get_event endpoint takes a slug string (e.g. borgo-divino-in-tour-a-lovere-8453) and returns the complete record for that event. Fields include name, date (a text fallback when exact ISO dates are unavailable, e.g. 'Agosto'), end_date as an ISO datetime, address with postal code, region, category, email, phone, links (an array of external URLs such as a website or social media profiles), and organizer/booking information.
Coverage and Data Shape
The API covers sagre and feste listed on itinerarinelgusto.it, organized by Italian province. The category field distinguishes event types (e.g. food festivals by product, local traditions). The date field may return a plain month name rather than a structured date when the source listing does not specify exact dates — callers should handle both ISO datetime strings and plain text in that field. Contact fields (email, phone) are present only when the source listing includes them.
The Itinerari nel Gusto API is a managed, monitored endpoint for itinerarinelgusto.it — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when itinerarinelgusto.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 itinerarinelgusto.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?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a regional calendar app surfacing upcoming sagre and feste by Italian province using
list_eventswith theprovinceparam - Aggregate event contact details (phone, email) for travel newsletters targeting food tourism in northern Italy
- Display full event descriptions, addresses, and booking links on a trip-planning interface using
get_event - Monitor new festival listings per province by comparing
totalcounts across periodiclist_eventscalls - Extract external links from
get_eventresponses to identify official event websites and social media presence - Categorize Italian food festivals by
categoryfield to power a cuisine-type filter on a culinary travel guide
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does itinerarinelgusto.it offer an official developer API?+
What does `list_events` return for the `date` fields, and are they always structured?+
start_date and end_date fields. In get_event, the date field may return a plain text string like 'Agosto' when the source listing omits exact dates. Callers should handle both ISO datetime strings and plain month names in date fields.Can I search across all Italian provinces at once rather than specifying one?+
province parameter on list_events is optional, but results are tied to individual province listings as structured on the source site. Cross-province search or a national aggregated view is not currently exposed as a single query. You can fork this API on Parse and revise it to add a multi-province or nationwide aggregation endpoint.Does the API return historical or past events, or only upcoming ones?+
Are contact fields like `email` and `phone` always present in `get_event` responses?+
email and phone fields are only populated when the source event listing includes that information. Many listings omit one or both contact fields, so callers should treat them as nullable.