Developers

The Finance Data API

Factual U.S. equity data — SEC filings, insider transactions, 13F institutional holdings and earnings recaps — as clean JSON. License-safe, privately run, rate-limited per plan. General information only, never advice.

Rate limits by plan

PlanReq/minReq/dayMax pageAI narrative
Pulse1020010 facts only
Signal60500050
Insider18050000100
Founders300200000200

Every plan gets the public-domain SEC facts (numbers, dates, filings). Paid plans additionally receive the AI-written factual summaries. Responses carry X-RateLimit headers, and over-limit calls return HTTP 429 with Retry-After.

Endpoints

Base URL: https://investwhen.com/api/v1 · Authenticate with a header: Authorization: Bearer <key>

GET /api/v1/metaYour plan, limits and current usage.
GET /api/v1/finance/reports?ticker=AAPLFactual company profiles (list, or one ticker).
GET /api/v1/finance/insiders?ticker=TSLAOpen-market insider (Form 4) buy/sell signal + notable trades.
GET /api/v1/finance/whales?cik=106798313F institutional holdings and quarter-over-quarter moves.
GET /api/v1/finance/earnings?ticker=NVDAFactual earnings recaps from companies' own 8-K releases.
GET /api/v1/finance/filings?ticker=MSFTRecent SEC filings with factual summaries.

Common query params: limit (capped at your plan's max page), ticker / cik.

Example

curl -s https://investwhen.com/api/v1/finance/insiders?ticker=TSLA \
  -H "Authorization: Bearer iw_live_your_key_here"

OpenAPI spec

The whole surface as a machine-readable OpenAPI 3.1 document — import it into Postman, Insomnia or an SDK generator instead of hand-writing a client. It needs no key to read, and the rate limits in it are generated from the ones the API actually enforces, so they cannot drift.

/api/v1/openapi.json

# import into any OpenAPI tool
curl -s https://investwhen.com/api/v1/openapi.json -o investwhen.json

# or generate a typed client (example: Python)
openapi-python-client generate --url https://investwhen.com/api/v1/openapi.json
{
  "ok": true,
  "api_version": "v1",
  "license": "SEC EDGAR (U.S. government, public domain) + InvestWhen factual summaries…",
  "count": 1,
  "data": [{
    "type": "insider", "ticker": "TSLA", "window_days": 90,
    "net_usd": -4200000, "n_buys": 0, "n_sells": 3, "cluster_buying": false,
    "notable": [{"insider": "…", "role": "Director", "code": "S", "value_usd": 1800000, "date": "2026-06-14"}]
  }]
}

Data is drawn from SEC EDGAR (U.S. public domain) and InvestWhen's own factual summaries. It is general, audience-wide market information — not investment advice, not a personal recommendation, and not a solicitation to buy or sell any security. See the Terms and DPA.