outbid.lol Scraper - Bids, Clicks & Change Monitoring avatar

outbid.lol Scraper - Bids, Clicks & Change Monitoring

Pricing

from $4.00 / 1,000 listings

Go to Apify Store
outbid.lol Scraper - Bids, Clicks & Change Monitoring

outbid.lol Scraper - Bids, Clicks & Change Monitoring

Know what every outbid.lol listing pays and what it gets. The full pay-to-rank board in under 3 seconds, with clicks-per-dollar and cost-per-click on every row, plus change monitoring that reports who moved, who was outranked and who joined since your last run. No proxy cost.

Pricing

from $4.00 / 1,000 listings

Rating

5.0

(1)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

15

Total users

15

Monthly active users

2 days ago

Last modified

Share

outbid.lol Scraper — Leaderboard, Bids, Clicks & Change Monitoring

Scrape the entire outbid.lol pay-to-rank leaderboard — every listing's rank, bid, claim price, click count, cost-per-click, description and listing date — then track what moves between runs.

How the outbid.lol Scraper works

Why use this scraper

  • The whole board, not the first page. Roughly 900 listings in under 3 seconds. No cap at rank 1,000.
  • Change monitoring built in. The board re-ranks continuously. Turn on monitoring and each run reports what is new, gone, re-ranked, raised or gaining clicks, with the previous value and the delta on every row. Set onlyChanges and a scheduled run bills for the handful of rows that moved instead of the whole board every time.
  • Filters that match how people actually query a leaderboard. Rank ranges (not just a ceiling), bid and click floors and ceilings, cost-per-click bounds, include and exclude keywords, per-field keyword targeting, domain and TLD filters, listing type, and three ways to filter by date.
  • Board-level context, free. One unbilled boardStats row per run carries live visitors, 30-day visitors, visitors since launch, total board revenue, listing count and the sum of every live bid.
  • No proxy cost. The actor clears the site's Vercel security checkpoint itself and runs direct by default. You are not paying for residential bandwidth you do not need.
  • Opt-in contact emails. Every listing carries its own website, so email enrichment scrapes the real site rather than guessing at a company match. Billed only when an email is actually found.

Overview

outbid.lol is a public leaderboard where rank is bought: you pay a dollar amount and that amount is your position. It launched on 19 August 2026 and has carried over a million visitors, roughly 900 paid listings and about $132,000 in bids.

That makes the board a live, priced signal of what indie founders and small SaaS companies are willing to spend to get traffic — and, because every listing publishes its click count, of what that traffic is actually worth. This actor turns the board into structured rows you can sort, filter, diff and export.

The site renders each board page as a React Server Component payload, so the actor decodes that payload directly rather than parsing markup. There are no detail pages to fetch and no browser to run: every field arrives with the listing, 50 per request.

Supported inputs

InputWhat it does
(nothing)Run with an empty input and get the entire board.
https://outbid.lol/The board. Equivalent to an empty input.
https://outbid.lol/?page=3Accepted; the actor still walks the board from rank 1.

Only outbid.lol URLs are accepted. Anything else fails immediately with a clear message rather than silently scraping the board instead.

Use cases

  • Competitive and ad-spend research. See exactly what competitors pay for placement and what each of them gets for it in clicks.
  • Price the board before you bid. claimPriceUsd tells you what it costs to take any given rank right now — $5 over the top bid for #1, $1 over the listing for anything else.
  • Find undervalued placement. Sort by clicksPerDollar, or filter with maxCostPerClickUsd, to see which bids are buying traffic cheaply.
  • Watch your own listing. Monitor mode tells you the moment you are outranked, with the rank delta and who passed you.
  • Track a launch cohort. Filter by listedWithinHours: 24 to get every product that joined the board today.
  • Build a lead list. The board is 1,300+ founders who just demonstrated they will pay for traffic, each with a live URL and a self-written positioning line. Turn on enrichEmails to attach contact details.

