Look, I hate chasing results. I really do. Every time there’s a big World Cup weekend, I swear finding a clean list of winners is harder than actually skiing the course. You gotta jump through ten different websites, the official one is always bloated and slow, and half the time they mix up the Women’s Super-G with some rando junior competition.

So, this time, I said forget that noise. I was dead set on getting the real list, clean and fast. I decided to actually do the damn work and grab the data myself. This isn’t about some fancy API or coding challenge; this is about being lazy and efficient, which are basically the same thing when you’re messing around on a Saturday.
The Messy Start: Kicking the Tires
I started where I always do: I opened up my crappy, old terminal window. I still had a basic Python script I tossed together a couple of years back. It wasn’t built for elegance; it was built for speed, relying on a simple package to just go fetch the HTML from the main federation site. I figured I’d run it, grab the text, and just filter for the words “Winner” and the skier’s name. Easy, right?
Wrong.
I hit run and it just broke. The script spit out a wall of errors that looked like my toddler had been mashing the keyboard. See, the site’s coders—bless their hearts—had decided to completely rebuild the results page. My simple scraper couldn’t figure out the new navigation, and the old selectors I used to pinpoint the winner’s table were just gone. What a joke. I wasted a good twenty minutes trying to patch the old code, swearing the whole time, before realizing I needed to start fresh.
Diving Deep: Finding the Hidden API
I sighed, poured another coffee, and did what any self-respecting person who’s too stubborn to give up would do: I opened the developer tools in my browser. I went to the results page again and told the network tab to start recording every single piece of data the page loaded. I scrolled around, clicked on a few links, and then I saw it—a small, clean-looking request that had ‘API’ right in the URL.

The official site was actually hiding the results behind a completely separate, beautifully structured JSON endpoint. They render all the ugly tables and graphics using this clean data source, but they don’t give you a straight link to it. Typical. I snagged that URL and pasted it right into my terminal using a basic `curl` command to check the payload. And man, was it sweet.
It was a massive block of text, but the structure was perfect. Each race was an object, and inside that object was an array of skiers, with a clean “rank” field. All I needed to do was quickly tell my script to look for the object corresponding to the day’s events, and then find the one athlete where the “rank” was set to “1.”
I killed the old Python mess and spent the next hour just writing a super quick, five-line script that did nothing but make a request to that specific URL and then loop through the returned data to pull out the first-place finisher for each discipline (Downhill, Slalom, GS). I called it “The Snatcher.”
Why All This Effort? An Idiot’s Bet
Now, you might ask why I went through all this effort just to find some ski results a few minutes faster. It wasn’t about being first to know, not initially. It’s about my brother-in-law, Mark. That guy is an absolute menace.
Last season, we had a serious, friendly wager on the overall standings. Nothing huge, just a case of the good stuff. The final race day came, and I was watching the stream, totally focused. Then the stream crapped out right as the last racer crossed the line. Before I could even refresh or check an online site, Mark texted me claiming his pick had won, knowing full well I couldn’t verify it instantly. He was lying through his teeth, trying to claim the win with shaky, unconfirmed data before the official results were posted.

I knew he was cheating, but I lost the argument and had to fork over the beer. I swore right then that I would never be in a position where I couldn’t instantly, definitively prove who won. I realized that the official sites were actually his best friend—slow, clunky, giving him just enough time to muddy the waters and claim victory.
I built “The Snatcher” that night. It was my revenge tool. Now, when a race finishes, I don’t wait for the announcers or the website to update. I hit a single key, and I get the raw, confirmed data straight from their hidden source. I send the result instantly to Mark, winning every petty argument and keeping my beer safe.
This latest race? I knew the minute the clock stopped. Mark didn’t even have time to type a lie.
The Final List: Instant Gratification
So, here it is, the clean, raw output from my little script, the one that makes me slightly faster than Mark and the entire official results website. This is what actually matters:
- Men’s Giant Slalom: The top dog absolutely crushed it with a clean run.
- Women’s Slalom: She dominated both gates, no contest.
- Men’s Downhill: A total surprise win, nobody saw that coming.
- Women’s Super-G: Just proof that being aggressive pays off.
There you go. No frills, no fancy graphics, just the names that matter. And yes, my case of beer is safe for another week. Practice makes perfect, even when that practice is just trying to beat your brother-in-law.
