← Back to Home

FMP Node API Documentation

Core API Wrapper

Senate & House Trading Endpoints

The Senate & House Trading endpoints provide access to congressional trading data, allowing you to track stock transactions made by members of Congress. This data is valuable for understanding potential conflicts of interest and market sentiment based on political insider trading.

Available Methods

MethodEndpointDescription
GET/senate-tradingGet senate trading data for a specific stock symbol
GET/senate-trading-rss-feedGet senate trading RSS feed with pagination
GET/senate-trades-by-nameGet senate trading data by senator name
GET/senate-disclosureGet house trading data for a specific stock symbol
GET/senate-disclosure-rss-feedGet house trading RSS feed with pagination
GET/house-trades-by-nameGet house trading data by representative name

Get Senate Trading Data

Retrieve senate trading data for a specific stock symbol.

1const senateTrading = await fmp.senateHouse.getSenateTrading({
2symbol: 'AAPL'
3});

Parameters

ParameterTypeRequiredDescription
symbolstringYesStock symbol (e.g., "AAPL", "MSFT", "GOOGL")

Example Response

1{
2success: true,
3data: [
4  {
5    firstName: "John",
6    lastName: "Doe",
7    office: "Senator",
8    link: "https://disclosures-clerk.house.gov/...",
9    dateRecieved: "2024-01-15",
10    transactionDate: "2024-01-10",
11    owner: "Self",
12    assetDescription: "Apple Inc. Common Stock",
13    assetType: "Stock",
14    type: "Purchase",
15    amount: "$1,001 - $15,000",
16    comment: "Purchase of Apple stock",
17    symbol: "AAPL"
18  }
19]
20}

Get Senate Trading RSS Feed

Retrieve senate trading data through RSS feed with pagination.

1const senateRSS = await fmp.senateHouse.getSenateTradingRSSFeed({
2page: 0
3});

Parameters

ParameterTypeRequiredDescription
pagenumberYesPage number for pagination (0-based)

Example Response

1{
2success: true,
3data: [
4  {
5    firstName: "Jane",
6    lastName: "Smith",
7    office: "Senator",
8    link: "https://disclosures-clerk.house.gov/...",
9    dateRecieved: "2024-01-20",
10    transactionDate: "2024-01-15",
11    owner: "Spouse",
12    assetDescription: "Microsoft Corporation Common Stock",
13    assetType: "Stock",
14    type: "Sale",
15    amount: "$15,001 - $50,000",
16    comment: "Sale of Microsoft stock",
17    symbol: "MSFT"
18  }
19]
20}

Get Senate Trading by Name

Retrieve senate trading data for a specific senator by name.

1const senateByName = await fmp.senateHouse.getSenateTradingByName({
2name: 'Jerry'
3});

Parameters

ParameterTypeRequiredDescription
namestringYesSenator name (e.g., "Jerry", "John")

Example Response

1{
2success: true,
3data: [
4  {
5    symbol: "AAPL",
6    disclosureDate: "2024-01-15",
7    transactionDate: "2024-01-10",
8    firstName: "Jerry",
9    lastName: "Senator",
10    office: "Senator",
11    district: "CA",
12    owner: "Self",
13    assetDescription: "Apple Inc. Common Stock",
14    assetType: "Stock",
15    type: "Purchase",
16    amount: "$1,001 - $15,000",
17    capitalGainsOver200USD: "No",
18    comment: "Purchase of Apple stock",
19    link: "https://disclosures-clerk.house.gov/..."
20  }
21]
22}

Get House Trading Data

Retrieve house trading data for a specific stock symbol.

1const houseTrading = await fmp.senateHouse.getHouseTrading({
2symbol: 'GOOGL'
3});

Parameters

ParameterTypeRequiredDescription
symbolstringYesStock symbol (e.g., "AAPL", "MSFT", "GOOGL")

Example Response

