STS Timing Results Scraper
Pricing
from $0.01 / 1,000 results
STS Timing Results Scraper
Extract structured runner results from generated STS Timing result pages on sts-timing.pl, including Polish road races, marathons, mass runs, and major Warsaw sport events.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
Alex Demeniuk
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
What does STS Timing Results Scraper do?
STS Timing Results Scraper extracts structured race results from generated result pages hosted on the STS Timing platform at https://sts-timing.pl. It is designed for Polish road races whose official results are published through the STS Timing infrastructure, and it returns normalized runner-level dataset items that can be used through the Apify platform, API, schedules, integrations, and exports.
STS Timing hosts results for both smaller local races and some of the most recognizable and prestigious running events in Poland, including major Warsaw races, constitutional and independence-day runs, and other high-attendance public events when their result pages are published through the same infrastructure. Some of these races can exceed 20,000 participants.
This Actor does not scrape the general event listing page itself. Instead, it expects the final generated results-page URL — the page that appears only after choosing the distance, selecting visible fields, and clicking Generuj on the STS Timing event page.
Why use STS Timing Results Scraper?
This Actor is useful when there is a need to collect race-result data from STS Timing in a structured format instead of copying rows manually from the browser.
Typical use cases include:
- building structured datasets of race results,
- collecting runner-level finish data for analysis,
- exporting results to JSON, CSV, or Excel through Apify,
- supporting sports analytics, event research, or result archiving workflows,
- working with large public result tables that may contain thousands or even tens of thousands of participants,
- reusing the same extraction flow through API calls or scheduled runs.
The Actor normalizes common result columns such as place, bib number, full name, category, city, sex, and times, and it can optionally keep the original source columns as raw_* fields.
How to use STS Timing Results Scraper
- Open the STS Timing results directory:
https://sts-timing.pl/wyniki/ - Find a race whose results are hosted on STS Timing.
- Open the race page.
- In the left-side menu, click Generuj wyniki.
- At the top of the page, choose the correct Dystans if the event has more than one distance.
- In Wyświetl / Show, select the columns that should appear in the generated result table.
- Click Generuj.
- Confirm that the displayed result table is exactly the one you want.
- Copy the URL of that final generated page.
- Paste that URL into the Actor input and run the Actor.
This step matters because the Actor parses the generated results table page itself, not the event overview page.
Input
Use the Input tab in Apify Console.
Input fields
url— required; the full generated results-page URL fromlive.sts-timing.plinclude_raw— optional; when enabled, the Actor also includes the original source columns prefixed withraw_
Important input rule
The input must be the URL of the final generated results page.
A valid example is:
{"url": "https://live.sts-timing.pl/biegkonstytucji2026/wyniki.php?search=1&dystans=1&filter[country]=&filtr=false&show[]=1&show[]=2&show[]=3&show[]=4&show[]=5&show[]=6&show[]=7&show[]=8&show[]=9&show[]=10&show[]=11&show[]=12&show[]=13&show[]=14","include_raw": false}
Do not paste:
- the main
https://sts-timing.pl/wyniki/listing page, - the race overview page before clicking Generuj wyniki,
- external result pages hosted outside the STS Timing results infrastructure.
Output
The Actor returns one dataset item per visible result row from the generated STS Timing result table.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Output example
{"place": "1","bib_number": "245","full_name": "Sample Runner","name": "Sample","surname": "Runner","city": "Warszawa","country": "POL","team": "Example Team","sex": "M","sex_place": "1","category": "M30","category_place": "1","net_time": "01:12:45","gross_time": "01:12:50"}
If include_raw is enabled, the output also includes original raw source fields such as raw_Imię, raw_Nazwisko, or other visible columns from the generated table.
Data table
| Field | Description |
|---|---|
place | Overall placing in the visible results table |
bib_number | Start or bib number |
full_name | Combined runner name when available |
name | First name |
surname | Last name |
city | Runner city |
country | Runner country |
team | Club or team name |
sex | Runner sex/gender |
sex_place | Place within sex/gender ranking |
category | Category label |
category_place | Place within category |
net_time | Net time |
gross_time | Gross time |
How much does it cost to scrape STS Timing results?
The cost depends on your Apify plan, the pricing model configured for this Actor, and how often you run it.
For most normal result pages, this Actor should be lightweight because it fetches and parses a single HTML results page rather than crawling many pages. Even when the selected event is large, the extraction model remains simple because it works from the generated STS results table page rather than from a multi-page crawl. A good practice is to test with one representative race first, confirm the output, and only then scale usage.
Tips and advanced notes
- Always click Generuj first and confirm the visible table before copying the URL.
- The Actor automatically removes the
sortquery parameter before fetching the page, which helps avoid unstable sorted-result URLs. - The output depends on the visible columns selected on the STS results page.
- Some events on STS Timing are relatively small local races, while others are high-profile national events with very large participant counts.
- If a race has multiple distances or classifications, run the Actor separately for each final generated result view you want to collect.