Devpost Hackathon Scraper
Pricing
Pay per event
Devpost Hackathon Scraper
Scrape hackathons, prizes, themes, deadlines, and organizers from Devpost — 13,000+ competitions. Filter by keyword, status, and challenge type. HTTP-only, no browser needed.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 days ago
Last modified
Share
What does it do?
Devpost Hackathon Scraper extracts hackathon listings from Devpost — the world's largest hackathon platform with 13,000+ competitions and millions of participants. It uses Devpost's public API to collect structured data on each hackathon, including prizes, deadlines, themes, organizers, and registration counts — with no authentication required.
Data extracted per hackathon:
| Field | Description |
|---|---|
id | Devpost hackathon ID |
title | Hackathon name |
url | Hackathon homepage URL |
organizationName | Organizing company or group |
location | "Online" or city/venue |
openState | Status: open, upcoming, ended |
submissionPeriodDates | Start and end date string |
timeLeftToSubmission | Human-readable countdown |
themes | Theme tags (e.g. Machine Learning/AI, Health) |
prizeAmount | Total prize pool (cleaned string) |
cashPrizesCount | Number of cash prizes |
otherPrizesCount | Number of non-cash prizes |
registrationsCount | Number of registered participants |
featured | Whether Devpost featured this hackathon |
winnersAnnounced | Whether winners have been revealed |
inviteOnly | Whether participation is invite-only |
thumbnailUrl | Hackathon banner image URL |
submissionGalleryUrl | Link to the project gallery |
Who is it for?
🎓 Students and developers looking for hackathons
Find competitions that match your skills, schedule, and interests. Filter by theme (AI, blockchain, health), format (online/in-person), and deadline to surface the best opportunities without manually browsing hundreds of listings.
🏢 Developer relations and community teams
Track hackathons in your domain to find sponsorship opportunities, recruit participants, or monitor the competitive landscape. Scrape by keyword or theme to get an instant market view of active competitions.
📊 Researchers and analysts
Study hackathon trends — prize amounts over time, popular themes, participation growth, and organizer activity. The API returns total registration counts, which serve as a proxy for developer community interest.
🤖 Hackathon aggregators and apps
Power a custom hackathon discovery app, newsletter, or Slack bot with fresh Devpost data without maintaining your own crawlers. The structured JSON output integrates directly with Zapier, Make, Airtable, or any webhook endpoint.
Why use this actor?
- ✅ No Playwright, no headless browser — uses Devpost's public JSON API for reliable, fast extraction
- ✅ Rich filters — search by keyword, theme, format (online/in-person), and sort order
- ✅ Pagination handled automatically — fetches all pages to meet your
maxResultstarget - ✅ Clean output — prize amounts stripped of HTML tags, thumbnail URLs made absolute
- ✅ 13,000+ hackathons — the full Devpost catalog is accessible
- ✅ Cost-efficient — HTTP-only actor with 256 MB memory footprint
How to use it
- Open the actor at https://apify.com/automation-lab/devpost-scraper
- Set your search filters — enter a keyword, choose a status (open, upcoming, ended), pick a challenge type, and set sort order
- Set maxResults — choose how many hackathons you need (default: 100)
- Click Start — the actor fetches data directly from the Devpost API
- Download results — export as JSON, CSV, Excel, or connect to integrations
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "" | Keyword to search for (e.g. "AI", "blockchain", "health") |
challengeType | select | "all" | Filter by format: all, online, or in-person |
status | select | "open" | Filter by status: all, open, upcoming, or ended |
themes | array | [] | Filter by theme tags (e.g. ["Machine Learning/AI", "Health"]) |
orderBy | select | "newest" | Sort order: newest, prize-amount, deadline, recently-added, submissions-count |
maxResults | integer | 100 | Maximum number of hackathons to return |
maxRequestRetries | integer | 3 | Retry attempts for failed API requests (advanced) |
Theme values
Devpost theme names include (but are not limited to):
Machine Learning/AIHealthFintechSocial GoodCybersecurityBeginner FriendlyWebMobileOpen EndedDesignProductivityLow/No CodeBlockchain
Output example
{"id": 29377,"title": "Build with MeDo Hackathon","url": "https://medo.devpost.com/","organizationName": "Baidu","location": "Online","openState": "open","thumbnailUrl": "https://d112y698adiu2z.cloudfront.net/photos/production/challenge_thumbnails/004/516/528/datas/medium_square.png","submissionPeriodDates": "Apr 09 - May 20, 2026","timeLeftToSubmission": "19 days left","themes": ["Beginner Friendly", "Low/No Code", "Machine Learning/AI"],"prizeAmount": "$50,000","cashPrizesCount": 10,"otherPrizesCount": 1,"registrationsCount": 5159,"featured": false,"winnersAnnounced": false,"inviteOnly": false,"submissionGalleryUrl": "https://medo.devpost.com/project-gallery"}
How much does it cost to scrape Devpost hackathons?
The actor uses Pay-Per-Event (PPE) pricing — you only pay for what you extract.
| Tier | Per hackathon | Run start (one-time) |
|---|---|---|
| Free plan | $0.0012 | $0.005 |
| Starter ($29/mo) | $0.001 | $0.005 |
| Scale ($199/mo) | $0.00078 | $0.005 |
| Business ($999/mo) | $0.0006 | $0.005 |
Example costs (Starter tier / BRONZE):
- 🟢 20 hackathons (typical search): ~$0.025 total
- 🟡 100 hackathons (open hackathons snapshot): ~$0.105 total
- 🔵 500 hackathons (weekly monitoring): ~$0.505 total
A typical run of 100 hackathons costs around $0.105 — less than a coffee. The Apify Free plan gives you $5/month of free usage, covering roughly 4,100 hackathon records per month at no cost.
Tips and best practices
💡 Use the status: open filter for ongoing hackathons — this keeps the result set small and relevant.
💡 Combine theme filters with a broad keyword search to get very targeted results. For example, themes: ["Health", "Machine Learning/AI"] with searchQuery: "" surfaces only healthcare-AI competitions.
💡 Sort by deadline to surface the most time-sensitive opportunities first — great for building a "hackathons closing soon" digest.
💡 Set maxResults: 0 to use the default (100 items). For a full catalog snapshot, set it to 5000+.
💡 Schedule the actor daily using Apify's scheduler to keep a fresh hackathon database without manual runs.
💡 Use the Apify API or Webhooks to trigger downstream automation — push results to Airtable, send Slack alerts, or email a digest whenever new hackathons appear.
Integrations
🗓️ Hackathon discovery newsletter
Workflow: Schedule actor weekly → filter status: open, orderBy: newest → push results to Airtable → send digest email via SendGrid.
🤖 Slack bot for developer teams
Workflow: Schedule actor daily → filter by themes: ["Machine Learning/AI"] → compare with yesterday's dataset in Apify Key-Value Store → post new hackathons to #dev-events Slack channel via webhook.
📊 Airtable hackathon tracker
Workflow: Run actor → use Apify's built-in Airtable integration → automatically populate a base with prize, dates, and registration data for team decision-making.
🔗 Zapier / Make automation
Connect the actor's webhook to any Zapier or Make scenario. Trigger actions when new high-prize hackathons are found, or sync results to Google Sheets for easy sharing.
API usage
Node.js (Apify SDK)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('automation-lab/devpost-scraper').call({searchQuery: 'AI',status: 'open',maxResults: 50,orderBy: 'prize-amount',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} hackathons`);console.log(items[0].title, items[0].prizeAmount);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("automation-lab/devpost-scraper").call(run_input={"searchQuery": "health","status": "open","maxResults": 100,"themes": ["Health", "Machine Learning/AI"],})items = list(client.dataset(run["defaultDatasetId"]).iterate_items())print(f"Got {len(items)} hackathons")for item in items[:3]:print(item["title"], item["prizeAmount"])
cURL
# Start a runcurl -X POST \"https://api.apify.com/v2/acts/automation-lab~devpost-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQuery":"blockchain","maxResults":50,"status":"open"}'# Get dataset items (replace DATASET_ID from run response)curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_TOKEN&format=json"
Using with MCP (Claude, Cursor, VS Code)
Use this actor directly from Claude Code, Claude Desktop, Cursor, or VS Code via the Apify MCP server:
Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/devpost-scraper"
Claude Desktop / Cursor / VS Code
Add to your MCP config:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com?tools=automation-lab/devpost-scraper","headers": {"Authorization": "Bearer YOUR_APIFY_TOKEN"}}}}
Example prompts for Claude
- "Find all open AI hackathons on Devpost with prizes over $10,000"
- "List the 20 hackathons with the nearest deadlines and export to CSV"
- "Get me all health-themed hackathons this month and format them as a Notion table"
- "Scrape 50 blockchain hackathons and tell me which have the most registrations"
How the scraper works
The actor calls Devpost's public REST API at https://devpost.com/api/hackathons — the same JSON endpoint the Devpost website uses to render its listing pages. No browser is launched, no JavaScript rendering required.
- Build query parameters from your input — keyword, challenge type, status, themes, and sort order
- Fetch page 1 and read
meta.total_countto know how many results are available - Paginate through pages (48 results per page) until
maxResultsis reached - Transform each result — strip HTML from prize amounts, normalize thumbnail URLs to
https://, flatten theme objects to name arrays - Push to dataset and charge PPE events
The entire process is HTTP-only (no Playwright), runs in 256 MB memory, and typically completes in under 10 seconds for 100 results.
Legality and terms of service
This actor accesses Devpost's public API (devpost.com/api/hackathons) — the same endpoint that powers the Devpost website itself. All data collected is publicly available without authentication. No login credentials are required, and the actor does not circumvent any access controls.
Devpost's Terms of Service permit viewing and accessing public content. Commercial use of scraped data is subject to your own legal review. The actor is intended for legitimate use cases: research, market analysis, hackathon discovery, and developer tooling. Rate limiting is respected by default — the actor paginates at natural API page boundaries.
FAQ
Q: How often is the Devpost data updated? A: The actor fetches live data from the Devpost API on each run. There is no caching — results reflect the current state of Devpost at the time of the run.
Q: Can I get past hackathons (ended ones)?
A: Yes. Set status: ended (or status: all) to include completed hackathons. Devpost has 13,000+ total competitions on record.
Q: Why does my themed filter return fewer results than expected? A: Theme filters are strict — the hackathon must be tagged with ALL the themes you specify. Try filtering with a single theme at a time, or combine a broad theme with a keyword search.
Q: The actor returned fewer items than my maxResults — is something broken?
A: No. If the API has fewer matching hackathons than your maxResults target, the actor returns all available results. This is normal, especially with narrow filters.
Q: Can I get more data per hackathon (full description, rules, judging criteria)? A: The actor uses the Devpost list API which returns summary data per hackathon. Detailed fields like full description and rules are on each hackathon's detail page. Contact us if you need detail-page extraction.
Q: The run succeeded but prizeAmount shows "$0" — why?
A: Some hackathons offer only non-cash prizes (swag, credits, mentorship). The cashPrizesCount and otherPrizesCount fields clarify what's available.
Related scrapers
Looking for more developer community data? Check out these actors by Automation Lab:
- GitHub Repository Scraper — scrape GitHub repos, stars, topics, and contributors
- LinkedIn Profile Scraper — extract LinkedIn public profile data
- Product Hunt Scraper — scrape Product Hunt launches, votes, and makers