How it works

  1. Clear the checkpoint. outbid.lol fronts the board with Vercel's security checkpoint. The actor clears it once at the start in a headless browser, then reuses that session for every request — no proxy needed, and no browser at all if the checkpoint happens to be off.
  2. Read the board API. Listings come straight from the site's own /api/ranking JSON endpoint — 50 per page, each with every field the board knows — so there are no DOM selectors to break on a redesign.
  3. Paginate in parallel. The API reports the board's exact size, so the actor fetches all pages concurrently and knows precisely when it is done. When maxRank is the only filter set, it stops as soon as that rank is covered instead of pulling the whole board and discarding most of it.
  4. Derive the economics. clicksPerDollar, costPerClickUsd and claimPriceUsd are computed per listing from the live board state.
  5. Diff against the last run. With monitoring on, a snapshot in a named key-value store is compared to the current board and change rows are emitted.

Input configuration

Every field is optional.

FieldTypeDefaultDescription
startUrlsarray[]outbid.lol URLs. Optional — the board is one paginated resource.
minRank / maxRankinteger0Rank range. 0 = no bound.
minBidUsd / maxBidUsdinteger0Bid range in USD.
minClicks / maxClicksinteger0Click-count range.
minCostPerClickUsd / maxCostPerClickUsdnumber0Cost-per-click range. Listings with zero clicks are excluded when either bound is set.
keywordsarray[]Keep listings matching any of these.
excludeKeywordsarray[]Drop listings matching any of these. Wins over keywords.
keywordFieldsarray[]Limit matching to url, domain, handle, name or description.
domainsarray[]Domain filter. Subdomains included; a bare TLD like .ai works.
identityTypesarray[]website, x, or both.
listedWithinHoursinteger0Only listings first listed in the last N hours.
listedAfter / listedBeforestring""ISO date bounds, e.g. 2026-08-21.
sortBystringrankrank, bidDesc, bidAsc, clicksDesc, clicksPerDollarDesc, newest, oldest.
monitorChangesbooleanfalseDiff against the previous run and emit change rows.
onlyChangesbooleanfalseEmit only the changes. Requires monitorChanges.
monitorStoreNamestringoutbid-monitorNamed key-value store holding the snapshot.
includeBoardStatsbooleantrueAppend the unbilled board-statistics row.
includeTrendingbooleantrueAdd clicksLastHour to listings currently trending.
enrichEmailsbooleanfalseScrape each listing's site for contact details.
maxItemsinteger100000Row cap. Free Apify accounts are capped at 100.
maxConcurrencyinteger8Pages fetched in parallel.
proxyobjectdirectOff by default; the actor clears the site's checkpoint without one.

Monitoring: give each schedule its own store

The snapshot lives in a named key-value store (outbid-monitor by default) because a run's default store is created fresh each run and could never carry state forward. If you run several monitors with different filters, give each one its own monitorStoreName — otherwise they overwrite each other's snapshot and every run reports the whole board as "new".

Output overview

Three row types, distinguished by rowType:

rowTypeWhat it isBilled
listingOne board entry at its live rank.Yes
changeOne listing that moved since the last run, with previous values and deltas.Yes
boardStatsOne per run: visitors, revenue, listing count, summed bids.No

Output samples

A listing row:

{
"rowType": "listing",
"rank": 1,
"bidUsd": 14013,
"claimPriceUsd": 14018,
"identityType": "website",
"identityKey": "website:joni.ai",
"sourceUrl": "https://joni.ai/",
"domain": "joni.ai",
"handle": null,
"displayName": "JONI | Your Personal AI Computer",
"description": "JONI is your personal AI computer. Chat once and a team of AI agents and skills gets to work, with the right model picked for every job.",
"clickCount": 8411,
"clicksLastHour": 552,
"clicksPerDollar": 0.6,
"costPerClickUsd": 1.666,
"isTakeover": false,
"listedAt": "2026-08-21T19:52:11.016Z",
"listedAgoHours": 15.2,
"entryId": "e52daf73-79da-4093-a811-f27c0ba908ac",
"boardUrl": "https://outbid.lol/",
"scrapedAt": "2026-08-22T11:06:04.587Z"
}

A change row:

{
"rowType": "change",
"changeType": "rankUp",
"rank": 6,
"previousRank": 9,
"rankDelta": 3,
"bidUsd": 3500,
"previousBidUsd": 3000,
"bidDeltaUsd": 500,
"clickCount": 921,
"previousClickCount": 874,
"clickDelta": 47,
"domain": "fuellog.ai",
"previousSnapshotAt": "2026-08-22T10:05:21.311Z"
}

The boardStats row:

