POPVOX DATA · PUBLIC READ-ONLY API Beta
Appropriations API and downloads
Public records of congressional requests to fund specific community projects.
No account or API key required. JSON responses and complete CSV/JSON downloads. The API and downloads are being tested.
How community project funding works
Congressionally Directed Spending (CDS) is the Senate’s term; Community Project Funding (CPF) is the House’s term. Both let Members of Congress request federal funding for specific projects in their communities, often called earmarks. They are part of the annual appropriations process, in which Congress decides how to fund the federal government. Federal agency overview.
- Organizations apply to a Member’s office. State, local and tribal governments, and eligible nonprofit organizations, propose projects to a Representative or Senator. Eligible recipients and activities depend on the funding account and that year’s rules. Offices set their own application procedures and deadlines. See examples of House office intake and Senate office intake.
- The Member’s office reviews the applications. Offices consider funding requirements, community needs and support, and their own priorities before deciding which projects to recommend. Applying does not guarantee the Member will select a project. Example of an office’s review criteria.
- The Member submits selected requests to appropriations subcommittees. These panels handle different parts of the federal budget, such as transportation or agriculture. For FY2027, each House Member may submit up to 20 projects across all subcommittees. The Senate sets limits for particular subcommittees or accounts. Members must publicly disclose their requests and certify that they have no prohibited financial interest. See the House’s FY2027 guidance and Senate requirements, including Senate submission limits.
- Subcommittees choose projects for their bills. They review Member requests and recommend projects and funding amounts within the bill’s budget and requirements. The appropriations committee considers the bill and publishes project tables. A request can be left out or included at a different amount. The House publishes separate lists of requested projects and projects included in its bills; Senate guidance explains the committee’s funding discretion.
- Funding still requires enactment and agency administration. Inclusion in a committee bill is an intermediate step. Funding must survive the legislative process and become law. The responsible federal agency then administers the project funding under the applicable requirements. See the Federal Transit Administration’s explanation.
What the records on this page represent
- Requested: projects that Members submitted to appropriations committees, as reported in the Senate’s consolidated table or collected House Member disclosures. These are not all the applications received by Member offices.
- Included in a House bill: projects listed in the House Appropriations Committee’s published bill tables. This status does not establish that funding became law or that an agency made an award.
The project records cover FY2027. Both chambers consider projects for their bills. This collection includes Senate Member requests, but does not yet include Senate bill-inclusion tables. House request collection is incomplete. The two stages are separate observations, and their dollar amounts should not be added together. These datasets do not track enacted funding, agency awards, or payments.
Funding accounts and program guidance
This reference list identifies agencies, funding accounts, and programs described in House and Senate guidance for community project requests in FY2026 and FY2027. Each entry links to its source guidance. An account is a budget category within an agency. The list does not establish that a particular project is eligible or funded.
EXAMPLE QUERY
Search records
Open this JSON response →Search is a literal substring across names, purpose, place and reported account. “Water” is an example keyword, not a complete issue classification. House state may refer to the recipient’s address; inspect each record’s location_basis.
curl 'https://popvox.com/api/explorer/appropriations/v1/records?chamber=senate&state=MD&q=water&limit=5'THE API
API endpoints
POPVOX API guide · All datasets
Dataset metadata · JSON · API specification · OpenAPI 3.1 JSON ↓
Base URL: https://popvox.com/api/explorer/appropriations/v1
| Endpoint | Use it for |
|---|---|
/datasets | Coverage, source dates, release IDs, SHA-256 checksums and download links. |
/records | Filter by chamber, year, stage, state, Bioguide Member ID, subcommittee, account, amount, or text. |
/record | Follow a record ID to original fields, source evidence, Member references and candidate connections. |
/aggregates | Exact gross amounts by state, Member, subcommittee or account. House queries require one stage. |
/funding-lines | Agency, account and program references from House and Senate guidance, organized by chamber, fiscal year and request type. |
/openapi.json | A machine-readable contract for your application or coding assistant. |
Use chamber=house or chamber=senate. For a House aggregate, also specify stage=requested or stage=included_in_house_bill. Funding-line lookups require fiscal_year and request_type=cpf (House) or cds (Senate).
Up to 200 records per page; 120 requests per minute per client IP. GET, HEAD and OPTIONS are supported, with public CORS and ETag caching. Honor Retry-After on HTTP 429. For bulk work, use the complete downloads.
Pagination and snapshot IDs
Amounts in meta.totals_by_stage cover every matching record, including those beyond the current page. Carry meta.snapshot and meta.next_offset on subsequent calls. HTTP 409 means restart against the new snapshot.
const base = 'https://popvox.com/api/explorer/appropriations/v1/records';
const params = new URLSearchParams({chamber: 'senate', state: 'MD', limit: '200'});
const records = [];
for (;;) {
const response = await fetch(`${base}?${params}`);
if (!response.ok) throw new Error(`HTTP ${response.status}: retry or restart as documented`);
const {data, meta} = await response.json();
records.push(...data);
if (meta.next_offset === null) break;
params.set('snapshot', meta.snapshot);
params.set('offset', meta.next_offset);
}DATASETS & DOWNLOADS
Available datasets
Download one ZIP with all three source-linked JSON datasets, flat CSVs, source-check results, API field definitions and a checksum manifest. No account, API calls, or pagination required.
Senate community project requests
FY2027 · 13,380 Member requests for Congressionally Directed Spending. Bill inclusions are not collected here.
House community project records
FY2027 · 2,514 collected Member requests for Community Project Funding and 6,427 bill-table records. Request collection is incomplete; stages remain separate.
Funding accounts and program guidance
FY2026–2027 · 213 reference entries from House and Senate guidance, with agency, account and program references and source links.
CSV files use UTF-8 and preserve a separate stage column. Lists of Member IDs use semicolons. Text that could be read as a spreadsheet formula receives a leading apostrophe; the JSON files preserve the original text.
Unresolved House account matches · JSON ↓
Browse Senate requests · Browse House funding records · Request other legislative-data APIs
Checked October 2, 2026: all 13,380 consolidated Senate rows match the collected source, and all 26 checked committee tables and guidance PDFs are unchanged. This check does not cover every Member disclosure or certification. The Senate table’s stated update remains June 1, 2026; its original collection was September 7. Read the scope and hashes.
The House snapshot includes a documented extraction correction: one recovered University of Guam request for $2.35 million, plus corrected account boundaries. The 6,427 House bill-table rows are unchanged. Historical record aliases preserve old links; the download retains the correction history.
Coverage and limitations
- House Member disclosure coverage is incomplete. Missing records do not mean rejection or nonparticipation.
- Gross totals retain overlapping projects. House records can list multiple Members: each Member group receives the full amount, so Member groups are not additive.
- The Senate consolidated table supplies no request-level account assignments. Guidance funding lines are possible references, not assigned accounts.
- Funding IDs are POPVOX reference IDs, not Treasury Account Symbols or Assistance Listing Numbers. No external crosswalk is implied.
- FY2028 returns
guidance_pendingwith no lines. Detailed eligibility and programmatic/language catalogs remain incomplete; there is no prior-year fallback. - Source documents retain applicable rights and terms. No additional compilation license or government endorsement is asserted.
Credit POPVOX and the underlying publisher, retain source links and dates, and distinguish source records from your conclusions. Sources and methods.