{"openapi":"3.1.0","info":{"title":"Edgrapi","description":"Insider trades, material events, and company fundamentals from SEC EDGAR, as clean JSON. Parsed Form 4 insider transactions, 8-K events, financial statements and ratios, plus real-time webhooks when a watched company files.","contact":{"name":"Edgrapi","url":"https://edgrapi.com/"},"license":{"name":"Proprietary"},"version":"1.0.0"},"paths":{"/v1/keys":{"post":{"tags":["meta"],"summary":"Create Free Key","description":"Self-serve: mint a free-tier API key (throttled per IP).","operationId":"create_free_key_v1_keys_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"tags":["meta"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/company/{ticker}":{"get":{"tags":["fundamentals"],"summary":"Company profile and CIK lookup","description":"Company profile from SEC EDGAR: name, CIK, SIC industry, exchanges, fiscal\nyear end. The lookup you make before any other call.","operationId":"company_v1_company__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker, e.g. AAPL","title":"Ticker"},"description":"Stock ticker, e.g. AAPL"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/fundamentals/{ticker}":{"get":{"tags":["fundamentals"],"summary":"Financial statements (income, balance sheet, cash flow)","description":"Income statement, balance sheet, and cash flow from SEC filings as clean\nJSON, annual or quarterly. Same field names for every company, so you stop\nwriting per-ticker special cases.","operationId":"fundamentals_v1_fundamentals__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker, e.g. AAPL","title":"Ticker"},"description":"Stock ticker, e.g. AAPL"},{"name":"period","in":"query","required":false,"schema":{"type":"string","pattern":"^(annual|quarterly)$","default":"annual","title":"Period"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ratios/{ticker}":{"get":{"tags":["fundamentals"],"summary":"14 financial ratios","description":"14 named ratios worked out from a company's SEC statements: margins, ROE,\nROA, current ratio, debt-to-equity, and revenue growth.","operationId":"ratios_v1_ratios__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker, e.g. AAPL","title":"Ticker"},"description":"Stock ticker, e.g. AAPL"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/filings/{ticker}":{"get":{"tags":["filings"],"summary":"All filings by form (10-K, 10-Q, 8-K, Form 4)","description":"Every filing a company has made, each linked to the document on SEC.gov.\nFilter by form to pull just the 10-Ks, the 8-Ks, or the Form 4s.","operationId":"filings_v1_filings__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker, e.g. AAPL","title":"Ticker"},"description":"Stock ticker, e.g. AAPL"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"form","in":"query","required":false,"schema":{"type":"string","description":"Filter by form, e.g. 10-K, 8-K, or 4","title":"Form"},"description":"Filter by form, e.g. 10-K, 8-K, or 4"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sections/{ticker}":{"get":{"tags":["filings"],"summary":"10-K/10-Q narrative sections (Risk Factors, MD&A)","description":"Narrative sections from the latest 10-K/10-Q as clean text (Risk Factors,\nMD&A, Business, etc.) — built for LLM/RAG equity research.","operationId":"filing_sections_v1_sections__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker, e.g. AAPL","title":"Ticker"},"description":"Stock ticker, e.g. AAPL"},{"name":"form","in":"query","required":false,"schema":{"type":"string","description":"Filing type: 10-K or 10-Q","default":"10-K","title":"Form"},"description":"Filing type: 10-K or 10-Q"},{"name":"item","in":"query","required":false,"schema":{"type":"string","description":"Section to fetch, e.g. 1A (Risk Factors) or 7 (MD&A). Omit to list available sections.","title":"Item"},"description":"Section to fetch, e.g. 1A (Risk Factors) or 7 (MD&A). Omit to list available sections."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/insider/{ticker}":{"get":{"tags":["insider"],"summary":"Insider trades (Form 4) + market-wide buys","description":"Parsed insider transactions from SEC Form 4 (and 3/5): who traded, their\nrole, the transaction code, share count, price, and whether the trade was an\nopen-market decision or automatic compensation. Code P (open-market purchase)\nis the only signal where the insider spent their own money; sales tagged\nplan_10b5_1 were pre-scheduled and carry little signal.\n\nUse ticker='latest' for the market-wide feed of the biggest open-market insider\nBUYS, or ticker='clusters' for companies where several insiders bought at once\n(the cluster-buy signal), newest and largest first.","operationId":"insider_trades_v1_insider__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","description":"Ticker, 'latest' for market-wide buys, or 'clusters' for cluster buys","title":"Ticker"},"description":"Ticker, 'latest' for market-wide buys, or 'clusters' for cluster buys"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Recent filings to return; higher = slower on a cold ticker","default":6,"title":"Limit"},"description":"Recent filings to return; higher = slower on a cold ticker"},{"name":"form","in":"query","required":false,"schema":{"type":"string","description":"Ownership form: 3, 4, 5, or 144 (notice of proposed sale)","default":"4","title":"Form"},"description":"Ownership form: 3, 4, 5, or 144 (notice of proposed sale)"},{"name":"min_value","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"For 'latest'/'clusters': minimum buy value (USD)","default":50000,"title":"Min Value"},"description":"For 'latest'/'clusters': minimum buy value (USD)"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"For 'clusters': lookback window in days","default":15,"title":"Days"},"description":"For 'clusters': lookback window in days"},{"name":"min_insiders","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":2,"description":"For 'clusters': min distinct insiders","default":3,"title":"Min Insiders"},"description":"For 'clusters': min distinct insiders"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/holdings/{identifier}":{"get":{"tags":["holdings"],"summary":"13F institutional holdings + quarter-over-quarter changes","description":"A fund's latest 13F portfolio, parsed from the SEC information table, ranked by\nvalue, and diffed against the prior quarter so every position is labelled new,\nadded, reduced or unchanged — with the exits listed separately.\n\nPositions are aggregated by CUSIP (funds split one holding across sub-managers, so\nthe raw table double-counts). Options carry a `put_call` flag: a PUT is a bearish\nbet, not a long, and reporting it as a holding is the classic 13F mistake. Value is\nwhole dollars. Each position also carries a best-effort `ticker` resolved from its\nCUSIP; the issuer name and CUSIP stay authoritative, and `ticker` is null when the\nCUSIP has no US equity listing (a bond, a foreign issue) or isn't resolved yet.\n\nIdentify the fund by a known name (berkshire, burry, ackman, bridgewater, citadel,\n…), a raw CIK, or a ticker when the manager is itself public (BRK-B). 13F is a\nquarterly snapshot filed up to 45 days after quarter-end — it is a lagged position\nreport, not a live trade feed.","operationId":"institutional_holdings_v1_holdings__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","description":"Fund name (e.g. 'berkshire', 'burry', 'pershing-square'), a CIK, or a ticker whose company is the filer (e.g. BRK-B)","title":"Identifier"},"description":"Fund name (e.g. 'berkshire', 'burry', 'pershing-square'), a CIK, or a ticker whose company is the filer (e.g. BRK-B)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Max positions returned","default":50,"title":"Limit"},"description":"Max positions returned"},{"name":"changes","in":"query","required":false,"schema":{"type":"boolean","description":"Diff against the prior quarter (new/added/reduced/exited)","default":true,"title":"Changes"},"description":"Diff against the prior quarter (new/added/reduced/exited)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/activist/{identifier}":{"get":{"tags":["activist"],"summary":"Schedule 13D/13G — >5% stakes & activist filings","description":"Schedule 13D and 13G filings — the disclosure anyone crossing 5% of a company's\nvoting stock must make. A 13D signals possible activist intent (board pushes, sales,\nstrategy); a 13G is a passive large holder. The `/A` suffix is an amendment (stake\nraised, trimmed, or intent changed). Each record carries the issuer, CUSIP, the\nreporting person(s), and the exact percent of class, parsed from the SEC's structured\n13D/G XML.\n\nUse identifier='latest' for the real-time market-wide feed of new >5% stakes (the\nactivist radar), or a ticker to list the 13D/13G filings indexed on that company. The\nper-company view reads an accumulating store, so it deepens as the feed runs — it is a\nrolling recent window, not the full historical record.","operationId":"activist_stakes_v1_activist__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","description":"'latest' for the market-wide 13D/13G feed, or a ticker to list stakes indexed on that company","title":"Identifier"},"description":"'latest' for the market-wide 13D/13G feed, or a ticker to list stakes indexed on that company"},{"name":"activist_only","in":"query","required":false,"schema":{"type":"boolean","description":"For 'latest': keep only 13D (activist-intent) filings","default":false,"title":"Activist Only"},"description":"For 'latest': keep only 13D (activist-intent) filings"},{"name":"min_percent","in":"query","required":false,"schema":{"type":"number","maximum":100,"minimum":0,"description":"For 'latest': minimum percent of class","default":0,"title":"Min Percent"},"description":"For 'latest': minimum percent of class"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":40,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/events/{ticker}":{"get":{"tags":["events"],"summary":"8-K material events","description":"8-K material events for a company as a typed stream: each event carries its\nitem codes with human labels (2.02 earnings, 5.02 exec change, 1.05 cyber\nincident...), a `notable` flag for the market-moving ones, and a link to the\nfiling. Set notable=true to skip routine 8-Ks.","operationId":"material_events_v1_events__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","description":"Stock ticker, e.g. AAPL","title":"Ticker"},"description":"Stock ticker, e.g. AAPL"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"notable","in":"query","required":false,"schema":{"type":"boolean","description":"Only earnings, M&A, exec changes, breaches, etc.","default":false,"title":"Notable"},"description":"Only earnings, M&A, exec changes, breaches, etc."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/webhooks":{"get":{"tags":["webhooks"],"summary":"List your webhooks","description":"List your webhooks (secrets are not returned).","operationId":"webhook_list_v1_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["webhooks"],"summary":"Create a filing webhook","description":"Register a webhook. Body: {\"url\": \"https://...\", \"tickers\": [\"AAPL\",\"MSFT\"],\n\"events\": [\"insider\",\"8-k\"]}. You get a signing secret back, shown once.","operationId":"webhook_create_v1_webhooks_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/webhooks/{wid}":{"delete":{"tags":["webhooks"],"summary":"Delete a webhook","description":"Deactivate a webhook.","operationId":"webhook_delete_v1_webhooks__wid__delete","parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","title":"Wid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/webhooks/{wid}/test":{"post":{"tags":["webhooks"],"summary":"Send a signed test delivery","description":"Send a signed test payload to a webhook so you can verify your endpoint\nand signature check before a real filing arrives.","operationId":"webhook_test_v1_webhooks__wid__test_post","parameters":[{"name":"wid","in":"path","required":true,"schema":{"type":"string","title":"Wid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"insider","description":"Parsed Form 4 insider trades and the market-wide buy feed."},{"name":"events","description":"8-K material events with parsed item codes."},{"name":"webhooks","description":"Get a signed POST the moment a watched company files."},{"name":"fundamentals","description":"Financial statements & ratios."},{"name":"filings","description":"Filing history & 10-K/10-Q sections."},{"name":"meta","description":"Health & discovery."}]}