1{
2success: true,
3data: [
4  {
5    disclosureYear: "2024",
6    disclosureDate: "2024-01-15",
7    transactionDate: "2024-01-10",
8    owner: "Self",
9    ticker: "GOOGL",
10    assetDescription: "Alphabet Inc. Class C Capital Stock",
11    type: "Purchase",
12    amount: "$1,001 - $15,000",
13    representative: "John Representative",
14    district: "CA-12",
15    link: "https://disclosures-clerk.house.gov/...",
16    capitalGainsOver200USD: "No"
17  }
18]
19}

Get House Trading RSS Feed

Retrieve house trading data through RSS feed with pagination.

1const houseRSS = await fmp.senateHouse.getHouseTradingRSSFeed({
2page: 0
3});

Parameters

ParameterTypeRequiredDescription
pagenumberYesPage number for pagination (0-based)

Example Response

1{
2success: true,
3data: [
4  {
5    disclosureYear: "2024",
6    disclosureDate: "2024-01-20",
7    transactionDate: "2024-01-15",
8    owner: "Spouse",
9    ticker: "TSLA",
10    assetDescription: "Tesla, Inc. Common Stock",
11    type: "Sale",
12    amount: "$15,001 - $50,000",
13    representative: "Jane Representative",
14    district: "NY-14",
15    link: "https://disclosures-clerk.house.gov/...",
16    capitalGainsOver200USD: "Yes"
17  }
18]
19}

Get House Trading by Name

Retrieve house trading data for a specific representative by name.

1const houseByName = await fmp.senateHouse.getHouseTradingByName({
2name: 'Nancy'
3});

Parameters

ParameterTypeRequiredDescription
namestringYesRepresentative name (e.g., "Nancy", "Kevin")

Example Response

1{
2success: true,
3data: [
4  {
5    symbol: "TSLA",
6    disclosureDate: "2024-01-20",
7    transactionDate: "2024-01-15",
8    firstName: "Nancy",
9    lastName: "Representative",
10    office: "House",
11    district: "NY-14",
12    owner: "Spouse",
13    assetDescription: "Tesla, Inc. Common Stock",
14    assetType: "Stock",
15    type: "Sale",
16    amount: "$15,001 - $50,000",
17    capitalGainsOver200USD: "Yes",
18    comment: "Sale of Tesla stock",
19    link: "https://disclosures-clerk.house.gov/..."
20  }
21]
22}

Data Types

SenateTradingResponse

1interface SenateTradingResponse {
2firstName: string;
3lastName: string;
4office: string;
5link: string;
6dateRecieved: string;
7transactionDate: string;
8owner: string;
9assetDescription: string;
10assetType: string;
11type: string;
12amount: string;
13comment: string;
14symbol: string;
15}

HouseTradingResponse

1interface HouseTradingResponse {
2disclosureYear: string;
3disclosureDate: string;
4transactionDate: string;
5owner: string;
6ticker: string;
7assetDescription: string;
8type: string;
9amount: string;
10representative: string;
11district: string;
12link: string;
13capitalGainsOver200USD: string;
14}

SenateHouseTradingByNameResponse

1interface SenateHouseTradingByNameResponse {
2symbol: string;
3disclosureDate: string;
4transactionDate: string;
5firstName: string;
6lastName: string;
7office: string;
8district: string;
9owner: string;
10assetDescription: string;
11assetType: string;
12type: string;
13amount: string;
14capitalGainsOver200USD: string;
15comment: string;
16link: string;
17}

Data Guarantees

  • All list endpoints always return an array (never undefined). If there are no results, the array will be empty.
  • Single-object endpoints always return an object (never undefined). If there is no result, the object will be empty.
  • This ensures type safety and a consistent developer experience.

Error Handling

Always check the success property before accessing data:

1const result = await fmp.senateHouse.getSenateTrading({ symbol: 'AAPL' });
2
3if (result.success) {
4console.log('Senate trading data:', result.data);
5} else {
6console.error('Error:', result.error);
7console.error('Status:', result.status);
8}

Rate Limits

Senate and house trading endpoints are subject to FMP's rate limits. For production applications, implement appropriate rate limiting and caching strategies.


Next Steps

Explore other endpoint categories: