FMP Node API Documentation
SEC Endpoints
Access Securities and Exchange Commission (SEC) filings and industry classification data. These endpoints provide real-time feeds of SEC filings, direct links to specific filings, and industry classification information based on the Standard Industrial Classification (SIC) system.
Overview
The SEC endpoints provide access to:
- RSS Feeds - Real-time feeds of SEC filings from publicly traded companies
- SEC Filings - Direct links to specific SEC filings for companies
- Industry Classification - SIC-based industry classification data
RSS Feed API (v4)
Get a real-time feed of SEC filings from publicly traded companies, including the filing type, link to SEC page, and direct link to the filing.
1const response = await fmp.sec.getRSSFeed({
2limit: 100,
3type: '10-K',
4from: '2024-01-01',
5to: '2024-12-31',
6isDone: true
7});
8
9if (response.success) {
10response.data.forEach(filing => {
11console.log(`${filing.title} - ${filing.date}`);
12console.log(`Link: ${filing.link}`);
13console.log(`CIK: ${filing.cik}`);
14console.log(`Form Type: ${filing.form_type}`);
15console.log(`Ticker: ${filing.ticker}`);
16});
17}
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
limit | number | No | Number of results to return (default: 100) |
type | string | No | Filter by form type (e.g., '10-K', '8-K') |
from | string | No | Start date in YYYY-MM-DD format |
to | string | No | End date in YYYY-MM-DD format |
isDone | boolean | No | Filter by completion status |
Response
1interface RSSFeedItem {
2title: string;
3date: string;
4link: string;
5cik: string;
6form_type: string;
7ticker: string;
8done: boolean;
9}
RSS Feed All API
Get a real-time feed of all SEC filings from publicly traded companies in the latest RSS feed format. This endpoint provides a comprehensive overview of all SEC filings, including the filing type, link to SEC page, and direct link to the filing.
1const response = await fmp.sec.getRSSFeedAll({
2page: 0,
3datatype: 'csv'
4});
5
6if (response.success) {
7response.data.forEach(filing => {
8console.log(`${filing.symbol}: ${filing.type} - ${filing.fillingDate}`);
9console.log(`Accepted: ${filing.acceptedDate}`);
10console.log(`Link: ${filing.link}`);
11console.log(`Final Link: ${filing.finalLink}`);
12});
13}
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
page | number | No | Page number for pagination (default: 0) |
datatype | string | No | Data format (e.g., 'csv', 'json') |
Response
1interface RSSFeedAllItem {
2symbol: string;
3fillingDate: string;
4acceptedDate: string;
5cik: string;
6type: string;
7link: string;
8finalLink: string;
9}
RSS Feed V3 API
Get a real-time feed of SEC filings in the latest RSS feed format (V3), which includes support for multiple namespaces, digital signatures, enclosures, and categories and tags.
1const response = await fmp.sec.getRSSFeedV3({
2page: 0,
3datatype: 'csv'
4});
5
6if (response.success) {
7response.data.forEach(filing => {
8console.log(`${filing.title} - ${filing.date}`);
9console.log(`Form Type: ${filing.form_type}`);
10console.log(`Ticker: ${filing.ticker}`);
11});
12}
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
page | number | No | Page number for pagination (default: 0) |
datatype | string | No | Data format (e.g., 'csv', 'json') |
Response
1interface RSSFeedV3Item {
2title: string;
3date: string;
4link: string;
5cik: string;
6form_type: string;
7ticker: string;
8done: boolean;
9}
RSS Feed 8-K API
Get a real-time feed of 8-K SEC filings from publicly traded companies. 8-K filings are required when a company experiences a significant event.
1const response = await fmp.sec.getRSSFeed8K({
2page: 0,
3from: '2024-01-01',
4to: '2024-12-31',
5hasFinancial: true,
6limit: 10
7});
8
9if (response.success) {
10response.data.forEach(filing => {
11console.log(`${filing.title} - ${filing.symbol}`);
12console.log(`Date: ${filing.date}`);
13console.log(`SEC Link: ${filing.link}`);
14console.log(`Final Link: ${filing.finalLink}`);
15});
16}
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
page | number | No | Page number for pagination (default: 0) |
from | string | No | Start date in YYYY-MM-DD format |
to | string | No | End date in YYYY-MM-DD format |
hasFinancial | boolean | No | Filter filings that contain financial data |
limit | number | No | Number of results to return |
Response
1interface RSSFeed8KItem {
2title: string;
3symbol: string;
4cik: string;
5link: string;
6finalLink: string;
7date: string;
8}
SEC Filings API
Access direct links to SEC filings for a specific company, including the filing type, link to the SEC page, and direct link to the specific filing.
1const response = await fmp.sec.getSECFilings({
2symbol: 'AAPL',
3params: {
4 page: 0,
5 type: '10-K'
6}
7});
8
9if (response.success) {
10response.data.forEach(filing => {
11console.log(`${filing.type} - ${filing.symbol}`);
12console.log(`Accepted: ${filing.acceptedDate}`);
13console.log(`Filing Date: ${filing.fillingDate}`);
14console.log(`SEC Link: ${filing.link}`);
15console.log(`Final Link: ${filing.finalLink}`);
16});
17}
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
symbol | string | Yes | The stock symbol to get filings for |
page | number | No | Page number for pagination (default: 0) |
type | string | No | Filter by form type (e.g., '10-K') |
Response
1interface SECFiling {
2symbol: string;
3cik: string;
4type: string;
5link: string;
6finalLink: string;
7acceptedDate: string;
8fillingDate: string;
9}
Individual Industry Classification API
Identify the industry in which a particular company operates, based on the Standard Industrial Classification (SIC) system.
1// Get by symbol
2const response = await fmp.sec.getIndividualIndustryClassification({
3symbol: 'AAPL'
4});
5
6// Or get by CIK
7const responseByCIK = await fmp.sec.getIndividualIndustryClassification({
8cik: 320193
9});
10
11if (response.success) {
12const company = response.data;
13console.log(`${company.name} (${company.symbol})`);
14console.log(`SIC Code: ${company.sicCode}`);
15console.log(`Industry: ${company.industryTitle}`);
16console.log(`Phone: ${company.phoneNumber}`);
17console.log(`Address: ${company.businessAdress}`);
18}
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
symbol | string | No* | The stock symbol to classify |
cik | number | No* | The CIK number to classify |
sicCode | number | No* | The SIC code to search for |
*At least one parameter is required
Response
1interface IndustryClassification {
2symbol: string;
3name: string;
4cik: string;
5sicCode: string;
6industryTitle: string;
7businessAdress: string; // API returns as string, not array
8phoneNumber: string;
9}
All Industry Classification API
Get a comprehensive overview of all industries, classified according to the SIC system.
1const response = await fmp.sec.getAllIndustryClassifications();
2
3if (response.success) {
4response.data.forEach(company => {
5console.log(`${company.name} (${company.symbol})`);
6console.log(`SIC Code: ${company.sicCode}`);
7console.log(`Industry: ${company.industryTitle}`);
8});
9}
Response
Returns an array of IndustryClassification
objects (same as Individual Industry Classification API).
Industry Classification Codes API
Learn more about the SIC system and identify the SIC code for a particular industry.
1// Search by industry title
2const response = await fmp.sec.getIndustryClassificationCodes({
3industryTitle: 'services'
4});
5
6// Or search by SIC code
7const responseByCode = await fmp.sec.getIndustryClassificationCodes({
8sicCode: 6321
9});
10
11if (response.success) {
12response.data.forEach(code => {
13console.log(`Office: ${code.office}`);
14console.log(`SIC Code: ${code.sicCode}`);
15console.log(`Industry: ${code.industryTitle}`);
16});
17}
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
industryTitle | string | No* | Search by industry title |
sicCode | number | No* | Search by SIC code |
*At least one parameter is required
Response
1interface IndustryClassificationCode {
2office: string;
3sicCode: string;
4industryTitle: string;
5}
Common Use Cases
Monitor Recent SEC Filings
1// Get recent 10-K filings
2const recentFilings = await fmp.sec.getRSSFeed({
3limit: 50,
4type: '10-K',
5from: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0], // 30 days ago
6isDone: true
7});
8
9if (recentFilings.success) {
10console.log('Recent 10-K filings:');
11recentFilings.data.forEach(filing => {
12console.log(`${filing.ticker}: ${filing.title} (${filing.date})`);
13});
14}
Track 8-K Events
1// Get 8-K filings with financial data
2const eightKFilings = await fmp.sec.getRSSFeed8K({
3hasFinancial: true,
4limit: 20
5});
6
7if (eightKFilings.success) {
8console.log('8-K filings with financial data:');
9eightKFilings.data.forEach(filing => {
10console.log(`${filing.symbol}: ${filing.title}`);
11console.log(`Date: ${filing.date}`);
12console.log(`Final Link: ${filing.finalLink}`);
13});
14}
Analyze Company SEC History
1// Get all SEC filings for a company
2const companyFilings = await fmp.sec.getSECFilings({
3symbol: 'AAPL'
4});
5
6if (companyFilings.success) {
7console.log('Apple SEC filings:');
8companyFilings.data.forEach(filing => {
9console.log(`${filing.type}: ${filing.acceptedDate}`);
10console.log(`Link: ${filing.finalLink}`);
11});
12}
Industry Analysis
1// Get industry classification for multiple companies
2const companies = ['AAPL', 'MSFT', 'GOOGL'];
3
4for (const symbol of companies) {
5const classification = await fmp.sec.getIndividualIndustryClassification({
6symbol: symbol
7});
8
9if (classification.success && classification.data.length > 0) {
10const company = classification.data[0];
11console.log(`${company.symbol}: ${company.industryTitle} (SIC: ${company.sicCode})`);
12}
13}
Error Handling
All SEC endpoints return the standard API response format:
1const response = await fmp.sec.getRSSFeed();
2
3if (response.success) {
4// Handle successful response
5console.log(response.data);
6} else {
7// Handle error
8console.error('Error:', response.error);
9console.error('Status:', response.status);
10}
Rate Limiting
SEC endpoints are subject to FMP's standard rate limits. For high-volume applications, consider implementing appropriate caching and rate limiting strategies.
Related Endpoints
- Company Endpoints - Company profiles and information
- Financial Endpoints - Financial statements and ratios
- Institutional Endpoints - Form 13F filings and institutional data