ML Contests Scraper avatar

ML Contests Scraper

Pricing

Pay per event

Go to Apify Store
ML Contests Scraper

ML Contests Scraper

Scrape machine learning, data science, and robotics competitions from mlcontests.com

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract machine learning, data science, and robotics competitions from mlcontests.com — the most comprehensive aggregator of ML competitions across 20+ platforms including Kaggle, DrivenData, Zindi, CrunchDAO, AIcrowd, and more.

Get structured, up-to-date competition data including prize amounts, deadlines, platforms, tags, sponsors, and conference affiliations — perfect for monitoring the ML competition landscape, building dashboards, or automating your contest pipeline.

What does it do?

ML Contests Scraper fetches the complete list of currently active machine learning competitions from mlcontests.com. It extracts all structured data from the site's aggregated dataset — covering 300+ competitions at any given time — and outputs clean, ready-to-use JSON records.

Unlike scraping individual competition platforms one by one, this actor gives you the full picture in a single run: competitions from Kaggle, DrivenData, Zindi, CrunchDAO, Codabench, HuggingFace, AIcrowd, and dozens of independent competitions, all normalised into a consistent schema.

Who is it for?

🧑‍💻 ML practitioners and data scientists who want to discover new competitions matching their skills (NLP, vision, tabular, timeseries) without manually browsing 20+ platforms every week.

📊 Research teams and academics tracking competition-associated conferences (NeurIPS, CVPR, ICML) and prize-funded research challenges to identify collaboration or publication opportunities.

🏢 Competition organisers and sponsors monitoring the competitive landscape to benchmark prize pools, identify market gaps, and track their own competitions.

🤖 Automation engineers building competition alert systems, dashboards, or Slack/email bots that notify teams when relevant competitions open or close.

💼 Freelancers and consultants scanning for high-value prize competitions to prioritise client pitches or personal participation.

Why use it?

  • Single source of truth — mlcontests.com aggregates 300+ competitions across 20+ platforms. One actor replaces manual checking of dozens of sites.
  • Structured output — all data (name, platform, prize, deadline, tags, sponsor, conference) is normalised into a consistent JSON schema.
  • Filterable — filter by platform, tag, or prize availability in a single run. No post-processing needed.
  • Up-to-date — mlcontests.com updates daily. Schedule this actor to run daily and always have fresh data.
  • No login required — public data, no authentication needed.
  • Ultra-fast — single HTTP request, no browser, runs in under 10 seconds.

What data do you get?

Each competition record includes:

FieldDescriptionExample
nameCompetition name"AI Math Olympiad Progress Prize 2"
urlCompetition URL"https://kaggle.com/..."
platformHosting platform"Kaggle"
tagsTopic/method tags["nlp", "supervised", "tabular"]
prizeCash prize"$2,117,152"
additionalPrizesNon-cash prizes"AWS credits, conference ticket"
deadlineSubmission deadline"31 Dec 2026"
registrationDeadlineRegistration cutoff"15 Nov 2026"
launchedCompetition start date"1 Jan 2026"
addedDate added to mlcontests"3 Jan 2026"
sponsorSponsor name"Google DeepMind"
conferenceAssociated conference"NeurIPS"
conferenceYearConference year2026
dataSizeDataset size description"10 GB"
additionalUrlsRelated URLs["https://workshop.example.com"]
noteExtra notes"Open to students only"
endDateEnd date if different from deadline"15 Jan 2027"

How much does it cost to scrape ML competitions?

This actor uses Pay-Per-Event (PPE) pricing. You pay a small start fee per run, plus a tiny amount per competition extracted.

PlanCost per result
FREE$0.000345
BRONZE$0.0003
SILVER$0.000234
GOLD$0.00018
PLATINUM$0.00012
DIAMOND$0.000084

Example costs:

  • Scraping all ~329 competitions (BRONZE plan): $0.005 start + 329 × $0.0003 = **$0.104 per run**
  • Filtering for Kaggle competitions only (95 results): **$0.034 per run**
  • Filtering by tag (e.g., "nlp", 62 results): **$0.024 per run**

