All Projects → janlukasschroeder → Sec Api

janlukasschroeder / Sec Api

sec.gov EDGAR API | search & filter SEC filings | over 150 form types supported | 10-Q, 10-K, 8, 4, 13, S-11, ... | insider trading

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Sec Api

Streamhut
Stream your terminal to web without installing anything 🌐
Stars: ✭ 676 (+852.11%)
Mutual labels:  stream, websockets, real-time
Sandstone
PHP microframework designed to build a RestApi working together with a websocket server. Build a real time RestApi!
Stars: ✭ 98 (+38.03%)
Mutual labels:  websocket, websockets, real-time
Stl.fusion
Get real-time UI updates in Blazor apps and 10-1000x faster API responses with a novel approach to distributed reactive computing. Fusion brings computed observables and automatic dependency tracking from Knockout.js/MobX/Vue to the next level by enabling a single dependency graph span multiple servers and clients, including Blazor apps running in browser.
Stars: ✭ 858 (+1108.45%)
Mutual labels:  websockets, real-time
Intrinio Realtime Node Sdk
Intrinio NodeJS SDK for Real-Time Stock & Crypto Prices
Stars: ✭ 30 (-57.75%)
Mutual labels:  websockets, real-time
Socketcluster Server
Minimal server module for SocketCluster
Stars: ✭ 70 (-1.41%)
Mutual labels:  websocket, websockets
Bigq
Messaging platform in C# for TCP and Websockets, with or without SSL
Stars: ✭ 18 (-74.65%)
Mutual labels:  websocket, websockets
Erlach
☣⚫⚫ SPA Imageboad on WebSockets written on Erlang
Stars: ✭ 23 (-67.61%)
Mutual labels:  websocket, websockets
Rtb
Benchmarking tool to stress real-time protocols
Stars: ✭ 35 (-50.7%)
Mutual labels:  websocket, real-time
Gun
HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP.
Stars: ✭ 710 (+900%)
Mutual labels:  websocket, websockets
Django Channels React Multiplayer
turn based strategy game using django channels, redux, and react hooks
Stars: ✭ 52 (-26.76%)
Mutual labels:  websocket, websockets
Embedio
A tiny, cross-platform, module based web server for .NET
Stars: ✭ 1,007 (+1318.31%)
Mutual labels:  websocket, websockets
Channelstream
Channelstream is a websocket communication server for web applications
Stars: ✭ 52 (-26.76%)
Mutual labels:  websocket, websockets
Starscream
Websockets in swift for iOS and OSX
Stars: ✭ 7,105 (+9907.04%)
Mutual labels:  websocket, websockets
Cowboy
Small, fast, modern HTTP server for Erlang/OTP.
Stars: ✭ 6,533 (+9101.41%)
Mutual labels:  websocket, websockets
Awesome Websockets
A curated list of Websocket libraries and resources.
Stars: ✭ 850 (+1097.18%)
Mutual labels:  websocket, websockets
Springboot Learning
🚕 spring boot学习案例,方便spring boot 初学者快速掌握相关知识
Stars: ✭ 724 (+919.72%)
Mutual labels:  websocket, websockets
Sockjs Client
WebSocket emulation - Javascript client
Stars: ✭ 7,808 (+10897.18%)
Mutual labels:  websocket, real-time
Rxwebsocket
An auto reconnection-webSocket build with okhttp and rxJava
Stars: ✭ 678 (+854.93%)
Mutual labels:  websocket, websockets
Gophergameserver
🏆 Feature packed, easy-to-use game server API for Go back-ends and Javascript clients. Tutorials and examples included!
Stars: ✭ 61 (-14.08%)
Mutual labels:  websocket, real-time
Kuzzle
Open-source Back-end, self-hostable & ready to use - Real-time, storage, advanced search - Web, Apps, Mobile, IoT -
Stars: ✭ 991 (+1295.77%)
Mutual labels:  websockets, real-time

sec.gov EDGAR filings real-time API

  • Covers SEC Edgar filings for over 8000 publicly listed companies, ETFs, hedge funds, mutual funds, and investors.
  • Every filing is mapped to a CIK and ticker.
  • Over 150 form types are supported, eg 10-Q, 10-K, 4, 8-K, 13-F and many more. See the list of supported form types here.
  • The API returns a new filing as soon as it is published on SEC EDGAR.
  • No XBRL/XML needed - JSON formatted.
  • Python, R, Java, C++, Excel scripts are supported through websockets
  • Client- and server-side JavaScript supported (Node.js, React, React Native, Angular, Vue, etc.)
  • Free API key available on sec-api.io

