Gov APIguia.curitiba.pr.gov.br ↗
Access Curitiba municipal event listings and full event details via 2 endpoints. Filter by category, paginate results, and retrieve dates, venues, and ticket info.
What is the Gov API?
The Guia Curitiba API exposes 2 endpoints for querying events from the official Curitiba municipal events platform. list_events returns paginated summaries for a given category — including title, venue, date range, ticket info, and featured image — while get_event retrieves precise start/end times, street address, and full ticket details for a single event identified by its slug and event_id.
curl -X POST 'https://api.parse.bot/scraper/1909f213-32b8-4e92-88c9-6b8f48a65280/list_events' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"page": "0",
"category_id": "22"
}'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 guia-curitiba-pr-gov-br-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: Guia Curitiba SDK — bounded, re-runnable; every call capped."""
from parse_apis.Guia_Curitiba_Events_API import GuiaCuritiba, EventNotFound
client = GuiaCuritiba()
# List events from a category (22 = Festas e shows), capped at 3 results
for event in client.event_summaries.list(category_id="22", limit=3):
print(event.title, event.venue, event.date_text)
# Drill down into the first event for full details
summary = client.event_summaries.list(category_id="22", limit=1).first()
try:
full = summary.details()
print(full.title, full.venue, full.address)
print(full.description[:100])
print(full.date.start_date, full.date.start_time, full.date.end_time)
print(full.organizer, full.modality)
except EventNotFound as e:
print("Event gone:", e.slug, e.event_id)
print("exercised: event_summaries.list, EventSummary.details")
Lists events by category. Returns paginated event summaries including title, venue, date range, ticket info, and image. Each result carries a slug and event_id for use with get_event. Results are auto-iterated; each page returns up to 9 events.
| Param | Type | Description |
|---|---|---|
| page | integer | Zero-based page index for pagination. |
| category_idrequired | string | Numeric category ID for filtering events (e.g. 22 for Festas e shows). |
{
"type": "object",
"fields": {
"page": "current page index",
"total": "total number of events matching the category",
"events": "array of event summaries with title, slug, event_id, venue, date_text, tickets, featured_image, url"
},
"sample": {
"data": {
"page": 0,
"total": 62,
"events": [
{
"url": "https://guia.curitiba.pr.gov.br/evento/festival-de-ferias-inverno-2026/10785",
"slug": "festival-de-ferias-inverno-2026",
"title": "Festival de Ferias - Inverno 2026",
"venue": "Rua da Cidadania Boa Vista",
"tickets": "Gratuito",
"event_id": "10785",
"date_text": "Qui. 16/Jul - Qui. 16/Jul",
"featured_image": "https://mid-guia.curitiba.pr.gov.br/eventos/2026/07/10/e677a972-ed4f-46b3-976c-18e8f00cc958.jpeg"
}
]
},
"status": "success"
}
}About the Gov API
Event Listings
list_events accepts a required category_id parameter (e.g. 22 for "Festas e shows") and an optional zero-based page index. Each response includes the current page, a total count of matching events, and an events array of up to 9 summaries. Each summary exposes title, slug, event_id, venue, date_text, tickets, featured_image, and url. The slug and event_id fields are the keys needed to call the detail endpoint.
Event Details
get_event takes a slug and event_id — both sourced from list_events results — and returns the full event record. The date object breaks out start_date, end_date, start_time, and end_time as discrete fields, which the listing endpoint does not provide. Additional detail fields include address (street-level), venue, tickets (pricing text), and featured_image.
Pagination and Coverage
Pagination is zero-indexed and each page returns at most 9 events. The total field from list_events lets you calculate how many pages exist for a given category. Categories are identified by numeric string IDs; 22 maps to festivals and shows on the platform. The API covers only events published on the Guia Curitiba municipal platform, which focuses on events occurring in or around the city of Curitiba, Brazil.
The Gov API is a managed, monitored endpoint for guia.curitiba.pr.gov.br — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when guia.curitiba.pr.gov.br 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 guia.curitiba.pr.gov.br 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 Curitiba event calendar app filtered by category using
category_idanddate_textfromlist_events - Aggregate upcoming concerts and festivals by scraping all pages of category 22 using the
totalandpagefields - Display venue maps by combining
venueandaddressfields returned byget_event - Monitor ticket availability mentions across Curitiba events using the
ticketsfield - Sync event start and end times into a calendar system using the
dateobject fromget_event - Generate event thumbnail galleries using
featured_imageURLs from paginatedlist_eventsresults
| 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 Guia Curitiba have an official developer API?+
What does `get_event` return that `list_events` does not?+
get_event adds structured start_date, end_date, start_time, and end_time fields inside a date object, plus a street-level address. The list_events endpoint provides only a human-readable date_text and no street address.Can I retrieve events across multiple categories in a single request?+
list_events filters by one category_id per call. There is no multi-category query parameter in the current API. You can fork this API on Parse and revise it to accept multiple category IDs and merge results.Is event search by keyword or date range supported?+
category_id and pagination via page. Free-text keyword search and date-range filtering are not exposed. You can fork it on Parse and revise to add those filtering endpoints.