Skip to content

Pay-to-rank API and data downloads

Download the website directory, simplified board data and market statistics as JSON. No API key is required. Data is available under CC BY 4.0 with attribution.

Rebuilt 11 Oct 2026

/data/sites.json The whole census 530 boards, every field, minus the raw evidence rows. /data/boards.json The compact set 434 answering boards, the payload the games load. /data/stats.json The aggregates Every count on the stats page, precomputed.

Reading it

curl -s https://allrank.lol/data/sites.json | jq '.sites[] | select(.statusGroup == "dead") | .host'

fetch('https://allrank.lol/data/sites.json')
  .then(r => r.json())
  .then(({ meta, sites }) => {
    const cheap = sites.filter(s => s.minBid?.usd <= 5 && s.statusGroup === 'active');
    console.log(cheap.length, 'boards you can get onto for five dollars');
  });

Every field

FieldWhat it means
slugThis site’s id for the board, derived from the host: outbid.lol becomes outbid-lol.
name / host / urlWhat it calls itself, the bare domain, and where a visitor is sent.
taglineOne line on what it ranks.
categorySlug and display name. Third-party sourced.
layer / mechanics / primaryMechanicThe rule classification, from this site’s published phrase list.
status / statusGroupMeasured here on the last sweep. live, guarded, redirected, parked, gone, offline, erroring, unreachable.
httpStatus / probeError / responseMsExactly what the last request got back.
registeredAt / registrar / registrySourceFrom RDAP. Null where the registry will not answer or the board runs on a free subdomain.
listedAt / figuresReadAt / lastCheckedAtWhen it entered the record, when its figures were read, when it was last checked.
hoursAfterOutbid / ageDaysTiming against outbid.lol’s own registration, and days since registration.
minBid / reportedTotal / topBidObjects: { raw, amount, currency, approx, usd }. raw is the board’s own string, usd is for ordering only.
bidders / referralsClaimed bidder count, and referrals in.
upstreamClicksClicks out of outoutbid.lol, from their export. Their traffic, not this site’s.
outboundClicks / outboundClicksSinceClicks out of this site, counted here once per visitor per day, and the first day one was counted.
payRailsPayment providers, from the board’s own statement and from what its page loads.
rulesRule details lifted from the board’s copy, each with the phrase it came from.
logoPath to a 128-pixel PNG of the board’s own icon, where one could be read. Null otherwise.
screenshotPath to a dated picture of the board, where one has been taken. Null otherwise.
scores / completeness / notability / tierThe editorial marks, and why a board is or is not indexed.
summaryThe assembled quick answer shown at the top of its page.
nearestNeighbour / nearestSimilarityThe closest board in the corpus by text overlap, and how close.

What the numbers are, and are not

Attribution

This dataset is CC BY 4.0 — credit allrank.lol. It is built on top of outoutbid.lol’s directory export, also CC BY 4.0, so that credit travels with it and is carried in meta.upstream. Full credits.

Rate limits and freshness

There are none, and there is no reason to hammer it: these are static files behind a cache, rebuilt when a sweep finds something new. meta.generatedAt says when. A breaking change bumps meta.version; new fields do not, so read the ones you need and ignore the rest.

New boards also appear in the feed as they are listed, so nothing has to be polled.