💡 Free plan estimate: With Apify's free tier, you can run this actor regularly and collect hundreds of competitions per month for free.

How to use it

  1. Open the actor on Apify Store
  2. Configure filters (optional):
    • Leave all filters empty to get ALL current competitions
    • Add platform names to filter (e.g., Kaggle, Zindi)
    • Add tags to filter by topic (e.g., nlp, vision, timeseries)
    • Enable "Prize contests only" to exclude no-prize competitions
  3. Click Run — the actor completes in under 15 seconds
  4. Export results as JSON, CSV, or Excel from the Results tab

Input parameters

ParameterTypeDefaultDescription
platformsarray[]Filter by platform name(s). Case-insensitive partial match. Leave empty for all platforms.
tagsarray[]Filter by tag(s). Exact match from the competition's tag list. Leave empty for all tags.
prizeOnlybooleanfalseOnly return competitions with a cash prize.
maxResultsinteger0Maximum number of results. 0 means no limit.

Platform filter examples

{ "platforms": ["Kaggle"] }
{ "platforms": ["DrivenData", "Zindi"] }
{ "platforms": ["CrunchDAO"] }

Tag filter examples

{ "tags": ["nlp"] }
{ "tags": ["vision", "medical"] }
{ "tags": ["timeseries", "forecasting"] }

Output examples

Full competition record

{
"name": "Detect Structural Breaks in Real-Time Time Series Data",
"url": "https://hub.crunchdao.com/competitions/structural-break-real-time?ref=mlcontests",
"platform": "CrunchDAO",
"tags": ["climate", "finance", "healthcare", "timeseries", "forecasting"],
"prize": "$100,000",
"additionalPrizes": null,
"deadline": "17 Sep 2026",
"registrationDeadline": "31 Dec 2026",
"launched": "6 May 2026",
"added": null,
"sponsor": "ADIA Lab",
"conference": null,
"conferenceYear": null,
"dataSize": null,
"additionalUrls": [],
"note": null,
"endDate": null
}

Conference-affiliated competition

{
"name": "Foundation Models for General CT Image Diagnosis",
"url": "https://www.codabench.org/competitions/12650/?ref=mlcontests",
"platform": "Codabench",
"tags": ["supervised", "classification", "vision", "medical", "science", "deep learning"],
"prize": null,
"additionalPrizes": "Amazon gift cards (300/200/100 CAD) for top 3; poster presentation invitation",
"deadline": "15 May 2026",
"registrationDeadline": null,
"launched": null,
"added": "15 Apr 2026",
"sponsor": null,
"conference": "CVPR",
"conferenceYear": 2026,
"dataSize": null,
"additionalUrls": ["https://fmv-cvpr26workshop.github.io/"],
"note": null,
"endDate": null
}

Tips for best results

🔍 Discover niche competitions — use tag filters like robotics, audio, reinforcement-learning, or science to find specialised competitions you might miss browsing mainstream platforms.

📅 Schedule for daily updates — competitions open and close daily. Set up a scheduled task to run this actor every morning and save results to a dataset you monitor.

💡 Combine filters — you can use both platform and tag filters simultaneously to narrow down to exactly what you need (e.g., platforms: ["Kaggle"] + tags: ["nlp"]).

No proxy needed — mlcontests.com is a public site with no anti-bot measures. This actor runs with no proxy and completes in under 10 seconds.

🔗 Follow competition URLs — each result includes the direct competition URL with the mlcontests referral tag. Click through to register directly on the hosting platform.

Integrations

🔔 Daily competition alert (Zapier/Make)

Run this actor daily, then pipe the results into a Zapier/Make webhook that filters for new competitions (by checking added date) and sends a Slack or email alert.

[ML Contests Scraper][Filter: added = today][Slack: "New competition: {name} on {platform}, prize: {prize}"]

📊 Google Sheets dashboard

