EnduHub Runner Results Scraper avatar

EnduHub Runner Results Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
EnduHub Runner Results Scraper

EnduHub Runner Results Scraper

Scrape EnduHub runner results for athletes from a TXT file, filtered by distance and date range.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Alex Demeniuk

Alex Demeniuk

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

19 hours ago

Last modified

Categories

Share

Apify Actor for collecting runner results from EnduHub by athlete name, with filters for distance and date range.

Users run it directly in Apify Console by uploading a TXT file with athlete names, selecting a distance, and setting the date interval.

What is EnduHub?

EnduHub is a Polish sports results platform that describes itself as the largest database of sports event results in Poland.

It aggregates and organizes results from running races, triathlons, marathons, and other sports events so athletes can find results, track progress, compare themselves with others, and explore new competitions.

This Actor works with EnduHub athlete search pages and extracts structured race-result data for a list of athlete names.

It is designed for cloud use on Apify, so users configure the run through the Actor input form in the web interface.

What the Actor does

For each athlete from the uploaded TXT list, the Actor:

  • searches EnduHub by athlete name;
  • applies the selected distance filter;
  • applies the selected date range;
  • parses the visible results table;
  • continues collecting older results by moving backward through dates;
  • deduplicates repeated rows;
  • normalizes dates and selected distance labels;
  • computes average pace when possible;
  • stores one dataset item per athlete.

The scraper is designed to continue beyond the newest visible rows by repeatedly narrowing the upper date bound.

This helps collect more results than a single visible search page would provide.

Inside each athlete item, results are sorted from fastest pace to slowest pace, and rows without a computable pace are placed last.

How to use in Apify Console

Open the Actor in Apify Console and fill in the input form.

The form allows you to upload a TXT file, choose a distance from a dropdown, and enter the start and end dates directly in the web UI.

Input fields

  • Athletes TXT file — upload a .txt file with one athlete name per line.
  • Distance — choose the EnduHub distance filter.
  • Date from — lower bound for the search interval, inclusive, in YYYY-MM-DD format.
  • Date to — upper bound for the search interval, inclusive, in YYYY-MM-DD format.

The uploaded TXT file should contain one athlete name per line, for example:

Jan Kowalski
Anna Nowak
Piotr Zielinski

The Actor automatically trims extra spaces, ignores blank lines, and removes duplicate names while preserving the original order from the uploaded file.

Supported distance values

  • "" — All
  • "7" — 5 km
  • "8" — 10 km
  • "20" — 15 km
  • "2" — Half Marathon
  • "1" — Marathon
  • "9" — 0-5 km
  • "10" — 5-20 km
  • "11" — 20-50 km
  • "12" — 50-200 km
  • "13" — Above 200 km

Example cloud input

If you run the Actor through the Apify API, athletesFile can be provided either as plain TXT content or as a file reference generated by Apify file upload fields.

Example with inline TXT content:

{
"athletesFile": "Jan Kowalski\nAnna Nowak\nPiotr Zielinski\n",
"distanceId": "",
"dateMin": "2024-01-01",
"dateMax": "2026-12-31"
}

In Apify Console, you usually do not need to paste raw JSON manually, because the input UI provides a file upload field and separate controls for the other values.

Output

The Actor stores results in the default Apify dataset.

It writes one dataset item per input athlete.

Each dataset item contains these top-level fields:

  • input_name
  • results_count
  • best_event
  • best_date
  • best_result
  • best_distance
  • best_average_pace
  • results

Each entry inside results can include:

  • place
  • bib_number
  • year_of_birth
  • athlete_name
  • athlete_url
  • event_name
  • event_url
  • location
  • result
  • country
  • distance
  • sport
  • date
  • average_pace

Example dataset item

{
"input_name": "Jan Kowalski",
"results_count": 3,
"best_event": "Example Race",
"best_date": "2025-10-12",
"best_result": "01:25:30",
"best_distance": "Half Marathon",
"best_average_pace": "04:03 /km",
"results": [
{
"place": "12",
"bib_number": "145",
"year_of_birth": "1990",
"athlete_name": "Jan Kowalski",
"athlete_url": "https://enduhub.com/...",
"event_name": "Example Race",
"event_url": "https://enduhub.com/...",
"location": "Warsaw",
"result": "01:25:30",
"country": "Poland",
"distance": "Half Marathon",
"sport": "Running",
"date": "2025-10-12",
"average_pace": "04:03 /km"
}
]
}

Data normalization

The Actor normalizes several values before saving output.

Dates are converted to YYYY-MM-DD when parsing succeeds.

Selected Polish distance labels such as Półmaraton and Maraton are normalized to Half Marathon and Marathon.

Average pace is computed from result time and distance whenever both values are usable.

If pace cannot be computed, the average_pace field is left empty.

Rows with missing or non-computable pace are still included in the output, but they are sorted after rows with valid pace values.

Typical use cases

  • Build a structured history of race results for a club or training group.
  • Compare multiple athletes over the same date range and distance filter.
  • Export the dataset from Apify for additional ranking, filtering, or reporting.
  • Analyze recent race activity for a shortlist of runners uploaded as a TXT file.

Notes

The Actor works against EnduHub search result pages and depends on the structure of those pages remaining reasonably stable over time.

If EnduHub changes its HTML structure, filtering behavior, or visibility rules, the Actor may require an update.

This Actor is intended for Apify cloud usage.

Users configure runs in the Apify web interface or through the Apify API, and the dataset output can then be viewed, exported, or connected to downstream automations on the Apify platform.