Project API docs
Pay-per-call public-data API for AI agents and developers. Each feed returns slim JSON from an official public source with a link back to that source. No account and no API key: an unpaid request gets HTTP 402 with the exact price, and payment is made in USDC using the open x402 protocol.
How a call works
- Send a normal
GETto a/paid/...endpoint. - Without payment you get
HTTP 402 Payment Required. ThePAYMENT-REQUIREDheader (base64 JSON, x402 version 2) lists the price, network (Base), USDC asset and pay-to address. The JSON body repeats the amount, network and asset. - Your x402 client signs a USDC payment for that exact amount and repeats the request with a
PAYMENT-SIGNATUREheader. - On success you get
200with the JSON feed and aPAYMENT-RESPONSEheader with the settlement receipt.
Example
curl -i https://project-api-gamma-sable.vercel.app/paid/hello # HTTP/2 402 # payment-required: eyJ4NDAyVmVyc2lvbiI6Mi...
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.BUYER_KEY);
const pay = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
});
const res = await pay("https://project-api-gamma-sable.vercel.app/paid/sec/submissions?cik=320193");
console.log(await res.json());
Machine-readable discovery
- OpenAPI 3 spec: every endpoint, parameter and price.
- /.well-known/x402: x402 resource list.
- /catalog: JSON catalog (HTML when a browser asks).
- llms.txt and llms-full.txt: plain-text summary for AI assistants.
- /status and /health: free service checks.
Endpoints
GET /paid/hello
Smoke / connectivity check. Price: $0.001 USDC per call.
Query parameters: none. Required: none.
GET /paid/sam/opportunities
SAM.gov contract opportunities (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: postedFrom, postedTo, ncode, ptype, state, title, limit, offset. Required: postedFrom, postedTo.
GET /paid/usaspending/awards
USASpending.gov award search (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: startDate, endDate, awardType, naics, awardingAgency, limit, page. Required: startDate, endDate.
GET /paid/federalregister/documents
Federal Register rules/notices/EOs (slim JSON + html uiLink). Price: $0.01 USDC per call.
Query parameters: term, agency, type, publishedFrom, publishedTo, limit, page. Required: (at least one filter).
GET /paid/openfda/drug-events
openFDA FAERS drug adverse events (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: search, limit, skip. Required: search.
GET /paid/clinicaltrials/studies
ClinicalTrials.gov studies search (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: term, limit, pageToken. Required: term.
GET /paid/nhtsa/recalls
NHTSA vehicle recalls by make/model/year (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: make, model, modelYear, limit. Required: make, model, modelYear.
GET /paid/usgs/earthquakes
USGS earthquake events (slim GeoJSON features + uiLink). Price: $0.01 USDC per call.
Query parameters: limit, minmagnitude, starttime, endtime, orderby. Required: none.
GET /paid/openfda/device-events
openFDA MAUDE device adverse events (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: search, limit, skip. Required: search.
GET /paid/sec/company-tickers
SEC company tickers (CIK/ticker/title + Edgar uiLink). Price: $0.01 USDC per call.
Query parameters: q, limit. Required: none.
GET /paid/nih/reporter/projects
NIH RePORTER project search (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: q, term, limit, offset. Required: q or term.
GET /paid/openalex/works
OpenAlex works search (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: search, q, limit, per_page, page. Required: search or q.
GET /paid/fema/disasters
FEMA disaster declarations (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: q, term, state, limit, top, skip. Required: none.
GET /paid/openfda/food-enforcement
openFDA food enforcement recalls (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: search, limit, skip. Required: search.
GET /paid/nws/alerts
NWS/NOAA active weather alerts by state (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: area, event, severity, urgency, status, message_type, messageType, limit. Required: area.
GET /paid/treasury/debt-to-penny
Treasury Fiscal Data debt to the penny (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: recordDate, record_date, startDate, start_date, endDate, end_date, limit, page. Required: none.
GET /paid/nsf/awards
NSF Award Search (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: keyword, q, id, awardeeName, org, limit, rpp, offset. Required: keyword (or q), id, or awardeeName (or org).
GET /paid/pubmed/search
NCBI PubMed bibliographic search via esearch (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: term, q, retmax, limit, retstart, offset. Required: term (or q).
GET /paid/sec/submissions
SEC EDGAR submissions by CIK (entity + capped recent filings + uiLink). Price: $0.01 USDC per call.
Query parameters: cik, limit. Required: cik.
GET /paid/eric/search
ERIC education literature search via IES/ED (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: search, q, term, rows, limit, start, offset. Required: search (or q / term).
GET /paid/noaa/coops
NOAA CO-OPS water levels / tide predictions (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: station, stationId, id, product, datum, date, beginDate, begin_date, endDate, end_date, timeZone, time_zone, units, interval, limit. Required: station (or stationId / id).
GET /paid/ecfr/search
eCFR full-text regulatory search (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: query, q, term, limit, per_page, page, date, agency, agency_slugs, order, last_modified_after, last_modified_on_or_after, last_modified_before, last_modified_on_or_before. Required: query (or q / term).
GET /paid/europepmc/search
Europe PMC life-sci article search (slim JSON + uiLink; OA IDs). Price: $0.01 USDC per call.
Query parameters: query, q, term, pageSize, limit, cursorMark, cursor, resultType. Required: query (or q / term).
GET /paid/cms/nppes
CMS NPPES NPI Registry provider search (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: number, npi, first_name, last_name, organization_name, org, city, state, postal_code, taxonomy_description, enumeration_type, limit, skip, offset. Required: number|npi OR first_name+last_name OR organization_name|org OR city+state OR taxonomy_description.
GET /paid/gleif/lei
GLEIF LEI legal-entity identity lookup (slim JSON + uiLink; ≠ yente). Price: $0.01 USDC per call.
Query parameters: lei, q, query, name, limit, page[size], page_size. Required: lei OR q|query|name.
GET /paid/worldbank/indicator
World Bank v2 country indicator time series (slim JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: indicator, id, country, countries, date, limit, per_page, page. Required: indicator|id, country|countries.
GET /paid/wikidata/sparql
Wikidata SPARQL SELECT/ASK (bounded JSON + uiLink). Price: $0.01 USDC per call.
Query parameters: query, sparql, q, limit. Required: query|sparql.
GET /paid/arxiv/search
arXiv Atom API preprint search (slim JSON + abs/pdf links). Price: $0.01 USDC per call.
Query parameters: query, q, search_query, start, max_results, limit, sortBy, sortOrder. Required: query (or q / search_query).
GET /paid/usitc/hts
USITC Harmonized Tariff Schedule search (slim JSON + duty rates). Price: $0.01 USDC per call.
Query parameters: keyword, q, query, htsno, hts, limit. Required: keyword (or q / htsno).
GET /paid/epa/echo
EPA ECHO facility compliance search (slim JSON + facility report link). Price: $0.01 USDC per call.
Query parameters: name, q, facility, state, city, zip, registryId, fid, limit. Required: name (or q / state / city / zip / registryId).
GET /paid/nhtsa/vpic
NHTSA vPIC VIN decode (slim JSON; not the recalls feed). Price: $0.01 USDC per call.
Query parameters: vin, modelYear. Required: vin.
GET /paid/nist/nvd
NIST NVD CVE/CPE search with CISA KEV flags (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: cve, keyword, q, cpe, kev, limit. Required: cve (or keyword / cpe).
GET /paid/ror/org
Research Organization Registry lookup (slim JSON). Price: $0.01 USDC per call.
Query parameters: query, q, id, limit. Required: query (or q / id).
GET /paid/datacite/doi
DataCite DOI metadata (slim JSON). Price: $0.01 USDC per call.
Query parameters: doi, query, q, limit. Required: doi (or query / q).
GET /paid/cfpb/hmda
CFPB HMDA data-browser aggregations (slim JSON, not raw LAR). Price: $0.01 USDC per call.
Query parameters: years, year, states, state, lei, actions_taken, loan_types. Required: years, states (or lei).
GET /paid/fdic/banks
FDIC BankFind institution search (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: name, q, state, cert, limit. Required: name (or q / state / cert).
GET /paid/cms/open-payments
CMS Open Payments Sunshine Act search (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: last, name, npi, state, year, kind, limit. Required: last (or name / npi).
GET /paid/senate/lda
Senate LDA lobbying filings (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: registrant, q, client, year, limit. Required: registrant (or q / client).
GET /paid/zenodo/records
Zenodo research record search (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: q, query, limit. Required: q (or query).
GET /paid/cpsc/recalls
CPSC consumer-product recalls (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: recall, number, product, q, start, end, limit. Required: recall (or product).
GET /paid/cfpb/complaints
CFPB consumer complaint search (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: q, search, company, product, state, limit. Required: q (or company / product).
GET /paid/usgs/water
USGS water daily or continuous observations (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: site, id, collection, parameter, datetime, limit. Required: site.
GET /paid/nyfed/rates
NY Fed latest SOFR and reference rates (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: type. Required: none.
GET /paid/opencitations/count
OpenCitations citation count for a DOI (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: doi, q. Required: doi.
GET /paid/core/works
CORE.ac.uk works search (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: q, query, limit. Required: q (or query).
GET /paid/who/gho
WHO GHO indicator values (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: code, indicator, country, limit. Required: code.
GET /paid/gbif/species
GBIF species name match (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: name, q. Required: name (or q).
GET /paid/ietf/rfc
IETF RFC metadata (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: number, rfc. Required: number.
GET /paid/loc/search
Library of Congress search (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: q, query, limit. Required: q (or query).
GET /paid/openlibrary/search
Open Library book search (slim JSON, no key). Price: $0.01 USDC per call.
Query parameters: q, query, limit. Required: q (or query).