返回资讯中心
外部精选
软件工程
#开发者实时流

QuoteLinks 推出免费金融 API,覆盖逾 2.1 万家公司的 SEC 财务数据

来源标题:Show HN: SEC Fundamentals – free financial API

QuoteLinks 上线免费的 SEC 基本面数据 API,覆盖超过 2.1 万家公司的标准化利润表、资产负债表和现金流量表,以及 SEC 申报文件列表,支持按股票代码或 CIK 查询。数据每晚从 SEC EDGAR 申报文件更新,以 JSON over HTTPS 提供,无需 API key,并启用 CORS。该 API 仅限个人非商业用途,不允许再分发数据。

Hacker News 最新chartwidgets2026/11/8 · 5 天前26 分钟阅读

以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。

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.

Personal, non-commercial use only. Redistribution of the data is not allowed. See the Terms of Service.

One request, no key. Get Apple's annual financial statements:

curl --compressed "https://api.quotelinks.com/v1/financials/AAPL"

Response (shortened){"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.

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

Response (shortened){"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.

Profile data from the company's SEC registration and filings.

GET https://api.quotelinks.com/v1/company/AAPL

Response (shortened){"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.

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

Response{"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.

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

Response (shortened){"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.

{"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

Response{"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.

Errors return JSON with the HTTP status and a message:

{"status":404,"message":"unknown ticker or CIK: ZZZZZ"}

StatusWhen

404Unknown ticker, CIK or SIC code; no standardized statements for that company; or an unknown path. 422Invalid parameter: period, basis (e.g. ttm with original), limit, offset, from, to or form. 405Method other than GET or HEAD. 429Too many requests. Wait (see Retry-After) and retry. 503Temporary server problem. Retry later.

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.

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);

Python

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"])

PHP

$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.

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.

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →