TicketSwap APIticketswap.nl ↗
Access TicketSwap event search, trending events, ticket listings, artist pages, and venue data via 7 structured API endpoints.
What is the TicketSwap API?
The TicketSwap API gives developers structured access to TicketSwap.nl across 7 endpoints covering event search, trending and rising events, artist profiles, and individual ticket listings. The search_events endpoint accepts a keyword and returns up to 20 mixed results per page — events, artists, venues, cities, and organizers — with cursor-based pagination. Ticket availability counts, slugs, images, and geographic data are all returned as typed fields ready to consume.
curl -X GET 'https://api.parse.bot/scraper/ce18a647-b0e2-4a1f-a4a4-61773779bffa/search_events?query=coldplay' \ -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 ticketswap-nl-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: TicketSwap SDK — search events, browse trending, filter by category."""
from parse_apis.ticketswap_api import TicketSwap, EventCategory, EventNotFound
client = TicketSwap()
# Search for events by keyword; limit= caps total items fetched.
for event in client.events.search(query="harry styles", limit=3):
print(event.name, event.start_date, event.city_name)
# Get trending events in the Netherlands.
trending = client.events.trending(country_code="NL", limit=5).first()
if trending:
print(trending.name, trending.category, trending.location_name)
# Browse rising concerts filtered by category enum.
for event in client.events.rising(country_code="US", category=EventCategory.CONCERTS, limit=3):
print(event.name, event.start_date, event.country_name, event.path)
# Typed error handling around a search call.
try:
result = client.events.search(query="nonexistent-xyz-event-2099", limit=1).first()
if result:
print(result.name, result.slug)
except EventNotFound as exc:
print(f"Event not found: {exc}")
print("exercised: events.search / events.trending / events.rising")
Search for events, artists, venues, cities, and organizers by keyword on TicketSwap. Returns up to 20 results per page with pagination support via cursor. Results include event details like name, date, location, city, category, and country.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword (e.g., 'coldplay', 'amsterdam', 'harry styles') |
{
"type": "object",
"fields": {
"results": "array of search result objects (events, artists, cities, venues, organizers) with type indicated by __typename field",
"page_info": "object with hasNextPage (boolean) and endCursor (string) for cursor-based pagination"
},
"sample": {
"data": {
"results": [
{
"id": "RXZlbnQ6MDE5Y2JkYTYtNzFlNS03MGMyLTliOTItNzJiMDExNTVmOGQx",
"uri": {
"url": "https://www.ticketswap.com/concert-tickets/niels-geusebroek-sings-coldplay-amstelveen-het-amsterdamse-bostheater-2026-07-17-CYjpFc6UcnzNhCPZ5V2Jt",
"host": "www.ticketswap.com",
"path": "/concert-tickets/niels-geusebroek-sings-coldplay-amstelveen-het-amsterdamse-bostheater-2026-07-17-CYjpFc6UcnzNhCPZ5V2Jt",
"__typename": "Uri",
"isExternal": false
},
"name": "Niels Geusebroek sings Coldplay",
"slug": "niels-geusebroek-sings-coldplay",
"country": {
"code": "NL",
"name": "Netherlands",
"slug": "netherlands",
"__typename": "Country"
},
"endDate": null,
"category": "CONCERTS",
"cityName": "Amstelveen",
"startDate": "2026-07-17T18:00:00+02:00",
"__typename": "EventResult",
"locationName": "Het Amsterdamse Bostheater",
"hasOngoingEventType": false
}
],
"page_info": {
"endCursor": "Y3Vyc29yOnBvc2l0aW9uPTE5",
"__typename": "PageInfo",
"hasNextPage": true
}
},
"status": "success"
}
}About the TicketSwap API
Event Discovery
The search_events endpoint takes a single query string and returns an array of typed objects whose __typename field distinguishes between events, artists, cities, venues, and organizers. Each page returns up to 20 results; the page_info object includes hasNextPage and endCursor so you can walk through deeper result sets. For curated discovery, get_trending_events returns the top 5 events in a given country (pass an ISO country_code like NL, US, or GB), and get_rising_events returns up to 9 events optionally filtered by category (CONCERTS, FESTIVALS, SPORTS, CLUBS, THEATRE, COMEDY, AMUSEMENT_PARK) and country_code. Rising event objects include availableTicketsCount, imageUrl, startDate, endDate, and a nested location object.
Event, Artist, and Listing Detail
get_event_details accepts an event slug and returns an initialApolloState object containing hydrated Event, Artist, and Venue nodes. get_artist_details takes an artist_slug and returns artist metadata alongside upcoming events. get_listing_details takes three URL-derived parameters — hash, slug, and listing_id — and returns Listing and Ticket detail nodes from the same state structure.
Browsing by City or Category
browse_events lets you pull event lists scoped to a city or category using city_slug (e.g., amsterdam/3) or category_slug (e.g., concerts). Both parameters are optional and can be combined. The response initialApolloState mirrors the hydrated shape returned by the detail endpoints.
Coverage and Scope
All endpoints reflect TicketSwap's marketplace inventory, which focuses on resale tickets for concerts, festivals, sports, and theatre across Europe and select other regions. Trending and rising event feeds are country-scoped and represent TicketSwap platform activity, not broader ticketing market signals.
The TicketSwap API is a managed, monitored endpoint for ticketswap.nl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ticketswap.nl 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 ticketswap.nl 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 secondary ticket price tracker using
get_listing_detailsto monitoravailableTicketsCountfor specific events - Aggregate trending concert and festival data by country using
get_trending_eventswith differentcountry_codevalues - Power an event discovery feed filtered by category (e.g., FESTIVALS) and region via
get_rising_events - Create an artist tour-date tool that pulls upcoming events from
get_artist_detailsby artist slug - Index TicketSwap venue and city coverage by crawling
browse_eventswith differentcity_slugvalues - Build a search autocomplete layer over mixed entity types (events, artists, venues) using
search_eventspagination - Monitor available ticket counts across rising events in a target country to surface demand signals
| 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 TicketSwap have an official public developer API?+
What does `get_rising_events` return that `get_trending_events` does not?+
get_rising_events returns up to 9 events and includes richer fields per event: availableTicketsCount, imageUrl, status, and a nested location object with venue details. It also accepts a category filter (e.g., CONCERTS, SPORTS). get_trending_events returns exactly 5 events with lighter metadata — name, date, city, category, and URI — and does not support category filtering.Does the API return ticket pricing or transaction history?+
How does pagination work in `search_events`?+
page_info object in each response contains a boolean hasNextPage and a string endCursor. Pass endCursor as the cursor on your next request to retrieve the following page.Is event data limited to specific countries or regions?+
country_code values documented as NL, US, GB, DE, FR, ES, and BE. Events outside those markets may appear in search results but are not guaranteed to surface in trending or rising feeds. browse_events and search_events are not country-scoped at the parameter level, but TicketSwap's marketplace is concentrated in Western Europe.