How we verify

Methodology

“Free” is not a category. It is a claim, and this is what we require before we publish one. Everything below is a rule the system enforces, not a description of good intentions.

The evidence hierarchy

Every factual claim carries a source, and sources are ranked. A figure read from a live endpoint outranks a figure read from a provider’s documentation, which outranks a dated announcement, which outranks a social post, which outranks a third-party write-up or a community report.

Numbers are never invented

Every important numeric field stores its value, its source URL, when it was observed, and its evidence level. If a provider does not publish a limit, we show “not publicly stated”. We do not substitute a zero, we do not infer a rate limit from observed behaviour, and we do not carry a figure across from a different tier or a different region.

Units are reproduced exactly as published. A pool quoted in weighted tokens is labelled weighted tokens, not tokens. Requests, tokens, credits, dollars, neurons and GPU-seconds are never converted into one another, because the conversion is not ours to make.

One claim, one primary status

Every offer carries exactly one status: upcoming, live, changed, ending, exhausted, ended, suspended or unverified. Access type is tracked separately, because an offer can be a shared pool that is also rate limited and also requires a card. Collapsing those into a single “free” badge would hide the only information anyone actually needs.

A failed source is not a withdrawn offer

This is the rule we hold most firmly. When a source cannot be reached, we record the failure against the source and leave its offers exactly as they were. Their verification time ages, and they move through fresh, aging, stale and very stale as it does. Nothing is marked ended because a request timed out, returned a 500, or the provider changed its CDN.

A source that fails repeatedly is shown as failed, alongside the time of its last successful verification, so a reader can tell the difference between “this ended” and “we have not been able to check”.

Conflicts are preserved

When two official sources disagree, we store both readings and display both. A provider documenting 50 requests a day for unfunded accounts and 1,000 after ten dollars of lifetime credit is not a contradiction; it is two different conditions, and the honest rendering is the condition, not a single averaged number.

History is never deleted

An offer that ends is retained with its end date, the reason, and the evidence. A sweep appends an observation when the collected payload differs from the stored one; an identical payload only refreshes the verification timestamp, so repeated sweeps do not duplicate history. Nothing is overwritten. That history is the reason the site answers questions it could not answer when it launched, and deleting it would make the product worse the longer it ran.

Provenance of each row

Rows carry a provenance marker. An offer confirmed by an automated source in the last few hours is one thing; an offer established by documented research for a provider we do not yet poll automatically is another. Both are published, and both are labelled, because presenting one as the other would be the kind of quiet overstatement this product exists to avoid.

What we will not do

Independent

Free Pool Radar is an independent information service and is not affiliated with, endorsed by, or sponsored by any provider listed. We take no payment from providers, accept no affiliate links, and have no commercial relationship with any entry in the database.

Free access can be withdrawn, rate-limited, modified or exhausted without notice. Always review the provider’s current terms, privacy policy and usage restrictions before sending sensitive or production data.