Four Corners Events Scraper
Pricing
from $1.79 / 1,000 results
Four Corners Events Scraper
Collect events from Four Corners' What's on pages and receive structured records with titles, event types, dates, times, images, ticket links and descriptions. Use a type-filtered listing or a single event page, and optionally add past event pages listed in the sitemap.
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
a day ago
Last modified
Categories
Share
Returns: one row per Four Corners event with title, eventTypes, dateText, startDate, endDate, startTime, ticketUrl and description.
Input: {"startUrls": [{"url": "https://www.fourcornersfilm.co.uk/whats-on"}], "includePastEvents": true, "maxItems": 5}
Best for: London arts event calendars and listings sites, tracking new exhibitions and screenings, and research on the venue's programme since 2016.
{"title": "In Solidarity: Participants Film Screening","eventTypes": ["Talk", "Film screening"],"dateText": "Thu 15 October 2026 | 18:30","startDate": "2026-10-15","startTime": "18:30","ticketUrl": "https://www.outsavvy.com/event/39897/in-solidarity-participants-film-screening","sourceUrl": "https://www.fourcornersfilm.co.uk/whats-on/in-solidarity-participants-film-screening-1"}
What does Four Corners Events Scraper do?
Four Corners Events Scraper is a Four Corners scraper that collects the events published on the What's on pages of fourcornersfilm.co.uk, the website of Four Corners, a film centre in Bethnal Green. It reads each event's own page and gives you one clean row per event: the title, the event type labels (exhibition, talk, film screening, training, project, open call and so on), the date line as the site shows it, ISO start and end dates, the start time when there is one, the main image, the booking link and the full event text.
You can point it at the current What's on listing, at the listing filtered to one event type (for example only film screenings), or at single event pages. Switch on past events and it also walks the site's sitemap, which lists every event page back to 2016, so you can build a full archive of the programme in one run. There is no official Four Corners API for this data; this Actor works as a simple Four Corners API: send a start URL, get structured JSON back.
It reads only public pages, needs no login and no account on the site, and is gentle: about one request per second.
What data can you get from Four Corners?
Every record comes from the event's detail page. Fields that a page doesn't have are null, never invented.
| Field | Description | Example |
|---|---|---|
id | Stable ID of the event: its URL slug, unique within a run | heartfield-one-man-s-war |
title | Event title as shown on the event page | Heartfield: One Man’s War |
eventTypes | Event type labels from the page | ["Talk", "Film screening"] |
dateText | Date line as the site shows it, with the time after | when given | Thu 15 October 2026 | 18:30 |
startDate | First date in dateText, as YYYY-MM-DD | 2026-10-15 |
endDate | Date after the dash in dateText, as YYYY-MM-DD; the same as startDate for one-day events | 2026-10-15 |
startTime | Start time (HH:MM, London time) when the date line gives one | 18:30 |
imageUrl | Absolute URL of the event's main image | https://www.fourcornersfilm.co.uk/uploads/...png |
ticketUrl | First booking, ticket or registration link in the event text | https://www.outsavvy.com/event/39897/... |
description | Full event text, one paragraph or heading per line | This exhibition revisited the father of photomontage... |
slug | URL slug of the event page, the part after /whats-on/ | heartfield-one-man-s-war |
sourceUrl | Event page the record was read from | https://www.fourcornersfilm.co.uk/whats-on/heartfield-one-man-s-war |
scrapedAt | When the record was scraped (ISO 8601, UTC) | 2026-10-12T19:55:11.765Z |
Archive coverage varies: older pages may lack images, booking links or times, and a few descriptions contain only a single character. Missing fields remain null; descriptions are returned as published.
How to use Four Corners Events Scraper
- Open Four Corners Events Scraper in Apify Console and go to the Input tab.
- In Start URLs, keep the prefilled What's on listing, or paste the listing with a type filter, or paste one or more event page URLs.
- Turn on Include past events if you want the archive too, and set Maximum results.
- Click Start. A run with the default settings finishes in well under a minute; a full archive of around 160 events takes about three minutes.
- Open the Output tab to see the events as a table, or export them as JSON, CSV, Excel, XML or RSS.
Tips:
maxItemsis one budget shared by all start URLs. Current listing events are saved first, then past events from the sitemap, so a smallmaxItemsgives you what is on now.- The same event is saved only once, even when two start URLs (for example the full listing and a filtered one) both list it.
- To collect only one kind of event, use the listing's type filter, for example
https://www.fourcornersfilm.co.uk/whats-on?type=film-screening. With past events switched on, the archive is filtered to the same type. - Schedule the Actor daily or weekly on the Schedules tab to catch new events as soon as they are published.
Input
Optional filters combine with your targets and listing type filter. dateFrom and dateTo use inclusive YYYY-MM-DD bounds: an exhibition spanning the window qualifies even if it began earlier. Either bound can stand alone. When a date filter is active, events without a parsed start date are excluded. keyword matches a literal phrase in title or description, ignoring case and normalizing Unicode. Empty values preserve the existing behavior.
For repeat collection, paste previously saved id values into excludeIds. Known slugs are skipped before fetching their detail pages; they consume neither result charges nor the shared maxItems budget. Remove an ID to fetch updates to that event. Filters apply to direct event URLs as well as listings and archive events. Archive filtering still requires includePastEvents: true and a valid listing. A selective filter may inspect many pages before finding a match; a run with no results stops searching after approximately 70 seconds and succeeds with guidance to loosen the filters.
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array of URLs | Yes | What's on listing (https://www.fourcornersfilm.co.uk/whats-on), the listing with ?type=<slug>, or event pages (https://www.fourcornersfilm.co.uk/whats-on/<event-slug>). Strings or {"url": ...} objects; bare event slugs such as heartfield-one-man-s-war also work. |
includePastEvents | boolean | No | Also return past events from the sitemap, after the current ones. Needs a listing start URL that loads. Default false; directly supplied historical event pages still work. Prefill true plus maxItems: 5 returns a small sample. |
dateFrom | string | No | Inclusive lower date bound on event overlap, YYYY-MM-DD. |
dateTo | string | No | Inclusive upper date bound on event overlap, YYYY-MM-DD. |
keyword | string | No | Literal phrase matched in title or description, ignoring case. |
excludeIds | string array | No | Previously saved event IDs to skip before fetching. |
maxItems | integer | No | Maximum number of events across all start URLs, 1-10000, default 50. |
proxyConfiguration | object | No | Proxy settings. Default: no proxy (the site answers direct requests). Blocked requests are retried through the proxy you set on a new IP. |
The type filter accepts the slugs the site uses: exhibition, guest-exhibition, talk, training, project, artist-support, film-screening and open-call.
What happens with unusual input: a URL on another website, or a Four Corners page that isn't a What's on page, is skipped with an error in the log. An event page that no longer exists (HTTP 404) returns no row for that URL. If nothing usable is left, the run still ends successfully with 0 results and a status message that says which URL to fix. Past events are only added when a real What's on listing loaded, so a dead start URL never fills your dataset with the archive.
{"startUrls": [{ "url": "https://www.fourcornersfilm.co.uk/whats-on" },{ "url": "https://www.fourcornersfilm.co.uk/whats-on/heartfield-one-man-s-war" }],"includePastEvents": true,"maxItems": 50,"proxyConfiguration": { "useApifyProxy": false }}
Output
Each event is one item in the run's dataset. These two items come from a real run, one archive exhibition and one current film screening:
[{"id": "heartfield-one-man-s-war","slug": "heartfield-one-man-s-war","title": "Heartfield: One Man’s War","eventTypes": ["Exhibition"],"dateText": "Thu 31 October 2019 – Sat 8 February 2020","startDate": "2019-10-31","endDate": "2020-02-08","startTime": null,"imageUrl": null,"ticketUrl": null,"description": "This exhibition revisited the father of photomontage, John Heartfield. Armed with scissors, paste and acerbic wit, Heartfield used art as a political weapon. Risking his life under Hitler’s Third Reich, he subverted Nazi imagery to reveal the political threats of 1930s Germany.\n33 of Heartfield’s scathingly satirical artworks were shown alongside a fascinating collection of historic artefacts.\nThis exhibition was curated by Four Corners in collaboration with John Hyatt.\nSupported using public funding by the National Lottery through Arts Council England, the Barry Amiel & Norman Melburn Trust and the Paul Mellon Centre. Part of Insiders/Outsiders Festival, which celebrates the contribution of refugees from Nazi Europe to British culture.","sourceUrl": "https://www.fourcornersfilm.co.uk/whats-on/heartfield-one-man-s-war","scrapedAt": "2026-10-12T19:55:11.765Z"},{"id": "in-solidarity-participants-film-screening-1","slug": "in-solidarity-participants-film-screening-1","title": "In Solidarity: Participants Film Screening","eventTypes": ["Talk", "Film screening"],"dateText": "Thu 15 October 2026 | 18:30","startDate": "2026-10-15","endDate": "2026-10-15","startTime": "18:30","imageUrl": "https://www.fourcornersfilm.co.uk/uploads/1790010977.6195/In%20solidairty_Detail%20Page.png","ticketUrl": "https://www.outsavvy.com/event/39897/in-solidarity-participants-film-screening","description": "Image credit: The Battle of Brick Lane by Nileema Yesmin\nIn Solidarity: Participants Film Screening\nThursday 15th October 2026 at 6:30 PM\nBook tickets here\nThis evening screening event showcases the work of six local people who created short films inspired by the Battle of Cable Street as part of the East End Stories \"In Solidarity\" project.\nFilms by Shirin Begum, Fela Callahan, Hester Gallen, George Ritchie, and Nileema Yesmin.\nEast End Stories explores radical histories in East London, using photography and film. The project is supported through the London Borough of Tower Hamlets Mayor's Community Grants Programme.\nAs part of our Solidarity on the Streets exhibition (2 Oct - 31 Oct 2026) Four Corners is hosting events to discuss the legacy of the Battle of Cable Street and activism against racism, fascism and exclusion.","sourceUrl": "https://www.fourcornersfilm.co.uk/whats-on/in-solidarity-participants-film-screening-1","scrapedAt": "2026-10-12T19:55:12.653Z"}]
You can download the dataset as JSON, CSV, Excel, XML or RSS from the Output tab, or read it through the Apify API.
How much does it cost to scrape Four Corners?
Four Corners Events Scraper is charged per result: you pay for each event saved to the dataset and nothing for URLs that return no event. maxItems caps how many results a run can return, and so caps the charge. See the Pricing tab for the current price. Because the site is small, even a full archive run returns only around 160 events.
Use with AI agents (MCP)
Connect Four Corners Events Scraper to Claude, Cursor or any MCP client through the Apify MCP server:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=axiomworks/four-corners-events-scraper"}}}
Example prompts:
- "What's on at Four Corners in Bethnal Green this month? List the title, dates and booking link for each event."
- "Find every film screening Four Corners has held since 2016 and give me a table of titles and dates."
- "Get the Four Corners exhibitions that are running now and summarise each description in one sentence."
For a quick sample, send {"startUrls":[{"url":"https://www.fourcornersfilm.co.uk/whats-on"}],"includePastEvents":true,"maxItems":5}. This is the prefill tested locally with five live records. For one event, {"startUrls":["heartfield-one-man-s-war"],"maxItems":1} accepts its slug directly. The schema prefill is a Console example; API and MCP callers must supply startUrls themselves. Omit includePastEvents to use its default false; that restricts listing discovery to current events but still accepts a historical event URL.
The agent sends a start URL and gets the same JSON rows as the dataset, so it can filter by eventTypes, sort by startDate, or link to ticketUrl directly.
Integrations and API
Run Four Corners 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/four-corners-events-scraper").call(run_input={"startUrls": [{"url": "https://www.fourcornersfilm.co.uk/whats-on"}],"includePastEvents": True,"maxItems": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["startDate"], item["title"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('axiomworks/four-corners-events-scraper').call({startUrls: [{ url: 'https://www.fourcornersfilm.co.uk/whats-on' }],includePastEvents: true,maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
cURL
curl -X POST "https://api.apify.com/v2/acts/axiomworks~four-corners-events-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://www.fourcornersfilm.co.uk/whats-on"}], "maxItems": 50}'
The Integrations tab connects the Actor to Make, Zapier, n8n, Google Sheets, Slack and webhooks, so new events can flow straight into a spreadsheet or a calendar tool after each scheduled run.
FAQ
How many events does the What's on listing have? The current listing is small, usually a handful of exhibitions, screenings, talks and courses (six when this Actor was built). Turn on past events to add the archive of roughly 160 event pages back to 2016.
Why did my run return 0 results?
The status message says why. Usually the start URL points at an event page that was removed, at a page outside What's on, or at a listing type with nothing scheduled right now. Check the URL in a browser. For an empty filtered listing, remove or change ?type=; alternatively switch on past events with a listing URL to get archive events of that type. A dead event URL does not trigger an archive fallback.
Why do some events have no start time or end date of their own?
Exhibitions and courses run over a date range without a time, so startTime is null. One-day events have no second date, so endDate is the same as startDate. The original date line is always in dateText.
Why is ticketUrl empty for many events?
Only events that link to a booking page (for example OutSavvy or Eventbrite) have one. Free exhibitions and most archive pages have no booking link.
How fresh is the data? Every run reads the live website, so the data is as current as the site. Schedule runs to keep a calendar up to date.
Do I need a proxy? No. The site answers direct requests. Challenge detection checks the page title and visible text, so ordinary pages that load an anti-bot script are not treated as blocked. If a request is ever blocked, it is retried with backoff; set a proxy in the input if blocks keep happening.
Can I scrape a single event?
Yes. Put its page URL (https://www.fourcornersfilm.co.uk/whats-on/<event-slug>) in Start URLs. Each event page returns one row.
Is it legal to scrape Four Corners?
This Actor collects only publicly available event information that anyone can read on the Four Corners website without logging in. It doesn't collect personal data beyond names that appear in public event descriptions. You are responsible for how you use the data, including any rules on personal data such as the GDPR, and for respecting the site's terms. This Actor is an independent tool and is not affiliated with, endorsed by or connected to Four Corners. If you are unsure about your use case, ask a lawyer.
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.