HackenProof Bug Bounty & Audit Program Scraper
Under maintenancePricing
from $0.95 / 1,000 program results
HackenProof Bug Bounty & Audit Program Scraper
Under maintenanceScrape every HackenProof bug bounty and audit program: max bounty, total paid out to researchers (payout proof), submitted-report count (competition), triage flag, project types, languages and platforms. Paid-per-report + 0-100 opportunity score rank 300+ programs. HTTP-only, no login.
Pricing
from $0.95 / 1,000 program results
Rating
0.0
(0)
Developer
Mr Zack
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
HackenProof Bug Bounty Scraper - Payout Proof & Competition Signals
Get every HackenProof bug bounty and audit program as clean structured data in one run: max bounty, project types, languages, platforms, triage flag, start/updated dates and status.
Then - the part no other scraper gives you - the two numbers HackenProof publishes that Immunefi and most platforms hide:
totalPaidUsd- how much the program has actually paid out to researchers, andsubmittedReports- how many reports you are competing against.
Divide one by the other and you know what an average submission earned (paidPerReportUsd) before you spend a weekend on scope. One run = the full directory (300+ programs, ~$11.5M in tracked public payouts), filterable, scored and sorted.
Who is this for?
- Web3 security researchers & bug bounty hunters - stop guessing which "up to $250,000" program has actually paid anyone. Filter
onlyProvenPayout, sort bypaidPerReport, cap the competition withmaxSubmittedReports. - Security teams & agencies - benchmark bounty sizes, payout behaviour and report volume across 300+ programs before advising clients.
- Analysts & builders - the web3 security market as a dataset: track new program launches, payout velocity and platform trends.
- AI agents (MCP) - pay-per-event Actors are callable as tools. "Find live Solana programs that have paid at least $10k out, with under 200 reports submitted" becomes one tool call.
What makes this Actor different
Payout proof, not payout promises. A program advertising "up to $250,000" that has paid $0 across 600 reports is a very different bet from one that has paid $147,300 against a $2,000 max. HackenProof publishes both numbers; this Actor turns them into sortable signals:
| Question a hunter asks | Field that answers it |
|---|---|
| Has this program ever actually paid anyone? | payoutProven, totalPaidUsd |
| What did an average report here earn? | paidPerReportUsd |
| How many hunters am I competing with? | submittedReports, competitionBucket |
| Is the program alive or quietly abandoned? | status, daysSinceUpdate |
| Will my report get triaged professionally? | triagedByHackenproof |
| Just tell me what to hunt this weekend. | opportunityScore - 0-100, sortable |
Output (one item per program)
| Field | Example | Notes |
|---|---|---|
name | NEAR Intents: Bridges | |
programUrl | https://hackenproof.com/programs/near-intents-bridges | |
programType | bounty | bounty or audit |
status | live | live / paused / ended |
maxBountyUsd | 300000 | published maximum |
totalPaidUsd | 45200 | payout proof - null when the program keeps it private |
paidIsPrivate | false | |
payoutProven | true | paid > $0; null when private (we never guess) |
paidPerReportUsd | 83.09 | naive but honest: total paid / reports |
submittedReports | 544 | competition signal |
competitionBucket | high | none / low / moderate / high / brutal |
opportunityScore | 78.4 | 0-100 composite, see below |
startedAt, lastUpdatedAt, endsAt | ISO dates | |
ageDays, daysSinceUpdate | 165, 81 | freshness |
triagedByHackenproof | true | |
projectTypes, categories, languages, platforms | ["Bridge"], ["Web"], ["Rust"], ["Near"] | |
raw | original strings | exact values as displayed on the site |
Any field the site does not publish comes back null - never a fabricated zero.
How the opportunity score works
Deliberately simple, documented, and reproducible so you can argue with it:
- 40% max bounty - sqrt-scaled, saturating at $100,000
- 25% payout proof - paid > $0 scales with the amount (saturating at $25k); a private total counts as neutral 0.5; a public $0 scores 0 on this component
- 20% low competition - decays as reports pile in (300 reports = half marks)
- 15% freshness - live and recently updated; paused programs are penalised, ended ones get 0
Programs with no published max bounty score null rather than a misleading number. Unproven programs still rank - they just do not outrank programs that provably pay.
Input highlights
status-live(default) orallonlyProvenPayout- only programs that have publicly paid > $0minMaxBountyUsd,maxSubmittedReports,maxDaysSinceUpdate,triagedOnlyprojectTypes,languages,platforms,searchText- slice the directorysortBy-opportunity(default),maxBounty,totalPaid,paidPerReport,fewestReports,newest,recentlyUpdatedmaxItems- you are only charged for returned results
Example: the proven-payer, low-competition query
{"status": "live","onlyProvenPayout": true,"minMaxBountyUsd": 10000,"maxSubmittedReports": 200,"sortBy": "paidPerReport","maxItems": 25}
Live programs that have really paid researchers, with $10k+ max bounties and fewer than 200 competing reports - ranked by what an average report earned.
How to schedule this Actor (recommended setup)
New programs launch weekly, payout totals and report counts move daily, and the best programs saturate fast. A scheduled run is how you catch a fresh program before 500 hunters do.
- Run the Actor once with the input you want and check the results.
- On the Actor page open the ... menu and choose Schedule Actor (or go to Schedules and click Create new).
- Set the cron expression:
0 7 * * *- every morning. Cheapest useful cadence.0 */12 * * *- twice a day, for catching new launches early.0 7 * * 1- weekly digest, if you only hunt weekends.
- Attach the saved input. A tight input (
maxItems: 25,sortBy: "opportunity") keeps every scheduled run to a few cents. - Add an integration: Integrations → Slack / Webhook / Google Sheets / Zapier / Make, triggered on Run succeeded. Your ranked feed of programs arrives on its own.
Catching launches: combine sortBy: "newest" with maxItems: 20 on a daily schedule - new programs surface before the report count climbs. Add maxSubmittedReports: 50 and every item in your inbox is a program almost nobody has hit yet.
Why this Actor
- HTTP-only, no browser - the full directory in under a minute, cheap to run.
- Defensive parser - tolerates site structure drift; failures degrade gracefully.
- Pay per event - tiny flat start fee plus a per-program fee. A full-directory run costs ~$0.40; filtered runs cost cents.
- No free-plan cap - free-plan users get the same full directory as everyone else.
Related Actors by the same developer
Hunting across platforms? These use the same schema philosophy (honest nulls, payout-focused scoring):
- Immunefi Bug Bounty & Audit Competition Scraper - 240+ Immunefi programs with KYC/fee/PoC friction scores
- Web3 Audit Contest Aggregator - Code4rena, Sherlock, CodeHawks and Cantina contests in one run
- Superteam Earn Scraper - Solana bounties with EV per entry
FAQ
Is this legal? The Actor only reads the public program directory - the same data anyone sees in a browser without logging in. No login, no private data, no bypassing access controls.
Why is totalPaidUsd null on some programs? The program chose to keep its payout total private. We report null and set paidIsPrivate: true instead of guessing - and payoutProven is null for those, never false.
How fresh is the data? Each run fetches the live directory at that moment. See the scheduling section for a hands-off setup.
A field came back null? Some programs genuinely omit fields. Original display strings are always preserved under raw.
Found a bug, or want another field? Open a ticket on the Issues tab.
Changelog
- 0.1 - Initial release: full bounty + audit program directory, payout proof (
totalPaidUsd,paidPerReportUsd,payoutProven), competition buckets, opportunity score, HTTP-only, pay-per-event.
Was this Actor useful?
If it saved you from spending a weekend on a program that never pays, a short review on the Store page helps other researchers decide whether to try it. Reviews are the only signal buyers have before they spend anything.
If something is wrong instead, please open a ticket on the Issues tab - field requests and parser bugs get fixed.