本文へ移動
AI NEWS JOURNAL
Hacker News Show HNAI NEWS / JOURNAL

Show HN: SEC Fundamentals – free financial API

Article URL: https://www.quotelinks.com/api/sec-fundamentals/ Comments URL: https://news.ycombinator.com/item?id=50411013 Points: 1 # Comments: 0

翻訳サービスが停止中のため原文を表示しています。

Company profiles, standardized financial statements – income statement, balance sheet and cash flow, annual, quarterly and trailing twelve months – and SEC filing lists for more than 21,000 companies, looked up by ticker or CIK. Built from SEC EDGAR filings every night. JSON over HTTPS, no API key, CORS enabled. No API key 21,000+ companies Annual, quarterly & TTM Split-adjusted EPS Personal, non-commercial use only. Redistribution of the data is not allowed. See the Terms of Service. Quick start One request, no key. Get Apple's annual financial statements: curl --compressed "https://api.quotelinks.com/v1/financials/AAPL" {"cik":320193,"symbol":"AAPL","name":"Apple Inc.","currency":"USD","period":"annual","basis":"latest", "fields":{"revenue":{"statement":"income","unit":"USD"}, … }, "periods":[{"fiscal_year":2026,"fiscal_period":"FY","start":"2025-09-28","end":"2026-09-26","form":"10-K", "filed":"2026-11-03","accession":"0000320193-26-000026","revenue":478834000000,"gross_profit":233602000000, "operating_income":158063000000,"net_income":132175000000,"eps_diluted":8.98, … ,"fcf":136056000000, "sources":{"revenue":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", … ,"fcf":"derived"}, "notes":{"fcf":["derived"]}}, … ]} Amounts are in the company's reporting currency, in full units (not thousands or millions). Periods are listed newest first. Build a request, press Run, and see the live JSON from api.quotelinks.com. Endpoints Base URL: https://api.quotelinks.com/v1/. All endpoints are GET. {id} is a ticker symbol (case-insensitive; BRK.B and BRK-B both work) or an SEC CIK number (320193 or 0000320193). Former tickers of a company usually work too. GET/v1/financials/{id} Standardized financial statements, one entry per period, newest first. Each period carries the filing it comes from and, for every value, the XBRL tag it was taken from. GET https://api.quotelinks.com/v1/financials/AAPL?period=quarterly {"cik":320193,"symbol":"AAPL","name":"Apple Inc.","currency":"USD","period":"quarterly","basis":"latest", "fields":{ … }, "periods":[{"fiscal_year":2026,"fiscal_period":"Q4","end":"2026-09-26","form":"10-K","revenue":114477000000, … , "notes":{"revenue":["derived"], … ,"eps_diluted":["derived","approximate"]}}, … ]} Each period object has fiscal_year, fiscal_period (FY, Q1–Q4), start, end, form, filed, accession, the 39 financial fields (null when the company did not report them), sources and, when needed, notes. GET/v1/company/{id} Profile data from the company's SEC registration and filings. GET https://api.quotelinks.com/v1/company/AAPL {"cik":320193,"symbol":"AAPL","tickers":[{"symbol":"AAPL","exchange":"Nasdaq"}],"name":"Apple Inc.", "entity_type":"operating","category":"Large accelerated filer", "industry":{"sic":3571,"title":"ELECTRONIC COMPUTERS","division":"D","division_title":"Manufacturing","major_group":"35"}, "fiscal_year_end":"09-26","state_of_incorporation":"CA","phone":"(408) 996-1010", "address":{"street1":"ONE APPLE PARK WAY","city":"CUPERTINO","state_or_country":"CA","zip":"95014", … }, "former_names":[{"name":"APPLE INC","from":"2007-01-10","to":"2019-08-05"}, … ], "shares_outstanding":{"value":14532182000,"date":"2026-10-23"}, "public_float":{"value":3647099000000,"date":"2026-03-27"}, "latest_annual_report":{"form":"10-K","filed":"2026-11-03","report_date":"2026-09-26", … }, "latest_quarterly_report":{"form":"10-Q","filed":"2026-07-31","report_date":"2026-06-27", … }, "filings_count":2275, "financials":{"currency":"USD","fiscal_years":18,"quarters":70, "splits":[{"ratio":4.0,"first_post_split_filing":"2020-10-30"},{"ratio":7.0,"first_post_split_filing":"2014-07-23"}]}} symbol is the company's main ticker; tickers lists all of them (for example both share classes of Alphabet). financials is null for filers without standardized statements. GET/v1/filings/{id} Without parameters: the 200 most recent filings. With any parameter, the list is filtered and paged. GET https://api.quotelinks.com/v1/filings/AAPL?form=10-K&limit=1 {"cik":320193,"symbol":"AAPL","name":"Apple Inc.","count":31,"offset":0,"limit":1, "next":"https://api.quotelinks.com/v1/filings/AAPL?form=10-K&limit=1&offset=1", "filings":[{"accession":"0000320193-26-000026","form":"10-K","filed":"2026-11-03","report_date":"2026-09-26", "accepted":"2026-11-03T13:05:15.000Z","items":[],"primary_document":"aapl-20260926.htm","description":"10-K", "size":10902198,"xbrl":true,"inline_xbrl":true, "url":"https://www.sec.gov/Archives/edgar/data/320193/000032019326000026/aapl-20260926.htm", "index_url":"https://www.sec.gov/Archives/edgar/data/320193/000032019326000026/0000320193-26-000026-index.htm"}]} items lists the 8-K item numbers (for example 2.02 for results of operations). count is the total number of matching filings. GET/v1/industries/{sic} All companies registered under one Standard Industrial Classification code, with figures from their latest annual report (latest basis). GET https://api.quotelinks.com/v1/industries/7372 {"sic":7372,"title":"SERVICES-PREPACKAGED SOFTWARE","division":"I","division_title":"Services","major_group":"73", "count":741,"companies":[{"cik":789019,"symbol":"MSFT","name":"MICROSOFT CORP","fiscal_year":2026, "fiscal_year_end":"2026-06-30","current":true,"currency":"USD","revenue":331839000000,"net_income":133749000000, "total_assets":758376000000}, … ]} Figures are in the company's reporting currency and are not converted. current is true when the latest annual report covers a fiscal year that ended within about the last 18 months. Order: current filers reporting in USD by revenue, then current filers in other currencies (grouped by currency), then companies with older reports, then companies without revenue. /v1/industries lists all 445 codes with title, division, major_group, the number of companies and the url of each list. GET/v1/tickers {"count":10474,"tickers":[{"symbol":"A","cik":1090872,"name":"AGILENT TECHNOLOGIES, INC.","exchange":"NYSE","primary":true}, {"symbol":"AA","cik":1675149,"name":"Alcoa Corp","exchange":"NYSE","primary":true}, … ]} GET/v1/status {"status":"ok","service":"Quotelinks SEC API","version":"v1", "source":"U.S. Securities and Exchange Commission (EDGAR): companyfacts, submissions, company tickers", "build":"20261107T032709","built":"2026-11-07T03:28:32+00:00", "sec_files":{"companyfacts":"Fri, 06 Nov 2026 05:08:32 GMT","submissions":"Fri, 06 Nov 2026 05:16:25 GMT", … }, "counts":{"companies":21549,"tickers":10474,"companies_with_financials":17051,"industries":445}} Financial fields Every period has the same 39 keys. Money is in the reporting currency (currency), per-share values in currency per share, share counts in shares. Income statement Balance sheet (at period end) Cash flow How the figures are built From XBRL filings. Values come from the structured (XBRL) data companies file with their 10-K, 10-Q, 20-F and 40-F reports. For each field, a list of standard US GAAP and IFRS tags is tried in order; sources shows which tag was used for each value. Fiscal years as the company reports them. fiscal_year and fiscal_period come from the filing in which the period was the current period, so retailers and other companies with non-calendar years are labelled the way they label themselves. Latest vs. original. Companies restate prior periods (accounting changes, discontinued operations, stock splits). basis=latest uses the most recently filed figure; basis=original keeps the figure as first reported. Stock splits. Splits are detected from restated share counts and EPS. With basis=latest, per-share values and share counts filed before a split are adjusted to today's share basis (flagged split_adjusted); the split ratios are listed in /company/{id}. Derived values. 10-Ks don't report the fourth quarter separately, and 10-Qs report cash flow year-to-date, so Q4 is the full year minus the first nine months, and Q2/Q3 cash flows are calculated from year-to-date totals. gross_profit and fcf are calculated when not reported. These values are flagged derived. Approximate values. Derived quarterly or TTM per-share figures (for example Q4 EPS = full-year EPS minus nine-month EPS) and TTM share counts (average of four quarters) are flagged approximate. Missing values are null. Not every company reports every field – banks, for example, have no gross profit or inventory, and some companies use their own (non-standard) tags, which are not included. Currency. Foreign companies that report under IFRS appear in their own reporting currency; check currency. Data & updates Source: SEC EDGAR bulk data – XBRL company facts, company submissions (filings) and the SEC's ticker files – downloaded directly from the U.S. Securities and Exchange Commission. Coverage: about 21,500 SEC registrants with a ticker or XBRL financial data, including OTC companies; standardized financial statements for about 17,000 of them, from 2009 (when XBRL filing began) onward. Schedule: rebuilt every night from the SEC's latest files; /v1/status shows the current build. A new 10-K or 10-Q appears the day after the SEC publishes its data. Caching: responses are cached for up to 1 hour. Not included: stock prices, analyst estimates or anything not filed with the SEC. Errors & limits Errors return JSON with the HTTP status and a message: {"status":404,"message":"unknown ticker or CIK: ZZZZZ"} Fair use: up to 2 requests per second per IP address, or 10 per second with a free API key (add api_token=YOUR_KEY). The data changes once a day, so please cache responses. Code examples JavaScript (browser or Node 18+) const r = await fetch("https://api.quotelinks.com/v1/financials/MSFT"); const { periods } = await r.json(); for (const p of periods.slice(0, 5)) console.log(p.fiscal_year, p.revenue, p.net_income, p.eps_diluted); import json, urllib.request url = "https://api.quotelinks.com/v1/financials/NVDA?period=ttm" with urllib.request.urlopen(url) as r: latest = json.load(r)["periods"][0] print(latest["end"], latest["revenue"], latest["fcf"]) $f = json_decode(file_get_contents( "https://api.quotelinks.com/v1/filings/TSLA?form=8-K&limit=5" ), true); foreach ($f["filings"] as $x) echo $x["filed"], " ", $x["url"], "\n"; Source & terms The figures come from filings submitted to the U.S. Securities and Exchange Commission through EDGAR. The field mapping, derived values and split adjustments are calculated by Quotelinks and may differ from figures in the filings or from other data providers. Quotelinks is not affiliated with or endorsed by the SEC. The API is provided for personal, non-commercial use. Redistribution of the data is not allowed. For commercial use, contact support@quotelinks.com. See the Terms of Service and the disclaimer. The figures are for information only and are not investment advice; check the original filing before relying on a number. Frequently asked questions Yes. No sign-up, no API key needed and no cost, for personal, non-commercial use. Fair use is up to 2 requests per second per IP address, or 10 per second with a free API key; please cache responses. No. The API is for personal, non-commercial use, and redistribution of the data is not allowed. For commercial use, contact support@quotelinks.com. See the Terms of Service. From filings submitted to the U.S. Securities and Exchange Commission: the SEC's XBRL company facts, company submissions and ticker files from EDGAR. Quotelinks maps the XBRL tags to 39 standard fields and calculates derived values such as Q4 and free cash flow. Every night, from the SEC's latest bulk files. A new 10-K or 10-Q usually appears the day after the SEC publishes its data. The /v1/status endpoint shows the current build. Yes, with basis=latest (the default): per-share values and share counts reported before a split are converted to today's share basis and flagged split_adjusted. basis=original returns the figures exactly as first reported. The API uses the figures companies report under US GAAP or IFRS in their filings, not adjusted (non-GAAP) numbers or analyst estimates. Restatements, the choice of XBRL tag and fiscal-year labels can also differ between providers. The sources field shows the tag behind every value. Yes. Every endpoint that takes a ticker also accepts the SEC CIK number, with or without leading zeros, for example /v1/company/320193 or /v1/company/0000320193. No. It contains only data filed with the SEC: company information, financial statements and filings. About 21,500 SEC registrants that have a ticker or file XBRL financial data, including OTC companies, with standardized financial statements for about 17,000 of them. Foreign companies that report under IFRS appear in their own currency. Companies that do not file with the SEC are not included.

出典

原文を読む ↗

関連テーマ

← すべてのニュースへ