Developer docs · v1.0.0

Free public APIs for developers: lists, data APIs and ours

Every "free APIs" list repeats the same weather and cat-fact endpoints. This one is about public records and government data: what is actually free, what each one needs, and what to build with it.

What counts as a free public API

A public API is one anyone can call: documented, reachable on the internet, open to sign-up. A free API is one with a tier that costs nothing — which, read carefully, means one of three different things. Knowing which one you are looking at saves an afternoon.

KindWhat "free" meansExample
No key at allSend the request; there is no account. Usually rate-limited by IP and with no support.NHTSA vehicle API, SEC EDGAR, USAspending
Free keyRegister, get a key, call within a daily or hourly quota. The common shape for government data.api.data.gov keys (FEC, GovInfo, FBI crime data), Census, openFDA
Free tier of a paid APIA sandbox, a trial allowance, or a monthly quota; production use is metered after that.OffenderSearch: a free sandbox plus 25 free live calls, then $0.15 a call
# A public API with no key at all: NHTSA's vehicle API decodes a VIN
curl "https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVin/1HGCM82633A004352?format=json"

# A public API with a free key: our sandbox (os_test_… key, nothing billed)
curl -X POST https://sandbox.offendersearch.app/v1/search \
  -H "X-API-Key: $OFFENDERSEARCH_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": {"firstName": "Exact", "lastName": "Match", "dob": "1980-01-01"}}'

Where to find public APIs: the directories that matter

There are a handful of directories worth bookmarking; the rest copy them. Each lists auth requirements and HTTPS/CORS support per API, which is the information you actually need before trying one.

DirectoryWhat it isGood for
public-apis on GitHubThe community list, thousands of entries by category, each with Auth / HTTPS / CORS columns. Pull-request curated.Breadth; the "Government" and "Open Data" sections
publicapis.ioA searchable front end over a curated list, with the same auth flags.Filtering by "no auth"
publicapi.devPer-API pages with a sample request and response.Seeing a response before signing up
free-for.devFree tiers of developer services, APIs included, with the limits spelled out.Knowing the free tier's ceiling
Postman API NetworkPublic workspaces with runnable collections.Trying an API without writing code; see Postman API documentation
RapidAPI HubA marketplace: one key, many APIs, usage-based billing.Comparing paid data APIs side by side
APIs.guruA directory of OpenAPI definitions.Generating a client from a schema; ours is at /openapi.json

Free public-records and government data APIs (US)

These are the ones a developer building anything to do with people, companies, courts or compliance should know. Auth and limits are as each provider's own documentation states them on the revised date of this page; follow the link for the current terms, and read each API's permitted-use rules before shipping.

APIWhat it returnsAuthPublished limit
CourtListener REST APIFederal and state case law, dockets (RECAP), judges, oral argumentsAPI token (free account)Rate-limited per token; see its docs
PACERFederal court dockets and documentsAccount; per-page fees with a quarterly waiverFee-based; see its docs
FBI Crime Data APIUCR / NIBRS crime statistics by agency, state and offenseapi.data.gov key (free)api.data.gov default: 1,000 requests an hour per key
SEC EDGARCompany filings, facts and submissions as JSONNone; a descriptive User-Agent is required10 requests a second
openFDADrug, device, food and recall dataOptional key1,000 a day without a key; 120,000 a day with one
US Census Bureau APIPopulation, demographics, economic seriesOptional key500 queries a day per IP without a key
OpenFECCampaign finance: candidates, committees, filingsapi.data.gov key (free)1,000 requests an hour per key
USAspending.gov APIFederal awards, contracts, grantsNoneSee its docs
NPPES NPI Registry APIHealthcare provider NPI recordsNoneSee its docs
SAM.gov Entity APIFederal contractor registrations and exclusionsapi.data.gov key (free); roles for some dataSee its docs
NHTSA vPIC APIVehicle identification: VIN decode, makes, modelsNoneSee its docs
Bureau of Labor Statistics API v2Employment, prices and wage seriesFree key500 queries a day with a key; v1 without a key is 25
data.gov CKAN APIThe catalogue of federal datasets (metadata, not the data itself)NoneSee its docs
None of these is a sex offender registry or criminal background API. The federal government publishes a public search website for registries, not an API, and there is no federal API for state criminal records. The registry and criminal-record data a screening integration needs comes from the states and counties, which is the gap the OffenderSearch API fills: one key, one request, 58 US registries or the criminal public-record sources, with a free sandbox. The NSOPW API explainer covers the question in full.

Public API for testing: "dummy" APIs versus a real sandbox

Half the searches for "public api" are developers who need something to call while they build. Two different things answer that need:

Dummy / mock APISandbox of a real API
ExamplesJSONPlaceholder, DummyJSON, a local JSON Serversandbox.offendersearch.app with an os_test_ key
DataToy: todos, posts, productsFixed test people with real field shapes: Exact Match (one verified record), Name Only (three possible matches), Clear Visitor (none)
ShapesMade up by the mockThe production serialisers; "sandbox": true is the only difference
ErrorsUsually noneReal validation: a 422 names the bad field; a 429 carries Retry-After
CostFreeFree; 60 requests a minute and 2,000 a day per test key
What you learnHow to make an HTTP callHow the integration you will ship behaves

Use a dummy API to learn HTTP. Use a sandbox to build the thing. The public API for testing page lists every fixed test name and what each returns, and sandbox and production explains the two hosts.

Search API vs data API vs verification API

Three terms that get used for the same endpoint and mean three different contracts:

TermContractHere
Data APIGive me the record(s) for X. The answer is rows.A registry record with addresses, offenses, photo, sources
Search APIHere is a query; give me ranked candidates with a confidence. The answer is a list, best first, plus how sure you are.POST /v1/search → records[] ordered by matchConfidence
Verification APIIs this claim true? The answer is a verdict with evidence.matchState: "dob_match" on a record; the verification report and evidence documents
import os, requests

# A search API: a query in, ranked matches out (here: 58 US sex offender registries)
r = requests.post(
    "https://sandbox.offendersearch.app/v1/search",
    headers={"X-API-Key": os.environ["OFFENDERSEARCH_TEST_KEY"]},
    json={"query": {"firstName": "Name", "lastName": "Only"}},     # a fixed test name: 3 possible matches
    timeout=60,
)
data = r.json()
for rec in data["records"]:                                       # best match first
    print(rec["matchConfidence"], rec["registrationState"], rec["name"]["full"])
# 0.75 AZ …  /  0.75 GA …  /  0.75 MI …   — name-only matches, so medium confidence, no dob verdict

The distinction matters when you pick an API: a data API with no confidence score makes you decide whether a row is your person; a search API tells you; a verification API hands you something you can show an auditor. The matching guide explains how this API scores, and the criminal records API applies the same idea to court and jail records.

Public APIs without a key, and why most data APIs need one

Keyless APIs exist where the data is harmless and the operator can afford anonymous traffic: vehicle decoding, company filings, dataset catalogues. A key appears the moment any of three things is true: the data is about people, the operator meters usage, or the operator needs to be able to shut off one abusive caller without shutting off everyone. Public-records APIs trip all three, which is why every serious one requires at least a free key.

A key is not friction for its own sake. It is what makes a free tier possible: 25 free calls can be given to each account only if accounts exist. The API token example shows how to create, scope and rotate one in a minute, and API key vs OAuth explains when a key is the right credential and when it is not.

How to choose a public API: a nine-point check

  1. Is there a schema? An OpenAPI document means you can generate a client and the docs cannot lie about field names.
  2. Is there a sandbox or a free tier you can hit today? A "contact sales" wall before the first call is a sign.
  3. Does the response say how complete it is? A data API that cannot say "this source did not answer" will hand you a false negative one day. Look for a status and per-source detail, like status and sourceStatus[] here.
  4. Does it score matches? For anything about people, a confidence and a date-of-birth verdict are the difference between a lead and a decision.
  5. Are errors structured? A detail.code you can branch on, and Retry-After on a 429.
  6. Is there a changelog and a versioned path? /v1 today means /v2 cannot break you tomorrow. See the changelog.
  7. Are the permitted uses written down? Public-records data has legal limits on use (employment and housing decisions are regulated). An API that explains them is one that has thought about them; see FCRA.
  8. What does it cost at your volume? Pay-per-call ($0.15 here) suits bursty and low-volume use; seat pricing suits steady high volume. See API pricing.
  9. Can an AI agent use it? An MCP server and an llms.txt mean the API works inside Claude or Cursor without glue code.

Best practices when you depend on a public API

  • Keep keys server-side and in environment variables; rotate on a schedule.
  • Set a timeout on every call and honour Retry-After on 429.
  • Persist ids (searchId, monitorId) before acting on results, so a retry can recover rather than resubmit.
  • Cache what is cacheable (reference data, your own completed searches) and never cache what is not (a screening answer about a person is point-in-time).
  • Read the completeness fields before treating "no results" as "nothing found".
  • Build against the sandbox, deploy against production with the host and key as the only difference — the RESTful API example is written that way.
  • Subscribe to the changelog and pin the version prefix.

Our public API: what is free, what is not

FreePaid
SandboxUnlimited test keys within 60 a minute / 2,000 a day each; the production response shape; never billed—
Live sex offender search25 calls on sign-up, no card$0.15 a call
Live criminal records searchIncluded in the 25$0.15 a call
Live re-check of a named source—$0.02 per completed source
Monitoring, evidence documents, FCRA ordersSandbox versions of eachPriced on their own pages

The free side is enough to build and demo a complete integration. The product pages describe each API: background check API, sex offender API, criminal records API; the free background check API page is the short version of this table.

What this page does not cover

  • Weather, finance, social and entertainment APIs. The directories above have hundreds; this page stays on public records and government data.
  • International public records. The APIs listed are United States sources, and ours is US-only.
  • Identity verification, credit, driving records. Different regulated categories with their own providers; none of the free APIs above does them and neither does this one.
  • Anything that requires a Social Security number. No API on this page asks for one.

FAQ: free and public API questions, answered

Are there free APIs for public records?

Yes for federal data (SEC, FEC, USAspending, court opinions via CourtListener) with free keys or none. For sex offender registries and state criminal records there is no free government API; a commercial API with a free sandbox and a free call allowance is the practical route.

What is a public API without a key?

One you can call with no account: NHTSA vPIC, SEC EDGAR, USAspending, the NPI registry. They are rate-limited by IP and offer no support or SLA.

What is the best API for background checks?

It depends on whether you need a regulated consumer report or a public-records lookup, and on volume. The comparison of background check APIs scores the options; the criminal record API comparison covers court and jail data.

What is a data API?

An API whose job is to return records about things rather than to perform actions in another application. The search vs data vs verification section explains the three flavours.

How do I get a public API key for free?

Register with the provider and create a key in its dashboard. Here: /sign-up, then Dashboard → API keys; a test key works on the sandbox at once. The API token example walks through it.