RunSignup Race Scraper
Pricing
from $4.00 / 1,000 basic races
RunSignup Race Scraper
Extracts public race listings, sub-events, registration fee ladders, price-change dates, race information sections, and sponsor rosters from RunSignup.
Pricing
from $4.00 / 1,000 basic races
Rating
0.0
(0)
Developer
Hypebridge
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
What does RunSignup Race Scraper do?
RunSignup Race Scraper extracts public race listings, sub-events, registration fee ladders, price-change dates, race information sections, and sponsor rosters from RunSignup. It accepts RunSignup search pages and individual race pages, plus equivalent TriSignup, BikeSignup, and GiveSignup URLs.
Use it to build race calendars, watch registration prices, research endurance-event markets, find sponsorship opportunities, or maintain a structured race directory. Results are saved as one record per race, with sub-events and sponsors nested inside it.
What race data can it extract?
| Data | Description |
|---|---|
| Race identity | Name, canonical URL, race ID, logo, and public contact-form link |
| Dates and location | Next and previous dates, timezone, street, city, state, ZIP code, and country |
| Registration | Open status, event-level registration windows, current price, next price, and price-change date |
| Sub-events | Event name, type, distance, start/end time, giveaway options, and returning-event links |
| Race information | Description plus sections such as packet pickup, maps, parking, and results |
| Public links | Organizer website, results URL, and public Facebook identifiers when available |
| Sponsors | Sponsor name, website, logo, and ID when sponsor lookup is enabled |
The sponsors field deliberately distinguishes three states: null means no lookup was requested, [] means the race was checked and has no sponsors, and a populated array contains the confirmed sponsor roster.
How to scrape RunSignup races
- Open RunSignup Race Scraper in Apify.
- Keep the default
https://runsignup.com/RacesURL or paste a filtered search/race URL. - Set Maximum races to control the amount of data and cost.
- Enable Get sponsor rosters only when you need sponsor data; those checks are intentionally sequential and take longer.
- Click Start, then download the Dataset as JSON, CSV, Excel, or HTML.
Large searches are automatically divided into bounded geographic and date windows so the actor can continue beyond RunSignup's per-query result ceiling. The global maxRaces cap always applies across every input URL.
Input examples
Search California races in a date window:
{"startUrls": [{ "url": "https://runsignup.com/Races?state=CA" }],"startDate": "2026-10-01","endDate": "2026-12-31","maxRaces": 500,"getSponsors": false}
Search several regions for selected disciplines:
{"startUrls": [{ "url": "https://runsignup.com/Races" }],"states": ["IL", "IN", "WI"],"eventTypes": ["running_race", "trail_race"],"maxRaces": 1000}
Get one race with its sponsor roster:
{"startUrls": [{ "url": "https://runsignup.com/Race/IL/Chicago/ExampleCityMarathon" }],"maxRaces": 1,"getSponsors": false}
Direct race URLs are always fetched as detailed records and always include a sponsor check, regardless of the global sponsor toggle.
Input reference
| Parameter | Default | Description |
|---|---|---|
startUrls | RunSignup races directory | Up to 100 search or race URLs |
maxRaces | 100 | Global unique-race cap; maximum 50,000 |
getSponsors | false | Perform bounded sponsor checks for discovered races |
states | [] | Two-letter US state or Canadian province codes |
country | US | Region set and output post-filter: US, CA, or any |
startDate, endDate | today, +1 year | Absolute or relative date window |
eventTypes | [] | One or more RunSignup discipline filters |
nameQuery | — | Race-name filter for search inputs |
minDistance, maxDistance | — | Numeric distance bounds |
zipcode, radius | —, 25 | US ZIP-centred radius search |
modifiedSince | — | Incremental refresh filter |
includeInfoSections | true | Include public information sections at no extra request cost |
maxSponsorLookups | 200 | Hard run-duration guard for sponsor checks |
Optional RunSignup API credentials can be supplied as a secret key/secret pair. The actor verifies their available pagination capability at run start and safely falls back to partitioned discovery when necessary.
Output example
{"raceId": 123456,"name": "Example City Marathon","url": "https://runsignup.com/Race/IL/Chicago/ExampleCityMarathon","sourceMode": "search","nextDate": "2026-10-18T00:00:00.000-05:00","address": {"city": "Chicago","state": "IL","countryCode": "US"},"eventCount": 2,"minCurrentPrice": 35,"maxCurrentPrice": 85,"nextRacePriceIncreaseAt": "2026-09-15T00:00:00.000-05:00","events": [{"eventId": 654321,"name": "Half Marathon","distance": "13.1 Miles","currentPrice": 75,"nextPrice": 85,"priceIncreaseAmount": 10,"registrationStatus": "open"}],"sponsors": null,"scrapedAt": "2026-09-04T12:00:00.000Z"}
How much does it cost?
This actor uses pay-per-event pricing. The current dollar price for each event is shown in the Apify run console before you start.
| Event | Charged when |
|---|---|
race-basic | A race is saved without a completed sponsor lookup |
race-detailed | A race is saved after its requested sponsor check, including a confirmed no-sponsors result |
Duplicates, drafts, invalid records, failed writes, and failed direct URLs are not charged. Use maxRaces and maxSponsorLookups as firm spend and runtime controls.
Tips and limitations
- Use filtered search URLs or
statesfor targeted runs; broad searches are complete within the configured date window but require more requests. - Sponsor checks follow RunSignup's one-request-per-second race-page policy and are usually the slowest part of a run.
- Fee timestamps are evaluated in each race's local timezone, so current and upcoming prices stay accurate around midnight.
- This is a public race-prospecting feed, not a race-director email database. Organizer contact is routed through RunSignup's public contact form.
- A very dense state/day can still exceed 1,000 races. The actor reports that rare truncation instead of recursing without a bound.
Related event scrapers
Looking for events from other platforms or need a single unified dataset? Explore our specialized event scrapers:
| Actor | Best For | Key Data Extracted |
|---|---|---|
| Find Events | All-in-one multi-platform search across 16+ event sources | Aggregated & deduplicated events, normalized dates, venues, pricing |
| Eventbrite Scraper | Global concerts, business conferences, festivals & city life | Event search, categories, ticket tiers, performers, organizer info |
| Luma Event Scraper | Tech meetups, hackathons, demo days, startup & Web3 events | Hosts, guest lists, ticket tiers, venue coordinates, calendar links |
| Meetup Scraper | Local community groups, networking, hobbies & recurring clubs | Groups, member counts, event series, RSVPs, organizers, topics |
| Partiful Events Scraper | Social parties, creator gatherings, birthday events & private RSVPs | Guest RSVP status, hosts, event themes, questionnaires, venue details |
| Dice.fm Event Scraper | Live music, club nights, concerts & major music festivals | Lineups, ticket tiers, release phases, door policies, promoters |
| Resident Advisor Scraper | Electronic music, club culture, underground DJs & festivals | Event lineups, promoters, venue directories, RA picks, ticket tiers |
| Shotgun.live Event Scraper | Electronic music, nightlife, techno parties & international club tours | Genres, lineups, dated city sections, venue profiles, ticket prices |
| Posh.vip Event Scraper | Nightlife, exclusive social parties, college & influencer events | Lineups, ticket groups, attendance counts, organizer contact info |
| Xceed Events Scraper | European nightlife, clubs, festivals & electronic music | Ticket tiers, fees, age policies, lineups, venue profiles |
| Fever Events Scraper | Immersive experiences, Candlelight concerts, city tours & exhibits | Sessions, time slots, pricing tiers, user reviews, venue coordinates |
| Showpass Event Scraper | North American events, regional festivals, comedy & venue ticketing | Ticket types, price breakdowns, venue info, organizer details |
| Sympla Events Scraper | Brazilian & Latin American concerts, conferences & Bileto events | Ticket tiers, installment plans, Bileto sectors, organizer info |
| Eventnoire Events Scraper | Black culture events, lifestyle, nightlife, comedy & festivals | Event details, ticketing options, organizer bios, venue profiles |
| Prekindle Event Scraper | Live music venues, indie concerts, comedy shows & regional arts | Deeplinks, venue profiles, organizer links, event descriptions |
| Eventeny Vendor & Market Scraper | Festivals, craft fairs, conventions, artisan markets & vendor expos | Vendor applications, booth pricing, deadlines, sponsor rosters |
| RunSignup Race Scraper | Marathons, 5Ks, triathlons, trail runs & charity endurance races | Registration fee ladders, price change dates, sub-events, sponsors |
| FilmFreeway Festival Scraper | Film festivals, screenplay contests & creative competitions | Submission deadlines, category entry fees, award badges, venues |
FAQ
Can I scrape one RunSignup race page?
Yes. Paste any supported race, information, events, sponsors, or registration URL. The actor resolves it to the canonical race, returns full event details, and checks sponsors.
Does it support TriSignup and BikeSignup links?
Yes. TriSignup, BikeSignup, and GiveSignup links are accepted and normalized to the canonical RunSignup race record.
Is scraping RunSignup legal?
The actor extracts publicly available race data. Always review the source site's terms and applicable laws, and use the data for a legitimate purpose.
Support
- Report bugs or feature requests in the Issues tab.
- Use the API tab for programmatic runs and integrations.
Disclaimer: This actor extracts public information only. Public results may still contain personal data protected by privacy laws. Do not collect or use personal data without a legitimate legal basis; consult qualified counsel if you are unsure.