# FEC Schedule B Expenditures Search

> FEC Schedule B Expenditures Search is a paid API for AI agents from 2s.io, paid per call via x402, $0.0012/call, status unknown (last checked 2026-09-14).

Search all itemized federal political committee disbursements (>157M rows) from FEC Schedule B, filtering by committee, recipient, purpose, amount, and date.

## Facts

- Endpoint: GET https://2s.io/api/gov/fec-expenditures
- Price: $0.0012/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-io-49671714
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_S-Hqxk70N-T9Y4RxnVEnQ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-io-49671714
```

Example prompt: Show me all itemized disbursements made by committee C00703975 to any media vendors between 2023-01-01 and 2024-11-30, sorted by amount descending — I want to see who they paid the most for media spending.

## When to prefer this

Use this endpoint when you need to trace outgoing money flows from federal political committees — payments to vendors, contractors, media buyers, or other recipients. Ideal for campaign finance research, opposition research, journalism, or building follow-the-money analyses. Pairs naturally with the FEC contributions endpoint (/api/gov/fec-contributions) for full two-sided financial analysis. Prefer this over general web search when you need structured, filterable, citation-backed FEC data at scale.

## Known failure modes

- No results returned when committeeId is invalid or not found in FEC database
- Empty result set when date range or amount range filters are too narrow
- Malformed query parameters (e.g. non-integer twoYearTransactionPeriod) may return validation errors
- Rate limiting or payment failure (x402) if USDC balance is insufficient
- Pagination beyond available results returns empty page

## How this service works

Search FEC Schedule B — every itemized disbursement (spend, vendor payment, operating expenditure, contribution out, transfer) made by a federal political committee (>157M rows). Filter by committeeId, recipient name / city / state, disbursement purpose category (Administrative / Fundraising / Media / Polling / Salary / Travel / Operating / Contribution / Loan / etc.), description text, amount range, cycle, date range. Sort by date or amount. Every row carries: who got paid, when, how much, for what, with link to underlying PDF. The natural pair with /api/gov/fec-contributions for following the money on both sides of any federal committee.

## Output

A paginated list of itemized disbursement records from FEC Schedule B, each containing: recipient name, recipient city and state, disbursement date, disbursement amount, purpose category, description text, committee ID, and a link to the underlying FEC source PDF. Results are sortable by date or amount.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "page": 1,
   "perPage": 10,
   "sortField": "disbursement_date",
   "sortDirection": "desc"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "properties": {
      "page": {
       "type": "integer",
       "default": 1,
       "minimum": 1
      },
      "maxDate": {
       "type": "string"
      },
      "minDate": {
       "type": "string"
      },
      "perPage": {
       "type": "integer",
       "default": 25,
       "maximum": 100,
       "minimum": 1
      },
      "maxAmount": {
       "type": "number"
      },
      "minAmount": {
       "type": "number"
      },
      "sortField": {
       "enum": [
        "disbursement_date",
        "disbursement_amount"
       ],
       "type": "string"
      },
      "committeeId": {
       "type": "string"
      },
      "recipientCity": {
       "type": "string"
      },
      "recipientName": {
       "type": "string"
      },
      "sortDirection": {
       "enum": [
        "asc",
        "desc"
       ],
       "type": "string",
       "default": "desc"
      },
      "recipientState": {
       "type": "string"
      },
      "disbursementDescription": {
       "type": "string"
      },
      "twoYearTransactionPeriod": {
       "type": "integer"
      },
      "disbursementPurposeCategory": {
       "type": "string"
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-49671714/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
