Conway Hall Event Scraper
Pricing
from $1.79 / 1,000 results
Conway Hall Event Scraper
Collects public events from Conway Hall’s What's On page, archived listings or individual event pages. Results include titles, series, categories, dates, descriptions, images and ticket links; optional event-page visits add time, doors-open, age, price and room information.
Pricing
from $1.79 / 1,000 results
Rating
0.0
(0)
Developer
Axiom Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Returns: one row per Conway Hall event with id, title, series, categories, startDate, room and url.
Input: {"startUrls": [{"url": "https://www.conwayhall.org.uk/whats-on/"}], "maxItems": 10}
Best for: London event listings and calendars, programme monitoring for a venue, and research on past talks and concerts.
{"id": "53682","title": "Inside the World of The Beatles, with Gary Kemp, Simon Halfon & Tom Holland","series": "5x15","categories": ["talks-debates"],"startDate": "2026-10-13 19:00:00","room": "Main Hall","url": "https://www.conwayhall.org.uk/whats-on/event/inside-the-world-of-the-beatles-with-gary-kemp-simon-halfon-tom-holland/"}
What does Conway Hall Events Scraper do?
Conway Hall Events Scraper collects the public event programme of Conway Hall, the venue on Red Lion Square in London, and turns it into clean rows you can export or call from an API. It reads the What's On page (every upcoming event on one page), the archived-events listing (past events, 48 per page, newest first) and single event pages. No login is needed: everything it returns is visible to any visitor of conwayhall.org.uk.
Each row is one event. From the listing card it takes the title, the series or presenter shown before the title (for example 5x15 or Sunday Concerts), the category slugs, the start date and time, the end date from the event's structured data, the short description, the attendance mode, the image and the Ticketsolve booking link. With includeDetails on (the default) it also opens each event's own page and adds the full time range, the doors-open time, the age recommendation, the price text and the room inside the building.
Use it as a Conway Hall scraper for a city events calendar, to watch the venue's programme for new talks or concerts, or as a simple Conway Hall API for past events when you research speakers, series or ticket price levels over time.
What data can you get from Conway Hall?
| Field | Description | Example |
|---|---|---|
id | WordPress post ID as a string, unique within a run | 53682 |
wpPostId | Conway Hall's WordPress post ID for the event, as a number | 53682 |
url | Link to the event's page | https://www.conwayhall.org.uk/whats-on/event/... |
title | Event title without the series prefix | Inside the World of The Beatles, with Gary Kemp, Simon Halfon & Tom Holland |
series | Series or presenter shown before the title, or null | 5x15 |
categories | Category slugs from the What's On listing | ["talks-debates"] |
startDate | Start, YYYY-MM-DD HH:MM:SS, London local time | 2026-10-13 19:00:00 |
endDate | End, same format, from the event's structured data | 2026-10-13 20:30:00 |
dateText | Date and start time as the card shows it | 13th October 2026 · 7:00pm |
description | Short summary as plain text | Musician Gary Kemp and filmmaker Simon Halfon explore... |
attendanceMode | How to attend, when the site says | In person |
attendanceText | Complete attendance line, including room and virtual options | Brockway Room | Virtual event |
eventStatus | schema.org status without the URL prefix | EventScheduled |
imageUrl | Event image | https://www.conwayhall.org.uk/wp-content/uploads/... |
ticketUrl | Ticketsolve booking link, or null | https://conwayhall.ticketsolve.com/ticketbooth/shows/1173675839 |
ticketsolveShowId | Digits after shows/ in the ticket link | 1173675839 |
venueName | Venue name from the structured data | Conway Hall |
address | Street, locality and postcode | 25 Red Lion Square, London, WC1R 4RL |
timeText | Date with start and end time (event page) | 13th October 2026 · 7:00pm - 8:30pm |
doorsOpen | Doors-open time (event page) | 6:30pm |
ageRecommendation | Age guidance (event page), or null | 16+ |
priceText | Ticket prices as written on the event page, or null | Venue-written ticket information |
room | Room inside Conway Hall (event page), or null | Main Hall |
priceMin | Lowest ticket price in GBP parsed from priceText, excluding the venue levy, or null | 10 |
priceMax | Highest ticket price in GBP parsed from priceText, or null | 70 |
isFree | True when the price text says free and lists no amount, false when amounts are listed, null without details | false |
isOnline | True when the attendance line mentions a virtual or online option, or null | false |
scrapedAt | When the row was collected, ISO 8601 UTC | 2026-10-12T19:54:08.265Z |
sourceUrl | Listing or event page the row came from | https://www.conwayhall.org.uk/whats-on/ |
The last five event-page fields (timeText, doorsOpen, ageRecommendation, priceText, room) are filled only when includeDetails is on. The age, price and room lines are free text written by the venue's editors, so some events don't have them; those fields are then null.
How to use Conway Hall Events Scraper
- Open the Actor in Apify Console and go to the Input tab.
- Keep the default start URL
https://www.conwayhall.org.uk/whats-on/for every upcoming event, or paste the archived-events page (or one of its/page/<n>/pages) for past events, or paste one or more single event pages. - Optionally pick categories (for example Film and Workshops) or type a search term such as
5x15to keep only matching events. - Set
maxItemsto the number of events you want in total. The run stops as soon as that many rows are saved. - Click Start. When the run finishes, open the Output tab and export the rows as JSON, CSV, Excel, XML or HTML, or read them through the API.
Tips:
- The What's On page lists every upcoming event at once, so a run with the default URL usually returns 20 to 40 events.
- The archive is walked page by page from the page you give, newest first, until
maxItemsis reached or the archive ends. Start from/whats-on/archived-events/page/10/to skip recent history. - Turn
includeDetailsoff when you only need the listing fields. The Actor then makes about one request per 48 events instead of one per event, so large archive runs finish much faster. - Conway Hall does not block normal traffic, so the default is no proxy. If a run reports blocked requests, switch on Apify Proxy in the proxy settings and the Actor retries on a new IP.
Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array of {url} | No | Conway Hall URLs: the What's On page, the archived-events page or any /page/<n>/ of it, or single event pages /whats-on/event/<slug>/. Empty means the What's On page. |
categories | array of strings | No | Keep only events in any of these categories: walks, exhibitions, talks-debates, concerts, film, festivals, workshops. Empty (default) keeps all. Applies to listing pages, not single event URLs. |
searchTerm | string | No | Keep only events whose title, series or description contains this text, case-insensitive. Empty (default) means no text filter. |
includeDetails | boolean | No | Default true: open each event page for timeText, doorsOpen, ageRecommendation, priceText and room. |
maxItems | integer | No | Maximum number of events across all start URLs, 1-10000, default 50. |
proxyConfiguration | object | No | Proxy settings. Default: no proxy. |
Categories and the search term work together: an event must match both when both are set. Both are applied to the events the Actor reads from listing pages; a single event URL you give is always returned. maxItems is one budget shared by all start URLs, counted after the filters.
{"startUrls": [{ "url": "https://www.conwayhall.org.uk/whats-on/" },{ "url": "https://www.conwayhall.org.uk/whats-on/archived-events/" }],"categories": ["concerts", "talks-debates"],"searchTerm": "","includeDetails": true,"maxItems": 100,"proxyConfiguration": { "useApifyProxy": false }}
A URL outside conwayhall.org.uk fails the run straight away with a message, because it can never work. A Conway Hall URL that doesn't exist (a mistyped event slug, an archive page past the end) is logged, the other URLs still run, and a run where nothing worked ends with 0 rows and a status message saying what to check.
Output
attendanceText preserves the complete attendance line from the listing modal or standalone event header. It includes virtual-event options and room names when published, while attendanceMode keeps its existing location-icon extraction. Missing attendance lines remain null; the Actor does not infer attendance from the ticket link or event description.
Selected fields from one real local run on 13 October 2026 with the prefill input (10 upcoming events, details enabled). The complete dataset also contains priceText, copied from the venue when available.
{"id": "53682","wpPostId": 53682,"url": "https://www.conwayhall.org.uk/whats-on/event/inside-the-world-of-the-beatles-with-gary-kemp-simon-halfon-tom-holland/","title": "Inside the World of The Beatles, with Gary Kemp, Simon Halfon & Tom Holland","series": "5x15","categories": ["talks-debates"],"startDate": "2026-10-13 19:00:00","endDate": "2026-10-13 20:30:00","dateText": "13th October 2026 · 7:00pm","description": "Musician Gary Kemp and filmmaker Simon Halfon explore the extraordinary world of The Beatles, in conversation with historian Tom Holland.","attendanceMode": "In person","attendanceText": "In person | No Option","eventStatus": "EventScheduled","imageUrl": "https://www.conwayhall.org.uk/wp-content/uploads/2026/07/Gary-Kemp-850x500-1-445x250.jpg.webp","ticketUrl": "https://conwayhall.ticketsolve.com/ticketbooth/shows/1173675839","ticketsolveShowId": "1173675839","venueName": "Conway Hall","address": "25 Red Lion Square, London, WC1R 4RL","timeText": "13th October 2026 · 7:00pm - 8:30pm","doorsOpen": "6:30pm","ageRecommendation": "16+","room": "Main Hall","scrapedAt": "2026-10-13T15:41:44.168Z","sourceUrl": "https://www.conwayhall.org.uk/whats-on/"}
You can download the dataset in JSON, CSV, Excel, XML, HTML table or RSS format from the Output tab, or read it through the Apify API.
How much does it cost to scrape Conway Hall?
Conway Hall Events Scraper is charged per result. You pay only for the event rows returned, and maxItems caps how many that can be, so you always know the most a run can cost. See the Pricing tab for the current price. Filtering by category or search term happens before rows are saved, so events that don't match are never charged.
Use with AI agents (MCP)
Connect Conway Hall Events Scraper to Claude, Cursor or any MCP client through the Apify MCP server:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=axiomworks/conway-hall-events-scraper"}}}
Example prompts:
- "List every upcoming concert at Conway Hall with its date, room and price."
- "Which Conway Hall talks in the 5x15 series are coming up, and where can I book them?"
- "Get the last 100 past events at Conway Hall without event details and count them by category."
For a small preview, send {"maxItems":10}; omitted startUrls reads upcoming events and includeDetails defaults to true. Use includeDetails false when only listing fields are needed. Both categories and searchTerm filter listings only; single event URLs ignore them. maxItems is shared across all targets after filters and deduplication. A successful empty dataset is not a failed call: clear the filters or choose the archive for past events. For a dead target, correct startUrls; for a persistent block, retry later or enable proxyConfiguration. Do not keep repeating the same empty request.
Integrations and API
Run Conway Hall Events Scraper from your own code with the Apify API. Set APIFY_TOKEN to your Apify API token (send it in the Authorization header, never in the URL).
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("axiomworks/conway-hall-events-scraper").call(run_input={"startUrls": [{"url": "https://www.conwayhall.org.uk/whats-on/"}],"maxItems": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["startDate"], item["title"], item["priceText"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('axiomworks/conway-hall-events-scraper').call({startUrls: [{ url: 'https://www.conwayhall.org.uk/whats-on/' }],categories: ['film'],maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
cURL
curl -X POST "https://api.apify.com/v2/acts/axiomworks~conway-hall-events-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://www.conwayhall.org.uk/whats-on/"}], "maxItems": 50}'
The Integrations tab connects the Actor to Make, Zapier, n8n, Google Sheets, Slack and webhooks. A common setup is a daily schedule on the What's On page that sends new rows to a spreadsheet or a calendar tool, using id to spot events you have already seen.
Once the shared result limit or spending limit is reached, the Actor stops immediately without the pause used between detail batches. Pauses remain between batches that need more requests.
When targets overlap, an event already saved in the run is skipped before its detail page is requested again. This also applies to saved results restored after a restart. Listing runs parse only the needed detail fields on event pages; single event targets retain the full event-page extraction. Block detection examines visible challenge text and page titles, rather than treating an embedded anti-bot script as a blocked page.
FAQ
How many events can I get?
The What's On page holds every upcoming event, usually 20 to 40. The archive goes back several years at 48 events per page, so with maxItems set high you can collect a few thousand past events in one run.
How fresh is the data?
Every run reads the live pages, so rows reflect what Conway Hall shows at that moment. scrapedAt records when each row was collected.
Why are the start and end dates not in UTC? They are copied exactly as the site publishes them, in London local time without an offset. That keeps them identical to what visitors see. Convert them in your own code if you need UTC.
Why is categories empty for some rows?
Categories come from the What's On listing. A single event URL that is no longer on that page (a past event) has no category on its own page, so the list is empty.
Why is priceText, ageRecommendation or room null?
These come from free text on each event page, and the venue doesn't write them for every event, for example many concerts have no age line. They are also null when includeDetails is off.
Why did my run return 0 results? Usually the filters matched nothing (try fewer categories or a shorter search term), or a URL was mistyped. Conway Hall answers missing pages with an error page, which the Actor reports in the log and the status message. The rest of your URLs still run.
Do I need a proxy? No. The site serves normal traffic without blocking. If you ever see blocked requests in the log, turn on Apify Proxy and the Actor retries each blocked request on a new IP.
Can I schedule it? Yes. Use the Schedules feature in Apify Console to run it daily or weekly and connect the output to your tools through the Integrations tab.
Is it legal to scrape Conway Hall?
This Actor reads only public pages of conwayhall.org.uk that any visitor can open without an account, and it does not collect personal data beyond the names of speakers and performers that the venue itself publishes in event titles and descriptions. Scraping public web data is generally allowed, but you are responsible for how you use it, including the venue's terms of use and data protection law such as the GDPR when names are involved. If you are unsure, ask a lawyer. This Actor is an independent tool and is not affiliated with or endorsed by Conway Hall Ethical Society.
Feedback
Found a bug or need a field that isn't here? Open an issue on the Issues tab and we'll look at it. Tell us the input you used and what you expected, and we'll get back to you.