Discover/Passo API
live

Passo APIpasso.com.tr

Query live event listings from Passo.com.tr. Get titles, venues, dates, price ranges, categories, and availability. Filter by city, district, date, and category.

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

What is the Passo API?

The Passo API exposes 1 endpoint — list_events — that returns structured data for ticketed events currently on sale at passo.com.tr, covering concerts, sports matches, theatre, and museum entries across Turkey. Each event object includes up to 12 response fields: title, description, category, start date, venue, city, district, price range, availability status, ticket URL, and a stable external ID. Results support filtering by city, district, category, free-text search, and date range.

This call costs10 credits / call— charged only on success
Try it
City name as listed on Passo (e.g. Istanbul, Ankara, Izmir); accent-insensitive, so Istanbul and İstanbul both match. Omitted = all cities. A city Passo does not list yields an empty result.
1-based page number over the filtered event stream.
Events per page; values above 20 are clamped to 20.
Free-text search over event, artist and venue names (the site's search box). Omitted = no text filter.
Top-level Passo category. Omitted = all categories.
Venue district within the city (e.g. Beşiktaş, Kadıköy), matched case- and accent-insensitively against the venue's district on the returned page. Omitted = no district filter.
ISO date YYYY-MM-DD; only events whose start date is on or before this day are returned. Must not be before start_date. Omitted = no upper bound.
Language of titles, descriptions, category names and ticket URLs.
ISO date YYYY-MM-DD; only events whose start date is on or after this day are returned. Omitted = no lower bound.
api.parse.bot/scraper/a8f279b2-3822-4cbc-8aa1-c53a80ece67a/<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/a8f279b2-3822-4cbc-8aa1-c53a80ece67a/list_events?city=Istanbul&category=music' \
  -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 passo-com-tr-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: Passo Events SDK — browse upcoming events in Istanbul."""
from parse_apis.passo_com_tr_api import Passo, Category, InputFormatInvalid

client = Passo()

# List music events in Istanbul, capped at 5 total items.
for event in client.events.list(city="Istanbul", category=Category.MUSIC, limit=5):
    print(event.title, event.start_date, event.venue_name)

# Drill into the first sports event to read pricing and venue details.
event = client.events.list(category=Category.SPORTS, limit=1).first()
if event is not None:
    print(event.title, event.city, event.district)
    print("Price:", event.minimum_price, "-", event.maximum_price, event.currency)
    print("Venue:", event.venue_name, event.venue_address)

# Search by text with a date window; handle invalid-format errors.
try:
    for event in client.events.list(
        search="konser",
        start_date="2025-07-01",
        end_date="2025-12-31",
        limit=3,
    ):
        print(event.title, event.availability, event.ticket_url)
except InputFormatInvalid as e:
    print("Bad filter input:", e.message)

print("exercised: events.list (city/category/search/date filters)")
All endpoints · 1 totalmissing one? ·

Returns one page of events currently listed on Passo, ordered by the site's default (ascending event date). Each row is a single dated event (concerts, matches, theatre, museum entries, season/combo tickets); undated tour/festival group pages are excluded. Results are de-duplicated by external_id. City, category and search are applied by the site; start_date, end_date and district are applied locally: the date range is checked against each event's start date while scanning up to 1500 events of the site's stream, and district is matched (case- and Turkish-accent-insensitive) against the venue's district on the returned page only, so a district-filtered page can hold fewer than limit rows while has_next still reflects the underlying stream. Every returned event costs one extra request for its detail page, so limit is capped at 20 (default 10). Pagination: page (1-based) and limit select a slice of the filtered stream; pagination.has_next is true when at least one more matching event exists, pagination.scanned_events is how many events were inspected, and pagination.scan_complete is false only when the 1500-event scan cap was reached before enough matches were found. An unknown city returns an empty events array. artist is populated only when the site tags a named performer (often null); venue_address, district, latitude and longitude are null when the venue has no map data; minimum_price/maximum_price/currency are null when no ticket categories are published. Dates are ISO-8601 in Turkey time (+03:00).

Input
ParamTypeDescription
citystringCity name as listed on Passo (e.g. Istanbul, Ankara, Izmir); accent-insensitive, so Istanbul and İstanbul both match. Omitted = all cities. A city Passo does not list yields an empty result.
pageinteger1-based page number over the filtered event stream.
limitintegerEvents per page; values above 20 are clamped to 20.
searchstringFree-text search over event, artist and venue names (the site's search box). Omitted = no text filter.
categorystringTop-level Passo category. Omitted = all categories.
districtstringVenue district within the city (e.g. Beşiktaş, Kadıköy), matched case- and accent-insensitively against the venue's district on the returned page. Omitted = no district filter.
end_datestringISO date YYYY-MM-DD; only events whose start date is on or before this day are returned. Must not be before start_date. Omitted = no upper bound.
languagestringLanguage of titles, descriptions, category names and ticket URLs.
start_datestringISO date YYYY-MM-DD; only events whose start date is on or after this day are returned. Omitted = no lower bound.
Response
{
  "type": "object",
  "fields": {
    "events": "array of event objects: external_id (stable Passo event id as string), title, description (plain text, HTML stripped), category, subcategory, artist (nullable), venue_name, venue_address (nullable), city, district (nullable), latitude/longitude (numbers, nullable), start_date/end_date (ISO-8601 with +03:00), image_url, minimum_price/maximum_price (numbers, nullable), currency (ISO code, nullable), ticket_url, availability (available | unavailable | cancelled)",
    "pagination": "object: page, limit, has_next (another matching event exists), scanned_events (events inspected in this call), scan_complete (false only when the scan cap stopped the search early)"
  },
  "sample": {
    "data": {
      "events": [
        {
          "city": "İstanbul",
          "title": "Metro Boomin",
          "artist": null,
          "category": "Müzik",
          "currency": "TRY",
          "district": "Şişli",
          "end_date": "2026-09-22T23:59:00+03:00",
          "latitude": 41.042544,
          "image_url": "https://image.passo.com.tr/api/r/tr/p/event/30072026094624-metroboomin-yatay_jpg.jpeg",
          "longitude": 28.993282,
          "start_date": "2026-09-22T21:30:00+03:00",
          "ticket_url": "https://www.passo.com.tr/en/event/metro-boomin-konser-2026-kucukciftlik-park-biletleri/12409335",
          "venue_name": "KüçükÇiftlik Park",
          "description": "METRO BOOMIN, THE VISIONARY WHO REDEFINED THE BOUNDARIES OF MODERN HIP-HOP AND TRAP, IS COMING TO KÜÇÜKÇİFTLİK PARK ON SEPTEMBER 22! Metro Boomin, one of the most influential producers of our time...",
          "external_id": "12409335",
          "subcategory": "Dj - Party",
          "availability": "available",
          "maximum_price": 13000,
          "minimum_price": 5000,
          "venue_address": "Harbiye Mh. Kadırgalar Cd. No 4 Şişli İstanbul"
        }
      ],
      "pagination": {
        "page": 1,
        "limit": 3,
        "has_next": true,
        "scan_complete": true,
        "scanned_events": 22
      }
    },
    "status": "success"
  }
}

About the Passo API

What the API Returns

The list_events endpoint returns a paginated array of event objects sourced from Passo's live inventory. Each object carries a stable external_id for deduplication, a plain-text description (HTML stripped), a category label matching Passo's top-level taxonomy, start_date, and structured venue data including venue name, city, and district. Price data is expressed as a range (min/max), and an availability flag signals whether tickets remain on sale. A ticket_url links directly to the Passo purchase page for that event.

Filtering and Pagination

The endpoint accepts a city parameter (e.g. Istanbul, Ankara, Izmir) that is accent-insensitive, so Istanbul and İstanbul resolve identically. You can narrow results further with district (e.g. Beşiktaş, Kadıköy), category, a start_date/end_date ISO date window, and a search string that matches against event, artist, and venue names. The language parameter controls the language of titles, descriptions, category names, and ticket URLs. Pages are 1-based and capped at 20 events per call via the limit parameter.

Pagination Object

Every response includes a pagination object with page, limit, has_next, scanned_events, and scan_complete. The has_next flag tells you whether at least one more matching event exists beyond the current page. scan_complete being false means the full filtered stream has not yet been walked — useful when you need to know whether totals are exact. Undated tour and festival group pages are excluded from results; only events with a concrete start date appear.

Coverage Notes

Passo lists events primarily in Turkish cities. Category values mirror Passo's own taxonomy and may include concerts, theatre, sports, and museum/exhibition entries. Combo and season tickets appear as distinct rows when they carry a date.

Reliability & maintenanceVerified

The Passo API is a managed, monitored endpoint for passo.com.tr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when passo.com.tr 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 passo.com.tr 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
1h 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
  • Build a Turkey events calendar app using start_date, city, and category filters from list_events.
  • Monitor ticket availability for a specific artist or venue using the search parameter and the availability field.
  • Aggregate event price ranges across Istanbul districts by looping list_events with the district parameter.
  • Send alerts when new events appear in a given city by comparing external_id values across polling intervals.
  • Populate a venue discovery tool with event counts and date ranges per district and city.
  • Track category-level event volume in Ankara versus Izmir using repeated category + city queries.
  • Feed a multilingual events widget using the language parameter to switch title and description locale.
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 Passo have an official developer API?+
Passo does not publish a public developer API or official API documentation as of mid-2025. There is no registered developer portal or OAuth program listed on passo.com.tr.
What does `list_events` return for price data, and how is availability indicated?+
Each event object includes a min and max price value representing the ticket price range currently on sale, plus a boolean availability flag indicating whether at least one ticket tier is purchasable. No per-tier seat map or inventory count is exposed.
Can I retrieve past events or historical ticket sales data?+
Not currently. The list_events endpoint only returns events that are currently listed and on sale on Passo — past or expired events are not included. You can fork this API on Parse and revise it to add an endpoint that targets archived or past-event pages if that data becomes available.
Does the API return individual seat-level data or performer lineups?+
Not currently. Response fields cover event-level data: title, description, category, dates, venue, city, district, price range, availability, and ticket URL. Seat maps, performer rosters, and set times are not included in the current response shape. You can fork this API on Parse and revise it to add an endpoint targeting individual event detail pages to expose that data.
How does pagination behave when filtering by district or date range?+
The pagination.scan_complete field in the response tells you whether all matching events have been inspected for the current filter set. If scan_complete is false, more events may exist but have not yet been walked. Use has_next to determine whether to request the next page, and increment the page parameter to continue. The scanned_events count shows how many events were examined in that call.
Page content last updated . Spec covers 1 endpoint from passo.com.tr.
Related APIs in EntertainmentSee all →