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

  1. Send a normal GET to a /paid/... endpoint.
  2. Without payment you get HTTP 402 Payment Required. The PAYMENT-REQUIRED header (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.
  3. Your x402 client signs a USDC payment for that exact amount and repeats the request with a PAYMENT-SIGNATURE header.
  4. On success you get 200 with the JSON feed and a PAYMENT-RESPONSE header 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

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).

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.

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).

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).

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.

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.

Library of Congress search (slim JSON, no key). Price: $0.01 USDC per call.

Query parameters: q, query, limit. Required: q (or query).

Open Library book search (slim JSON, no key). Price: $0.01 USDC per call.

Query parameters: q, query, limit. Required: q (or query).