❯ what did GOOGL actually earn last year?
Revenue and net income come back exact, each citing its filing — your agent quotes the number and the source and link the source.
Fundamentals, prices, filings, insiders, ownership — one API built for agents. Fundamentals are SEC-verified, prices are licensed EOD, and unprovable values refuse instead of guessing.
01 / What your agents can do
Four real agent jobs. Every answer cited back to the filing it came from.
❯ what did GOOGL actually earn last year?
Revenue and net income come back exact, each citing its filing — your agent quotes the number and the source and link the source.
❯ what's this micro-cap's operating margin?
When the line isn't in the filing, the field refuses — reason and recovery included — instead of feeding your agent a made-up margin.
❯ is AAPL expensive right now?
The multiple ships with its price date and filing date attached. Your agent always knows what it's built on.
❯ who actually owns NVDA?
13F holdings come labeled as what they are — a tracked subset of institutional filers — so your agent never overstates who owns the float.
02 / Tools & coverage
Tool surface: 10 data tools + stock_flag, a feedback endpoint (not a data tool, not exposed over MCP). POST JSON, one key. SEC-verified fundamentals, licensed EOD prices, filings, insider trades, and tracked ownership for US-listed companies.
From a plain operating company to a bank, REIT, insurer, or foreign IFRS filer, each served fundamental traces back to the company's own filing. Ask for a ticker we don't serve yet and the response says so, with a recovery hint — never a guessed number.
POST /v1/tools/stock_financials
{ "symbol": "AAPL", "statements": ["income"], "periods": 1 }
{
"subject": {
"entity": { "cik": "0000320193", "name": "Apple Inc." },
"security": { "security_id": "sec_0000320193_aapl", "ticker": "AAPL" }
},
"data": {
"statement": "income_statement",
"periods": [
{ "id": "FY2025", "start": "2024-09-29", "end": "2025-09-27" }
],
"source": {
"form": "10-K",
"accession": "0000320193-25-000079",
"filed": "2025-10-31"
},
"fields": {
"revenue": ["416161000000"],
"net_income": ["112010000000"],
"eps_diluted": ["7.46"]
}
},
"meta": {
"schema_version": "2",
"as_of": { "sec": "2026-06-26" },
"last_verified_at": "2026-06-26T18:45:35.253886Z"
}
}Provenance on fundamentals
Your agent gets a number it can defend — extracted from the filing, checked against SEC, and cited — not a figure it has to take on faith.
Verified before it serves
Every fundamentals value is checked against SEC's own published data before it leaves the API. Nothing unverified ships.
Cited to the filing
Financial statement blocks carry the accession, filed date, and exact decimal-string values, so your agent can trace them to the source.
Refusals, not guesses
Anything we cannot prove comes back as { "unavailable": "...", "recovery": ... } - never a null, a zero, or an invented figure.
Income statement, balance sheet, and cash flow from SEC filings, plus company profile and valuation with its price basis disclosed.
stock_financialsstock_overview
One tool for licensed EOD snapshots, daily history, technicals, price action, and dividends.
stock_prices
SEC filings by form, Form 4 insider buys and sells, and 13F institutional holdings (always scoped as a tracked subset).
stock_filingsstock_insiderstock_ownership
Resolve tickers or company names, and look up catalogs like the refusal vocabulary your agent decodes.
stock_searchstock_reference
Fundamentals come from SEC filings; market data is licensed and EOD. Responses carry source or basis metadata. Hosted MCP is coming soon; the REST API is the product today.
Full reference03 / Build vs. buy
Same four facts, two ways to get them. One is four API calls with citations. The other is XBRL parsing, tag guessing, and no way to check.
analyze AAPL — numbers I can cite
Cited + verified = an answer you can defend.
analyze AAPL — numbers I can cite
+ restatements · amended filings · unit scaling
Parse it yourself = guess, or refuse.
Fundamentals cited and SEC-verified — instead of an XBRL parser, a tag-disambiguation problem, and no way to know if the number is right.
The raw path is real work: SEC's company-facts JSON runs thousands of tagged values per filer, XBRL concept tags vary by company and industry, and Form 4 activity is per-document XML. StockContext does that extraction and verification for you.
04 / Easy setup
Copy this prompt into Claude Code, Cursor, or any coding agent - it connects StockContext end to end.
Integrate StockContext into this project so you can pull SEC-verified fundamentals and licensed EOD price data from an agent.
Step 1: Read the canonical skill
Read https://stockcontext.com/SKILL.md and follow it. If you cannot access it,
continue with the instructions below.
Step 2: Understand the project
If this is an existing codebase, inspect the language, framework, package
manager, environment-variable conventions, and current market-data or finance
code. Ask what stock-market workflow StockContext should support unless I only
asked you to wire the API.
Step 3: Wire the API
Base URL: https://api.stockcontext.com
Header: X-API-Key: $STOCKCONTEXT_API_KEY
Every tool is POST with a JSON body. Store the key in the project's normal
secret/env system. Do not commit it.
Tools:
POST /v1/tools/stock_search { "q": "AAPL" }
POST /v1/tools/stock_financials { "symbol": "AAPL", "period_kind": "annual" }
POST /v1/tools/stock_overview { "symbol": "AAPL" }
POST /v1/tools/stock_prices { "symbol": "AAPL", "view": "quote" }
POST /v1/tools/stock_filings { "symbol": "AAPL", "form": "10-K" }
POST /v1/tools/stock_insider { "symbol": "AAPL" }
POST /v1/tools/stock_ownership { "symbol": "AAPL" }
POST /v1/tools/stock_reference { "catalog": "refusal_tokens" }
Step 4: Verify
Call stock_financials with { "symbol": "AAPL", "statements": ["income"] }. The
response includes data.periods plus data.fields arrays with exact decimal-string
cells, and meta.schema_version: "2".
Step 5: Usage rules
Headline values use { "v": "...", "d": "..." }; financial statement fields
align to data.periods. Anything unprovable is { "unavailable": "...",
"recovery": ... }.
Treat a refusal as a first-class answer — never invent the number. Preserve
meta.as_of.sec and meta.as_of.market clocks, currencies, and signs. Fetch
stock_reference { "catalog": "refusal_tokens" } once to interpret refusals.Build production-ready stock market analyst agentsin minutes, not months.
Get a free key05 / Pricing
Tool surface: 10 data tools + stock_flag, a feedback endpoint (not a data tool, not exposed over MCP). The only thing that changes between plans is how many calls you get and how fast.
Free
Every tool, to try
100 calls / day · 30 / min
Resets daily (UTC)
Starter
RecommendedProduction workflows
10,000 calls / month · 60 / min
Resets monthly
Builder
Agents with real users
75,000 calls / month · 300 / min
Resets monthly
No overage charges: requests stop at plan limits. Need more than Builder? We'll figure out the right limit together.
FAQ
Income statement, balance sheet, cash flow, valuation, licensed EOD prices, technicals, dividends, SEC filings, insider trades, and tracked 13F ownership for US-listed companies we cover. Coverage is queryable from the API and grows as filings are ingested.
Every fundamental number comes from the company's own SEC filing and is cross-checked against SEC's published data before it serves. Prices are licensed EOD data with their own basis and clock. If a value can't be proven, it isn't served.
An answer that says a value can't be proven — with a machine-readable reason and a recovery hint. Never a guess, a null, or a silent zero. Agents treat it like any other answer and move on.
Coming soon — same key, same data. Today it's eight REST tools: POST JSON, one header, done.
Fundamentals and prices carry their own clocks. Prices are end-of-day and refresh after the close; responses expose the timestamps and staleness signals your agent should quote.
Free: 100 calls/day. Starter: $29/mo for 10,000 calls. Builder: $99/mo for 75,000. Every tool on every plan — you pay for volume, nothing else.
Anytime, from the dashboard. Paid access runs to the end of the period. Free needs no card and never expires.
Ready to build
No card. 100 calls a day, every tool, fundamentals cited to filings. Upgrade when your agent outgrows it.