On this page
Quickstart
The API is public: no account or API key is required. Requests use https://classicalbot.com/api/v1 and return JSON.
curl 'https://classicalbot.com/api/v1/concerts?country_code=CZ&page_size=2'Filter by country to get started, or look up a city, performer or venue below to find its ID.
Example JSON response ยท shortened example
{
"source": null,
"concerts": [
{
"id": "123",
"title": "Illustrative concert",
"date": "2027-06-12",
"time": "19:30:00",
"city": "Prague",
"country_code": "CZ",
"venue_name": null,
"buy_url": null
}
],
"pagination": {
"page": 1,
"page_size": 2,
"total": 1,
"total_pages": 1,
"all": false,
"next": null
},
"generated_at": "2027-06-01T12:00:00Z"
}Concerts
GET /api/v1/concerts
Find upcoming concerts. Use at least one filter; results must match all supplied filters.
curl 'https://classicalbot.com/api/v1/concerts?country_code=CZ&page_size=2'Response fields
sourceSource matching the URL filter, or null.
Fields in source
idnameurlstatusValues: pending, processing, pr_open, active, blocked, retry_wait, duplicate, needs_attention, disabled.
next_attempt_at
concertsFields in concerts
artistsPerformer names, separated by semicolons.
venue_nameVenue or hall name.
stateCurrently unavailable.
venue_addressVenue address.
buy_urlTicket or reservation link.
idClassicalBot concert ID.
event_urlConcert page URL.
event_statusConcert status. Values: scheduled, cancelled, postponed, rescheduled.
last_verified_atWhen the concert was last verified.
country_codeTwo-letter country code.
city_idClassicalBot city ID.
venue_idClassicalBot venue ID.
parent_venue_nameParent venue or building name.
longitudeVenue longitude.
programmeProgramme summary.
programme_itemsWorks and their composers.
Fields in programme_items
idtitleprogramme_labelcatalogue_numbercomposerFields in composer
idname
composersComposers featured in the concert.
Fields in composers
idname
performersPerformers and their roles.
Fields in performers
idnamekindValues: person, ensemble.
rolesinstrumentsvoice_typecharacterensemblequalifieridentity_url
price_itemsPrice offers, currencies and conditions.
Fields in price_items
idkindValues: exact, from, range.
price_typeValues: admission, fee, suggested_donation.
amountamount_maxcurrencycategoryaudienceconditionsbasis
admission_typeAdmission category.
booking_kindBooking method. Values: purchase, reservation, .
booking_statusBooking availability. Values: unknown, on_sale, not_yet_on_sale, sold_out, box_office_only, not_required, .
on_sale_atWhen booking opens.
source_idClassicalBot source ID.
source_event_urlsConcert links from its sources.
paginationFields in pagination
pagepage_sizetotaltotal_pagesallnext
generated_atmessage
Find cities
GET /api/v1/cities
Search cities by name. Use the returned ID as city_id.
curl 'https://classicalbot.com/api/v1/cities?q=prague&country_code=CZ'Response fields
itemsFields in items
namelocal_namecountry_codelatitudelongitudeexternal_sourceexternal_idID in the external source.
paginationFields in pagination
pagepage_sizetotaltotal_pagesnext
generated_at
Find performers
GET /api/v1/performers
Search performers by name. Use the returned ID as performer_id.
curl 'https://classicalbot.com/api/v1/performers?q=mozart&has_upcoming=true'Response fields
itemsFields in items
namekindensemble_typeidentity_url
paginationFields in pagination
pagepage_sizetotaltotal_pagesnext
generated_at
Find venues
GET /api/v1/venues
Search venues by name. Use the returned ID as venue_id.
curl 'https://classicalbot.com/api/v1/venues?q=hall&country_code=GB'Response fields
itemsFields in items
namecountry_codecityFields in city
namecountry_code
addressidentity_urllatitudelongitudeparent_venueFields in parent_venue
name
paginationFields in pagination
pagepage_sizetotaltotal_pagesnext
generated_at
Concert response reference
Missing values are null or empty arrays. IDs and prices are strings.
artistsPerformer names, separated by semicolons.
venue_nameVenue or hall name.
stateCurrently unavailable.
venue_addressVenue address.
buy_urlTicket or reservation link.
idClassicalBot concert ID.
event_urlConcert page URL.
event_statusConcert status. Values: scheduled, cancelled, postponed, rescheduled.
last_verified_atWhen the concert was last verified.
country_codeTwo-letter country code.
city_idClassicalBot city ID.
venue_idClassicalBot venue ID.
parent_venue_nameParent venue or building name.
longitudeVenue longitude.
programmeProgramme summary.
programme_itemsWorks and their composers.
Fields in programme_items
idtitleprogramme_labelcatalogue_numbercomposerFields in composer
idname
composersComposers featured in the concert.
Fields in composers
idname
performersPerformers and their roles.
Fields in performers
idnamekindValues: person, ensemble.
rolesinstrumentsvoice_typecharacterensemblequalifieridentity_url
price_itemsPrice offers, currencies and conditions.
Fields in price_items
idkindValues: exact, from, range.
price_typeValues: admission, fee, suggested_donation.
amountamount_maxcurrencycategoryaudienceconditionsbasis
admission_typeAdmission category.
booking_kindBooking method. Values: purchase, reservation, .
booking_statusBooking availability. Values: unknown, on_sale, not_yet_on_sale, sold_out, box_office_only, not_required, .
on_sale_atWhen booking opens.
source_idClassicalBot source ID.
source_event_urlsConcert links from its sources.
Limits
The API allows 60 requests per minute per IP, including up to five requests with all=true. On HTTP 429, wait the number of seconds in Retry-After before retrying.
Results are cached for up to two minutes. generated_at shows when the response data was loaded.
Understanding the data
Dates, times and availability
Results include concerts from today onward, using the UTC date. Concert dates use YYYY-MM-DD and times use local HH:mm:ss. Other timestamps are in UTC.
Check event_status for cancellations or schedule changes. Missing prices do not mean free admission.
IDs and search
Use the IDs returned by the city, performer and venue searches. Keep them as strings.
Search matches part of a name, ignoring case and accents. Add has_upcoming=true to find only results with upcoming concerts.
Sources
Use url to get concerts from a source website.
When registration is enabled, requesting a new source URL queues it for processing. Otherwise, an unknown source returns HTTP 404.
HTTP 202 means the source is still being processed. Wait 60 seconds before checking again.
Need help with an integration? Contact us.