RunSignup Race Scraper avatar

RunSignup Race Scraper

Pricing

from $4.00 / 1,000 basic races

Go to Apify Store
RunSignup Race Scraper

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

Hypebridge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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?

DataDescription
Race identityName, canonical URL, race ID, logo, and public contact-form link
Dates and locationNext and previous dates, timezone, street, city, state, ZIP code, and country
RegistrationOpen status, event-level registration windows, current price, next price, and price-change date
Sub-eventsEvent name, type, distance, start/end time, giveaway options, and returning-event links
Race informationDescription plus sections such as packet pickup, maps, parking, and results
Public linksOrganizer website, results URL, and public Facebook identifiers when available
SponsorsSponsor 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

  1. Open RunSignup Race Scraper in Apify.
  2. Keep the default https://runsignup.com/Races URL or paste a filtered search/race URL.
  3. Set Maximum races to control the amount of data and cost.
  4. Enable Get sponsor rosters only when you need sponsor data; those checks are intentionally sequential and take longer.
  5. 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

ParameterDefaultDescription
startUrlsRunSignup races directoryUp to 100 search or race URLs
maxRaces100Global unique-race cap; maximum 50,000
getSponsorsfalsePerform bounded sponsor checks for discovered races
states[]Two-letter US state or Canadian province codes
countryUSRegion set and output post-filter: US, CA, or any
startDate, endDatetoday, +1 yearAbsolute or relative date window
eventTypes[]One or more RunSignup discipline filters
nameQueryRace-name filter for search inputs
minDistance, maxDistanceNumeric distance bounds
zipcode, radius—, 25US ZIP-centred radius search
modifiedSinceIncremental refresh filter
includeInfoSectionstrueInclude public information sections at no extra request cost
maxSponsorLookups200Hard 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.

EventCharged when
race-basicA race is saved without a completed sponsor lookup
race-detailedA 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 states for 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.

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.

Yes. TriSignup, BikeSignup, and GiveSignup links are accepted and normalized to the canonical RunSignup race record.

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.