TheaterMania APItheatermania.com ↗
Access Broadway show listings, touring productions, theater news, and venue details from TheaterMania.com via a structured JSON API with 7 endpoints.
What is the TheaterMania API?
The TheaterMania API exposes 7 endpoints covering Broadway show listings, touring productions, city-specific theater schedules, and news articles from TheaterMania.com. The get_show_detail endpoint returns venue name, address, ticket URL, and a full description for any specific production. Listings include performance dates, discount info, and direct ticket links, making it straightforward to build theater discovery tools or content feeds.
curl -X GET 'https://api.parse.bot/scraper/358e12ab-93aa-4ba9-aa12-869492e2e4d9/get_broadway_shows?page=1' \ -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 theatermania-com-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: TheaterMania SDK — browse shows, search, drill into details."""
from parse_apis.TheaterMania_API import TheaterMania, ShowSummary, Show, Tour, NewsArticle, City, ShowNotFound
client = TheaterMania()
# Browse current Broadway shows
for show in client.show_summaries.list_broadway(limit=5):
print(show.title, show.performance_dates, show.ticket_url)
# Search for shows by keyword and drill into the first result
result = client.show_summaries.search(query="wicked", limit=1).first()
if result:
detail = result.details()
print(detail.title, detail.venue, detail.venue_address)
# Browse shows in a specific city via constructible City
chicago = client.city(slug="chicago-theater")
for show in chicago.shows.list(limit=3):
print(show.title, show.category)
# List touring productions
for tour in client.tours.list(limit=3):
print(tour.title, tour.category)
# Get latest theater news
for article in client.news_articles.list(limit=3):
print(article.title, article.category)
# Typed error handling on show detail lookup
try:
bad_show = client.shows.get(url="https://www.theatermania.com/shows/nonexistent_99999/")
print(bad_show.title)
except ShowNotFound as exc:
print(f"Show not found: {exc.url}")
print("exercised: show_summaries.list_broadway / search / details / city.shows.list / tours.list / news_articles.list / shows.get")
Retrieve a paginated list of Broadway shows. Each page returns up to ~24 shows with title, URL, image, category, performance dates, discount info, and ticket URL. Returns an empty array when page exceeds available results.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
{
"type": "object",
"fields": {
"count": "integer, number of shows returned on this page",
"paged": "integer, current page number",
"shows": "array of show objects with title, url, image, type, category, performance_dates, discount_info, and ticket_url"
},
"sample": {
"data": {
"count": 24,
"paged": 1,
"shows": [
{
"url": "https://www.theatermania.com/shows/new-york-city-theater/broadway/the-fear-of-13_1818477/",
"type": "show",
"image": "https://www.theatermania.com/wp-content/uploads/sites/4/2026/01/Screenshot-2026-01-13-at-10.06.55-AM.png?w=640",
"title": "The Fear of 13",
"category": null,
"ticket_url": "https://www.telecharge.com/the-fear-of-13-tickets?AID=AFF000009000",
"discount_info": null,
"performance_dates": "Final performance: June 28, 2026"
}
]
},
"status": "success"
}
}About the TheaterMania API
Show Listings and Location Coverage
The get_broadway_shows endpoint returns a paginated list of Broadway productions, each with a title, url, image, type, category, performance_dates, discount_info, and ticket_url. For productions outside New York, get_shows_by_location accepts a location slug (such as chicago-theater or los-angeles-theater) and returns the same shape of show objects. To discover which slugs are valid, call get_all_cities first — it returns a flat array of supported city/market slugs that feed directly into the location parameter.
Show Detail and Search
When you need the full record for a specific production, get_show_detail accepts either a full URL or a relative path from TheaterMania and returns venue, venue_address, venue_url, ticket_url, description, and a metadata object with additional date and detail fields. The search_shows endpoint accepts a query string (for example, hamilton or wicked) and returns a result array with the same fields as the listing endpoints, covering shows, news, and articles in one call.
Tours and News
get_tours retrieves paginated touring productions with the same field set as Broadway listings — useful for tracking which shows are currently on the road. get_news_articles returns theater news with title, url, image, category, and type per article. All paginated endpoints accept an integer page parameter and return both count and paged in the response so you can iterate until the array comes back empty.
The TheaterMania API is a managed, monitored endpoint for theatermania.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when theatermania.com 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 theatermania.com 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?+
- Aggregating Broadway and regional theater listings with discount info and ticket links for an event discovery platform
- Building a tour-tracker that surfaces which productions are currently on the road via
get_tours - Populating a city-specific theater guide using
get_shows_by_locationwith slugs fromget_all_cities - Enriching a show record with venue address, description, and ticket URL via
get_show_detail - Running a theater news feed with article titles, images, and categories from
get_news_articles - Implementing a site-wide search across productions and editorial content using
search_shows
| 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 TheaterMania have an official developer API?+
What does `get_show_detail` return beyond what the listing endpoints include?+
get_show_detail adds fields not present in paginated lists: venue, venue_address, venue_url, description, and a metadata object containing additional dates and show details. It accepts either a full TheaterMania URL or a relative path, so you can pass the url field from any listing result directly.How does pagination work across the listing endpoints?+
get_broadway_shows, get_shows_by_location, get_tours, get_news_articles) accept an integer page parameter and return count and paged in the response. When page exceeds the available results, the endpoint returns an empty array — so incrementing page until the array is empty is the intended iteration pattern.Does the API return user reviews or ratings for shows?+
Can I filter shows by genre, date range, or price within a single endpoint?+
get_broadway_shows, get_shows_by_location) support only page-based pagination; there are no query parameters for genre, date, or price filtering. The category and performance_dates fields are available in the response, so client-side filtering is possible after retrieval. You can fork this API on Parse and revise it to add server-side filter parameters if you need more targeted queries.