Export results directly to Google Sheets using Apify's built-in Google Sheets integration. Schedule daily runs to auto-update your competition tracker.

[ML Contests Scraper][Apify → Google Sheets integration][Competition Tracker spreadsheet]

🗂️ Notion competition database

Use Apify's Notion integration to push competition records to a Notion database with filtered views by platform, tag, and deadline.

🤖 AI research agent

Feed competition data to an LLM via the Apify API to automatically generate personalised competition recommendations based on your skills and past projects.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/mlcontests-scraper').call({
platforms: ['Kaggle', 'DrivenData'],
tags: ['nlp'],
prizeOnly: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} competitions`);
items.forEach(c => console.log(`${c.name}${c.prize}${c.deadline}`));

Python

from apify_client import ApifyClient
client = ApifyClient(token="YOUR_API_TOKEN")
run = client.actor("automation-lab/mlcontests-scraper").call(run_input={
"platforms": ["Kaggle", "DrivenData"],
"tags": ["nlp"],
"prizeOnly": True,
})
dataset = client.dataset(run["defaultDatasetId"])
for item in dataset.iterate_items():
print(f"{item['name']}{item['prize']}{item['deadline']}")

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~mlcontests-scraper/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"platforms": ["Kaggle"],
"prizeOnly": true
}'

Use with Claude (MCP)

You can use this actor as an MCP (Model Context Protocol) tool directly in Claude Code, Claude Desktop, Cursor, or VS Code.

Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/mlcontests-scraper"

Then ask Claude:

  • "Find all current NLP competitions on Kaggle with prizes over $10,000"
  • "What machine learning competitions are affiliated with NeurIPS 2026?"
  • "List all DrivenData competitions with a deadline in the next 30 days"

Claude Desktop / Cursor / VS Code

Add to your MCP config (claude_desktop_config.json or .cursor/mcp.json):

{
"mcpServers": {
"apify": {
"type": "http",
"url": "https://mcp.apify.com?tools=automation-lab/mlcontests-scraper",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Example Claude prompts:

  • "Run the mlcontests scraper and show me all vision competitions with prizes"
  • "Which medical AI competitions are currently open on Codabench?"
  • "Get all competitions tagged with 'timeseries' and their deadlines"

Legality and terms of service

This actor only scrapes publicly available data from mlcontests.com that is visible to any visitor without authentication. The data is used to power public discovery of open competitions.

  • mlcontests.com does not have an explicit prohibition on automated access in its Terms of Service
  • This actor respects server load by making a single HTTP request per run
  • Competition URLs are used as-is with the standard mlcontests referral tag

Always review the terms of service of individual competition platforms before participating or redistributing their data.

FAQ

Which platforms are covered?

mlcontests.com covers 20+ platforms including Kaggle, DrivenData, Zindi, CrunchDAO, AIcrowd, Codabench, HuggingFace Competitions, NumerAI, Signate, and many independent competitions. The platform field in each result tells you exactly where each competition is hosted.

How often is the data updated?

mlcontests.com updates their competition list regularly. Run this actor daily to stay current with new competitions and deadline changes.

Can I get past/completed competitions?

No — mlcontests.com only displays currently active competitions. This actor extracts whatever is on the live page at the time of the run.

What does the "tags" field contain?

Tags describe the competition type, domain, and methodology. Common tags include: nlp, vision, tabular, timeseries, audio, reinforcement-learning, supervised, unsupervised, medical, finance, climate, robotics, science, deep learning, measurable, hardware, inference.

Why does my filtered run return fewer results than expected?

Platform filter uses case-insensitive partial matching (e.g., "kaggle" matches "Kaggle"). Tag filter requires exact match from the tag list. If you're not getting expected results, try a broader filter or check the platform/tag spelling in a full (unfiltered) run first.

The actor returned 0 results — is something wrong?

If you get 0 results with an unfiltered run, mlcontests.com may have temporarily changed its page structure. File an issue on Apify Store and we'll investigate. Filtered runs returning 0 is normal if no competitions match your criteria.