FMP Node API Documentation
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
Method | Endpoint | Description |
---|---|---|
GET | /senate-trading | Get senate trading data for a specific stock symbol |
GET | /senate-trading-rss-feed | Get senate trading RSS feed with pagination |
GET | /senate-trades-by-name | Get senate trading data by senator name |
GET | /senate-disclosure | Get house trading data for a specific stock symbol |
GET | /senate-disclosure-rss-feed | Get house trading RSS feed with pagination |
GET | /house-trades-by-name | Get 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
Parameter | Type | Required | Description |
---|---|---|---|
symbol | string | Yes | Stock 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
Parameter | Type | Required | Description |
---|---|---|---|
page | number | Yes | Page 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
Parameter | Type | Required | Description |
---|---|---|---|
name | string | Yes | Senator 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
Parameter | Type | Required | Description |
---|---|---|---|
symbol | string | Yes | Stock 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
Parameter | Type | Required | Description |
---|---|---|---|
page | number | Yes | Page 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
Parameter | Type | Required | Description |
---|---|---|---|
name | string | Yes | Representative 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:
- Stock Endpoints - Real-time and historical stock data
- Company Endpoints - Company profiles, executive compensation, and employee data
- Financial Endpoints - Financial statements and ratios
- Market Endpoints - Market indices and sector data
- Calendar Endpoints - Earnings, dividends, and economic calendars
- List Endpoints - Available symbols and instruments
- Examples - Practical code samples