The official documentation explains how to use the query API to filter historical filings: sec-api.io/docs

Data source: sec.gov

Getting Started

You can use the API in your command line, or develop your own application using the API as imported package. Both options are explained below.

Before you start:

  • Install Node.js if you haven't already. On Mac in the command line type brew install node.
  • Get your free API key here: sec-api.io

Command Line

In your command line, type

  1. npm install sec-api -g to install the package
  2. sec-api YOUR_API_KEY to connect to the stream. Replace YOUR_API_KEY with the API key provided on sec-api.io
  3. Done! You will see new filings printed in your command line as soon as they are published on SEC EDGAR.

Node.js

Type in your command line:

  1. mkdir my-project && cd my-project to create a new folder for your project.
  2. npm init -y to set up Node.js boilerplate.
  3. npm install sec-api to install the package.
  4. touch index.js to create a new file. Copy/paste the example code below into the file index.js. Replace YOUR_API_KEY with the API key provided on sec-api.io
const api = require('sec-api')('YOUR_API_KEY');
api.on('filing', filing => console.log(filing));
  1. node index.js to start listening for new filings. New filings are printed in your console as soon as they are published on SEC EDGAR.

Python

  • Install the socket.io client: pip install "python-socketio[client]"
  • Run the example script below. Get your free API key on sec-api.io and replace YOUR_API_KEY with it.
import socketio

sio = socketio.Client()

@sio.on('connect', namespace='/all-filings')
def on_connect():
    print("Connected to https://api.sec-api.io:3334/all-filings")

@sio.on('filing', namespace='/all-filings')
def on_filings(filing):
    print(filing)

sio.connect('https://api.sec-api.io:3334?apiKey=YOUR_API_KEY', namespaces=['/all-filings'])
sio.wait()

React

Live Demo: https://codesandbox.io/s/01xqz2ml9l (requires an API key to work)

import api from 'sec-api';

class Filings extends React.Component {
  componentDidMount() {
    const socket = api('YOUR_API_KEY');
    socket.on('filing', filing => console.log(filing));
  }

  // ...
}

Response Format

  • id (string) - unique ID (md5 hash of link to original filing) of filing, eg e6a4da06fefffcaa65655b3b4602dd7f
  • companyName (string) - name of company, e.g. Apple Inc.
  • companyNameLong (string) - company name long format including original CIK and ownership type (Issuer, Reporting), e.g. Apple Inc. (0000320193) (Issuer)
  • ticker (string) - ticker symbol of the company, e.g. AAPL
  • cik (string) - CIK of company without trailing 0, e.g. 1001039
  • formType (string) - sec.gov form type, e.g 10-K. See the list of all form types here: https://www.sec.gov/info/edgar/forms/edgform.pdf
  • description (string) - description of filing, e.g. Statement of changes in beneficial ownership of securities
  • linkToFilingDetails (string) - link to HTML or XML file of filing
  • linkToTxt (string) - link to text version (.txt) of filing
  • linkToHtml (string) - link to attachements of filing
  • linkToXbrl (string) - link to XBRL file (in XML format) of filing. Is not set, if no XBRL file is attached to the original filing on EDGAR.
  • filedAt (string) - ISO 8601 conform filing date and time, e.g. 2020-02-28T18:35:51-05:00

Example JSON Response

{
  "id": "4ca00d307b1e8d07dd1c75ae20ed0cb9",
  "cik": "320193",
  "ticker": "AAPL",
  "companyName": "Apple Inc.",
  "companyNameLong": "Apple Inc. (0000320193) (Issuer)",
  "formType": "4",
  "description": "Statement of changes in beneficial ownership of securities",
  "filedAt": "2020-02-28T18:35:51-05:00",
  "linkToTxt": "https://www.sec.gov/Archives/edgar/data/320193/000032019320000034/0000320193-20-000034.txt",
  "linkToHtml": "https://www.sec.gov/Archives/edgar/data/320193/000032019320000034/0000320193-20-000034-index.htm",
  "linkToXbrl": "",
  "linkToFilingDetails": "https://www.sec.gov/Archives/edgar/data/320193/000032019320000034/xslF345X03/wf-form4_158293293482087.xml"
}

Contact

Let me know how I can improve the library or if you have any feature suggestions. I'm happy to implement them.

Just open a new issue on github here: https://github.com/janlukasschroeder/sec-api/issues

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].