{
"rowType": "boardStats",
"liveVisitorCount": 685,
"visitorsLast30Days": 127537,
"visitorsSinceLaunch": 1154999,
"boardRevenueUsd": 132785,
"totalListings": 900,
"sumOfLiveBidsUsd": 132791
}

Key output fields

FieldMeaning
rankLive board position. Always the true rank, never renumbered by filtering.
bidUsdWhat this listing currently pays.
claimPriceUsdWhat it would cost you to take this exact rank right now.
clickCountLifetime clicks the board has recorded for this listing.
clicksLastHourClicks in the last hour, for listings currently trending.
clicksPerDollarclickCount / bidUsd — the board's value metric. Higher is better placement value.
costPerClickUsdbidUsd / clickCount. null when a listing has no clicks yet.
isTakeoverWhether this listing bought a full-board takeover (2× the top bid).
listedAtWhen the listing first appeared. Raises do not change it.
changeTypenew, gone, rankUp, rankDown, bidRaised or clicksJumped.

Not included, on purpose: outbid.lol's public payload also carries polarOrderId and polarCheckoutId — its payment processor's internal order references for each buyer's transaction. They are of no analytical use, and reselling someone else's payment identifiers is not something this actor does. They are dropped.

FAQ

How many listings are there? About 1,360 as of late August 2026, and still growing daily. There is no cap in this actor — you always get the full board, and its exact size is reported in the boardStats row.

How fast is it? The full board harvests in under 3 seconds once the run is going. Clearing the site's security checkpoint adds a few seconds of headless-browser startup at the beginning of each run.

Does it need a proxy? No. outbid.lol fronts the board with Vercel's security checkpoint, but the actor clears it itself and then reads the board's JSON API directly. The proxy input exists if you want the traffic from a specific network, but leaving it off costs you nothing in quality and saves you the proxy bill.

Why did my first monitoring run report zero changes? There was nothing to compare against. The first run stores a baseline; the second run onward reports the diff.

Why did a monitoring run report the whole board as new? The snapshot is per store, and it records the listings your filters returned. If you change filters between runs, everything outside the old filter looks new. Give each filter configuration its own monitorStoreName.

Can I get contact emails? Turn on enrichEmails. Because each listing already carries its own website, enrichment reads that site directly instead of guessing which company a name refers to. It is best-effort — expect a hit rate, not a guarantee — and you are billed only for listings where an email is found.

Are costPerClickUsd figures reliable? They are exactly bidUsd / clickCount as the board reports both. Note that outbid.lol's click counter is an open, unauthenticated endpoint, so a handful of listings show click counts far outside the distribution of everything else. Treat extreme outliers as unverified.

Do I pay for the boardStats row? No. It is one row of context per run and it is not billed.

Support

Found a bug or need a field that is not here? Open an issue on the actor's Issues tab and it will be looked at.

Additional services

Need a scraper for a site that is not on the Store yet, or a custom data pipeline? Get in touch through the Apify profile.

Explore more scrapers

🤖 For AI agents & LLM apps

This actor is a good fit for agent pipelines: it needs no input to produce useful output, it returns strictly typed rows, and it is cheap and fast enough to call on a schedule.

{
"maxRank": 50,
"sortBy": "clicksPerDollarDesc",
"includeBoardStats": true
}

Call it via the Apify API, or through the Apify MCP server as memo23/outbid-scraper. For a change feed, set monitorChanges: true and onlyChanges: true and poll on a schedule — a quiet interval returns a handful of rows.

⚠️ Disclaimer

This actor collects only data that outbid.lol publishes publicly and serves to any visitor without authentication. It does not bypass access controls, solve challenges, log in, or collect private personal information. Payment-processor identifiers present in the site's public payload are deliberately excluded from the output.

You are responsible for how you use the data, including compliance with outbid.lol's terms, applicable data-protection law such as GDPR and CCPA, and anti-spam rules such as CAN-SPAM if you use the optional email-enrichment output. Scrape responsibly and at a reasonable rate.

SEO keywords

outbid.lol scraper, outbid leaderboard scraper, outbid.lol api, pay to rank leaderboard data, leaderboard scraper, bid tracking scraper, startup directory scraper, indie hacker directory data, click analytics scraper, cost per click data, competitive intelligence scraper, advertising research data, product launch tracker, rank monitoring, leaderboard change detection, startup lead generation, founder contact emails, apify outbid actor