Moritz Neumeier APIshop.moritzneumeier.de ↗
Fetch upcoming Moritz Neumeier tour dates, availability, venue details, and ticket categories from the official ticket shop via 2 structured endpoints.
What is the Moritz Neumeier API?
The Moritz Neumeier Ticket Shop API exposes 2 endpoints covering every listed show in the official ticket shop at shop.moritzneumeier.de. list_tour_dates returns all upcoming events with ISO dates, city, venue, program name, availability status, and ticket URLs. get_event_details retrieves the full detail page for any single show, including ticket categories, prices, doors and start times, and venue address.
curl -X GET 'https://api.parse.bot/scraper/e176ab67-6bf5-4237-9e3a-3f4278f827d6/list_tour_dates?program=Schund+%26+Asche' \ -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 shop-moritzneumeier-de-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: Moritz Neumeier tour dates — browse shows, programs, and event details."""
from parse_apis.shop_moritzneumeier_de_api import MoritzNeumeier, NotFoundError
client = MoritzNeumeier()
# Fetch the full schedule to see available programs and total show count.
schedule = client.tour_schedules.get()
print(f"{schedule.total} upcoming shows across {len(schedule.programs)} programs:")
for prog in schedule.programs:
print(f" • {prog.name}")
# List events, capped to 10 items, and show date / city / availability.
for event in client.events.list(limit=10):
label = "SOLD OUT" if event.sold_out else event.status
print(f"{event.date} {event.city}, {event.venue} — {event.program} [{label}]")
# Filter to the first program discovered above and drill into one show's details.
first_program = schedule.programs[0].name
show = client.events.list(program=first_program, limit=1).first()
if show is not None:
try:
detail = show.details()
except NotFoundError as e:
print(f"Event no longer available: {e}")
detail = None
if detail is None:
print("Skipping detail view.")
else:
print(f"\nDetail for '{detail.title}' on {detail.date_text}:")
print(f" Artist: {detail.artist}")
print(f" Venue: {detail.venue.name if detail.venue else 'N/A'}")
print(f" Doors: {detail.doors_time}")
print(f" Start: {detail.start_time}")
for ticket in detail.tickets:
print(f" Ticket: {ticket.name} — {ticket.price_text}")
print("\nexercised: tour_schedules.get / events.list / events.list(program=) / event.details")
Returns every upcoming tour date listed in the official ticket shop, one record per show, in the shop's chronological order. Each record carries the ISO date, the program name as shown in the shop (e.g. 'PUR', 'Schund & Asche', 'Tryout - 19 Uhr'), city and venue, an availability status ('Ausverkauft', 'VVK startet in Kürze', 'VVK beendet', or 'Verfügbar' when the shop shows no restriction), a sold_out flag, and the direct ticket page URL. The full list is collected across the shop's internal pages in one call (typically a single round trip for under 100 shows). Optionally filtered to one program via the shop's own program filter chips; an unrecognised program name yields an empty events list together with the list of currently offered programs in 'programs'.
| Param | Type | Description |
|---|---|---|
| program | string | Program name to filter by, matched case-insensitively against the shop's program filter chips (the names are returned in 'programs', e.g. 'Schund & Asche'). Omitted = all programs. |
{
"type": "object",
"fields": {
"total": "integer number of events returned",
"events": "array of show records: event_id (string shop id), date (ISO YYYY-MM-DD), date_text (as displayed), program, city, venue, location (raw 'City, Venue' text), status (availability text), sold_out (boolean), tags (array of extra shop labels such as 'VVK beendet'), ticket_url",
"programs": "array of {name, id} program filter chips currently offered by the shop",
"program_filter": "the program filter applied, or null"
},
"sample": {
"data": {
"total": 2,
"events": [
{
"city": "Hamburg",
"date": "2026-11-23",
"tags": [],
"venue": "Friedrich-Ebert-Halle",
"status": "Ausverkauft",
"program": "Schund & Asche",
"event_id": "91978",
"location": "Hamburg, Friedrich-Ebert-Halle",
"sold_out": true,
"date_text": "23 Nov 2026",
"ticket_url": "https://shop.moritzneumeier.de/catalog/tickets/91978-tickets-schund-asche-friedrich-ebert-halle-hamburg-am-23-11-2026"
},
{
"city": "Berlin",
"date": "2026-12-04",
"tags": [],
"venue": "Admiralspalast",
"status": "Ausverkauft",
"program": "Schund & Asche",
"event_id": "92912",
"location": "Berlin , Admiralspalast",
"sold_out": true,
"date_text": "04 Dez 2026",
"ticket_url": "https://shop.moritzneumeier.de/catalog/tickets/92912-tickets-schund-asche-admiralspalast-berlin-am-04-12-2026"
}
],
"programs": [
{
"id": "10326",
"name": "PUR"
},
{
"id": "9222",
"name": "Einer von den Guten?"
},
{
"id": "7918",
"name": "Schund & Asche"
},
{
"id": "9302",
"name": "Talk ohne Gast"
},
{
"id": "7916",
"name": "Improvisiert"
}
],
"program_filter": "Schund & Asche"
},
"status": "success"
}
}About the Moritz Neumeier API
Tour Date Listing
list_tour_dates returns a flat array of all upcoming shows in the shop's chronological order. Each record includes event_id, date (ISO YYYY-MM-DD), date_text (the German display string), program, city, venue, location, availability status, and a ticket_url for the detail page. The optional program parameter filters results case-insensitively against the shop's program filter chips — values like 'PUR', 'Schund & Asche', or 'Tryout - 19 Uhr'. The response also returns a programs array listing all currently available filter chips by name and id, so you can discover valid filter values programmatically.
Event Detail
get_event_details takes a ticket_url exactly as returned by list_tour_dates and returns the full detail record for that show. Fields include title, artist, date, date_text, venue (object with name and address), location, sold_out (boolean), image_url, and a tickets array. Each entry in tickets carries variant_id, name (the category label, e.g. 'Stehplatz'), price_text as displayed in the shop, and a numeric price field. Doors and start times are returned as shown on the detail page.
Coverage and Freshness
The API reflects whatever is currently listed in the shop — only upcoming shows appear, matching the shop's own display. Shows that are sold out are still returned with sold_out: true, so you can track availability changes over time by polling. Historical or past events are not retained once they leave the shop's listing.
The Moritz Neumeier API is a managed, monitored endpoint for shop.moritzneumeier.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when shop.moritzneumeier.de 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 shop.moritzneumeier.de 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 tour calendar widget that polls
list_tour_datesand highlights sold-out shows using the availability field - Send ticket availability alerts by comparing
sold_outstatus across periodic calls tolist_tour_dates - Filter shows by program name (e.g. 'Schund & Asche') using the
programparameter to track a specific tour leg - Display ticket categories and prices per show by calling
get_event_detailswith the returnedticket_url - Aggregate venue and city data across all tour dates to map the geographic spread of upcoming shows
- Discover all active program filter chips via the
programsarray to keep filter UIs in sync with the shop
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does shop.moritzneumeier.de have an official developer API?+
What does the `program` filter in `list_tour_dates` accept, and how do I find valid values?+
program parameter is matched case-insensitively against the shop's current filter chips. The programs array in every list_tour_dates response lists all valid {name, id} pairs at the time of the call, so you can read current options before filtering rather than hardcoding values.Are past or archived shows available through the API?+
Does `get_event_details` return seating maps or individual seat selection data?+
name), prices, and variant_id for each purchasable option, but does not expose seating maps or row/seat-level data. You can fork this API on Parse and revise it to add that endpoint if the shop exposes seat-level detail pages.How does `sold_out` behave for a show that is partially sold out — some ticket categories remaining?+
sold_out is a single boolean on the event level, set to true when the shop displays a sold-out notice for the show as a whole. Partial availability at the ticket-category level within get_event_details is reflected in the individual tickets array entries, but the API does not provide a per-category availability boolean beyond what the shop surfaces.