Skip to main content
Glama
TradeStar Insider

TradeStar Insider

Insider Buy Signals

Verify any U.S. SEC filing claim, field-by-field, against the filing it came from. Every figure here — shares, price, dollar value, percent, stake size — traces to a parsed field in a real EDGAR filing and ships with a link to that filing on sec.gov. Records that can't be linked to a filing are dropped, never guessed: no scores, no unsourced numbers. We call this filing-verified. We also ran the obvious question — does insider buying predict returns? — as four sealed, pre-registered tests. I tried four times to prove otherwise, and four times the data said no; the full record is at https://www.tradestarinsider.com/what-we-tested. This repo is the MIT-licensed MCP server, client library, and worked examples for the TradeStar Insider API.

Free vs paid

The data is the same on every plan. Every row is filing-verified and links to its source on sec.gov. Plans differ in history, volume and export:

Free

Paid — $29/month

Calls

100 / day

100,000 / month

History

last 30 days

full history to 2024-01-02 + export

Verify any filing (free on both plans)

full history

full history

The free tier serves the last 30 days of filings. Older filings are not hidden: a request for an older date tells you the filing exists and is on the paid plan — it never claims that no filing exists. The verify_* tools check any filing across the full history for free. The paid plan is $29 a month on RapidAPI: 100,000 calls a month and full history since 2024, plus the key for the paid MCP endpoint from /v1/mcp-key.

(On RapidAPI the free Basic plan is 100 calls a day, or 3,000 calls a month where the console allows only a monthly quota.)

There are two free ways in, each with its own limit: the open, no-key endpoint (mcp.tradestarinsider.com/mcp and /public/v1) enforces a hard 100 data calls per day per IP, resetting at 00:00 UTC — over the cap it returns a plain message (a tool result on MCP, HTTP 429 on REST), never a transport error. MCP handshakes and verify_* checks both behave as expected (handshakes are free; a verify counts as one call). RapidAPI Basic meters per key at the same 100 calls/day. Both serve the same 30-day free window.

Full pricing and a key: https://www.tradestarinsider.com/pricing

Related MCP server: SEC EDGAR MCP Server

Run the MCP server locally

The server is published as insider-signals-mcp — a tiny stdio proxy to the remote endpoint. Run it with no install using uvx:

uvx insider-signals-mcp

To wire it into Claude Desktop, add this to claude_desktop_config.json:

{
  "mcpServers": {
    "insider-signals": {
      "command": "uvx",
      "args": ["insider-signals-mcp"]
    }
  }
}

Or point any MCP client straight at the remote endpoint (no proxy needed): https://mcp.tradestarinsider.com/mcp (Streamable HTTP, no auth). The verify tools are the core: check an insider purchase, an activist 13D stake, an 8-K event, or a 13F holding against its source filing.

What the data is

Five filing-verified families from SEC EDGAR (plus federal contract awards from USAspending):

  • Insider Form 4 purchases (SEC transaction code P) — cluster buys (two or more insiders buying the same company inside a window of seven calendar days or fewer) and buys large relative to the insider's existing holdings.

  • Activist Schedule 13D stakes, 13F fund position changes, and recent federal contract awards.

Code P does not by itself prove an open-market buy. A purchase filed under P can be an IPO / offering / private-placement allocation, so every purchase record carries an offering_context flag (true = allocation, not open-market) and clusters carry a uniform_price_cluster flag marking a single administered price. Option exercises, 10b5-1 planned sales, and sub-threshold noise (below $50,000) are dropped. Every field we return is parsed from a real filing and ships with its sec.gov link. Records that can't be linked to a filing are dropped, never guessed. No scores, no unsourced numbers. We call this filing-verified.

What the data is not

It is not a prediction. We ran four pre-registered, sealed tests for whether insider buying precedes price moves over our own history, and all four returned NULL — no return edge distinguishable from base rate — so we do not claim one. The full record (question, method, sample, number, verdict per test) is public at What we tested. This is a clean, filing-verified lookup and verification layer over public purchases — you decide what they mean. It is also not real-time: ingestion is a once-daily weekday cron, so new filings surface next business day, not live.

Coverage

  • Insider Form 4 buys: full history 2024-01-02 → 2026-10-09 (686 U.S. trading days), no non-holiday gaps (market holidays such as Presidents' Day carry no filings and are not gaps). Read the live number any time at /v1/health — it is the source of truth and advances every business day. Every served purchase is a filing-verified code-P purchase, never an open-market guess: records that can't be traced to a parsed SEC filing field are dropped, never inferred.

  • Completeness: we capture 93.70% of in-window code P purchases (lower bound 87.28%); of the filings we skip, only 0.75% (95% CI 0.34–1.63%) turn out to be purchases we genuinely missed — the rest are sales, option exercises, amendments, and sub-$50k buys we exclude by design. (This recall figure is from a sealed, pre-registered 20-trading-day study, 2026-08-17 → 2026-09-14; see What we tested.)

Install

pip install insider-signals        # or, from a clone:  pip install -e .

Zero runtime dependencies — the client uses only the Python standard library.

Quickstart (free, no key)

The free tier answers on the open discovery surface with no key and per-IP rate limiting:

from insider_signals import InsiderSignals

api = InsiderSignals()                         # public base URL, no key

print(api.health()["datasets"]["insider"])     # coverage days + date range

for s in api.today():                          # today's filing-verified buys
    print(s["ticker"], s["value_usd"], s["filing_url"])

for s in api.clusters():                       # cluster buys (2+ insiders, ≤7 days)
    print(s["ticker"], s["cluster_insiders"], s["cluster_notional"])

# Verify a specific claim against the filings we hold:
v = api.verify("ETRA", "ORBIMED ADVISORS LLC")
print(v["status"], v["count"])                 # -> confirmed 2

See examples/rest_api.py for a runnable version.

Free tier vs. keyed tier

Tier

Methods

Access

Free (no key)

health, today, clusters, verify, verify_13d, verify_8k, verify_13f

Open /public/v1, per-IP rate limited

Keyed (RapidAPI)

by_ticker, by_range, filing, fund_changes, federal_awards_recent, activist_stakes_recent, amendments_recent

Metered, through RapidAPI

For the keyed tier, subscribe on RapidAPI and construct the client with your key:

api = InsiderSignals(base_url="https://<your-rapidapi-host>", rapidapi_key="...")
for s in api.by_ticker("GME"):
    print(s["insider"], s["shares"], s["price_per_share"], s["filing_url"])

Calling a keyed method without a key raises InsiderSignalsError with status == 403.

Worked examples — one real request and response per tool

Every response below is a real capture from the live public API, on the free tier (no key). The two free list tools (today, clusters) were re-captured on 2026-10-21 and show the free 30-day window in their coverage_* fields — a free caller sees exactly this. The verify_* examples are from an earlier capture (2026-09-23); verification is full-history on every plan, so their coverage_* fields reflect that capture date and are not clamped to the 30-day window. The live coverage window moves daily — read /v1/health for the current bounds.

today — today's insider buys

GET https://api.tradestarinsider.com/public/v1/signals/today
{
  "api_version": "v1",
  "endpoint": "signals/today",
  "rule2_guarantee": "Every record traces to a parsed SEC filing field and carries its source filing_url. Records without a filing link are dropped upstream and never returned.",
  "count": 0,
  "coverage_start": "2026-09-22", "coverage_end": "2026-10-20",
  "coverage_note": "Insider (Form-4 code P) signals collected 2026-09-22..2026-10-20. An empty result means no matching filing in this window — not absence at the SEC.",
  "total_matched": 0,
  "params": { "date": "2026-10-21", "limit": 25 },
  "signals": []
}

(An empty set is normal pre-market / on a non-trading day; it repopulates the moment new filings materialize.)

clusters — cluster buys (2+ insiders, one issuer, ≤7 days)

GET https://api.tradestarinsider.com/public/v1/signals/clusters
{
  "api_version": "v1",
  "endpoint": "signals/clusters",
  "count": 1,
  "coverage_start": "2026-09-22", "coverage_end": "2026-10-20",
  "coverage_note": "Insider (Form-4 code P) signals collected 2026-09-22..2026-10-20. An empty result means no matching filing in this window — not absence at the SEC.",
  "total_matched": 177,
  "params": { "limit": 1 },
  "signals": [
    {
      "filed_date": "2026-10-19",
      "ticker": "APLD",
      "issuer_name": "Applied Digital Corp.",
      "issuer_cik": "0001144879",
      "insider": "Jason Zhang",
      "relationship": { "director": false, "officer": true, "ten_pct_owner": false, "officer_title": "President" },
      "code": "P",
      "shares": 300000.0, "price_per_share": 18.86, "value_usd": 5658000.0,
      "transaction_date": "2026-10-16", "acceptance_datetime": "2026-10-19T07:06:33-04:00",
      "cluster": true, "cluster_insiders": 2, "cluster_notional": 6664686.12,
      "offering_context": false, "uniform_price_cluster": false,
      "accession": "0001900445-26-000006",
      "filing_url": "https://www.sec.gov/Archives/edgar/data/1900445/000190044526000006/0001900445-26-000006-index.htm"
    }
  ]
}

verify — confirm an insider code P purchase claim

GET https://api.tradestarinsider.com/public/v1/verify?ticker=ETRA&person=ORBIMED ADVISORS LLC
{
  "api_version": "v1",
  "endpoint": "verify",
  "coverage_start": "2026-01-20", "coverage_end": "2026-09-23",
  "coverage_note": "Checked SEC Form-4 code P purchases collected 2026-01-20..2026-09-23. Absence here means not in this window — not absence at the SEC.",
  "status": "confirmed",
  "matched": ["ticker/issuer", "person"],
  "filings": [
    {
      "ticker": "ETRA", "issuer_name": "Electra Therapeutics, Inc.",
      "insider": "ORBIMED ADVISORS LLC",
      "code": "P", "shares": 1000000.0, "price_per_share": 15.0, "value_usd": 15000000.0,
      "filed_date": "2026-09-23", "accession": "0000947871-26-000880",
      "transaction_date": "2026-09-19",
      "acceptance_datetime": "2026-09-23T18:04:11-04:00",
      "aff10b5One": 0,
      "is_amendment": false,
      "original_accession": null,
      "filing_url": "https://www.sec.gov/Archives/edgar/data/2088082/000094787126000880/0000947871-26-000880-index.htm"
    }
  ],
  "count": 2,
  "message": "Confirmed: 2 matching Form-4 code P purchase filing(s)."
}

A claim with no matching filing returns "status": "not_found" (in-window) or "out_of_coverage" (outside the collected days) — never a guess.

Purchase record fields. Every confirmed purchase filing — on both verify (by claim) and the by-accession fetch — carries the same four extra fields, so a consumer reads one shape regardless of how the row was pulled:

field

meaning

transaction_date

the reported transaction date (Form 4 periodOfReport), distinct from filed_date; null when the filing carried no parseable date.

acceptance_datetime

the EDGAR acceptance timestamp (when the SEC accepted the filing), ISO-8601 with offset; null on rows collected before this stamp was captured.

aff10b5One

the 10b5-1 trading-plan flag parsed from the Form 4 (1 = filer affirmed a 10b5-1 plan, 0 = not affirmed); null when the raw filing field was unavailable.

is_amendment / original_accession

is_amendment is true for a Form 4/A; original_accession links it to the original it amends when that filing is in our collected window (SEC Form 4/A carries no native pointer, so the link is by issuer + reporting owner + period), else null.

Any field that could not be resolved is null and explained under a partial_fields object (field → reason) on that record — a missing value is never silent. A record with everything resolved omits partial_fields entirely. Example:

"partial_fields": { "acceptance_datetime": "row collected before the acceptance stamp was captured" }

Form 4/A amendments. When an insider files a Form 4/A that corrects an earlier Form 4, verify returns the amended filing as the current record — the superseded original is not returned as a co-equal filing. If your claim cited the figure the amendment changed, the verdict carries a superseded object naming the original_accession, the amendment_accession, and the corrected figure, and the message says the figure was corrected by 4/A. The keyed amendments_recent (GET /v1/amendments/recent) lists these amendments newest-first, each with its original_accession and a changed_fields map of what the 4/A changed (before → after); an amendment whose original is outside our collected window is still listed, flagged original_in_corpus: false, with the before/after left null — never guessed.

verify_13d — confirm a Schedule 13D activist-stake claim

GET https://api.tradestarinsider.com/public/v1/verify/13d?subject_name=New Fortress Energy Inc.&filer_name=Strategic Value Partners, LLC
{
  "endpoint": "verify/13d",
  "coverage_start": "2026-06-22", "coverage_end": "2026-09-18",
  "status": "confirmed",
  "filings": [
    {
      "filed_date": "2026-09-18", "form_type": "SCHEDULE 13D",
      "subject_name": "New Fortress Energy Inc.", "subject_tickers": ["NFE", "NFEGP"],
      "filer_name": "Strategic Value Partners, LLC",
      "percent_of_class": 14.7, "aggregate_amount_owned": 19208710.0,
      "signal": "new_13d_bare", "stated_intent": "New 13D. No activist purpose stated.",
      "accession": "0001193125-26-395888",
      "filing_url": "https://www.sec.gov/Archives/edgar/data/1749723/0001193125-26-395888.txt"
    }
  ],
  "count": 1,
  "message": "Confirmed: 1 matching Schedule 13D/13D-A filing(s)."
}

verify_8k — confirm an 8-K material-event claim

GET https://api.tradestarinsider.com/public/v1/verify/8k?cik=1650648&company_name=4D Molecular Therapeutics, Inc.
{
  "endpoint": "verify/8k",
  "coverage_start": "2025-03-06", "coverage_end": "2026-09-22",
  "status": "confirmed",
  "filings": [
    {
      "cik": "1650648", "company_name": "4D Molecular Therapeutics, Inc.",
      "accession": "0001193125-26-277563",
      "filing_date": "2026-06-22", "event_date": "2026-06-17", "form": "8-K",
      "items": [{ "code": "5.07", "label": "Submission of Matters to a Vote of Security Holders" }],
      "filing_url": "https://www.sec.gov/Archives/edgar/data/1650648/000119312526277563/"
    }
  ],
  "count": 4,
  "message": "Confirmed: 4 matching 8-K filing(s) carrying the claimed item(s)."
}

verify_13f — confirm a 13F institutional-holding claim

GET https://api.tradestarinsider.com/public/v1/verify/13f?filer=BERKSHIRE HATHAWAY INC&issuer_name=ALPHABET INC&quarter=2026-06-30
{
  "endpoint": "verify/13f",
  "coverage_start": "2024-06-30", "coverage_end": "2026-06-30",
  "coverage_note": "Values are AS-OF quarter-end and up to ~45 days stale.",
  "status": "held",
  "filings": [
    {
      "filer_name": "BERKSHIRE HATHAWAY INC",
      "as_of_quarter_end": "2026-06-30", "filed_date": "2026-08-14", "lag_days": 45,
      "change": "added", "issuer_name": "ALPHABET INC", "title_of_class": "CAP STK CL A",
      "value_usd": 28157599351, "prior_value_usd": 15600071913, "ssh_prnamt": 78791167,
      "accession": "0001193125-26-352200",
      "filing_url": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526352200/"
    }
  ],
  "count": 2,
  "message": "Held: 2 matching 13F position(s) reported as of the covered quarter."
}

Response shape

Every data route returns the same envelope; the rows live under signals, and the client's list-returning methods hand you that list directly. The verify* methods return the full envelope (you want the status and matched/filings fields).

List controls

Every list route (today, clusters, ticker, range, amendments/recent) accepts the same optional query parameters. The response echoes the ones you set under params and always reports total_matched, so you page rather than hit a silent cap.

param

meaning

limit

max rows returned (default 25, newest-first); limit<=0 removes the cap.

offset

rows to skip before this page (pagination).

days

keep only rows filed within the last N days (relative to today).

ticker

case-insensitive exact ticker filter.

as_of

publish-boundary replay. A UTC ISO-8601 instant (or a bare YYYY-MM-DD, read as end-of-day UTC). Returns only rows that had crossed our publish boundary at or before it — the exact feed a client would have seen at that past moment.

Every listing row carries first_served_at — the UTC ISO-8601 instant that row first crossed our publish boundary (the atomic write that made it public). It is stamped once, per ingest batch, and never rewritten, so it is a stable anchor for as_of replay and for measuring publish latency. On rows materialized before this field existed it is null, explained under partial_fields (and such rows are kept by an as_of query, since they were already public before the field). as_of is the companion to days: days bounds the filing date, as_of bounds when we served it.

MCP server (for AI assistants)

Ask an AI client (Claude and other MCP clients) for these signals directly. Open, free, per-IP rate limited — no API key, no OAuth:

claude mcp add --transport http insider-signals https://mcp.tradestarinsider.com/mcp

Then ask: "Show today's insider buy signals" or "Any insider cluster buys this week? Link the filings." See examples/mcp_client.md for the tool list and a programmatic SDK example.

Pricing

RapidAPI is the checkout. Two plans: Basic (free) and one $29-a-month plan with 100,000 calls a month and full history since 2024. After subscribing, call /v1/mcp-key to get your key and both keyed URLs — the key also unlocks the paid MCP endpoint.

Hard limits, no overage — requests over the cap return 429 until the window resets. The free discovery surface and the MCP server are open and per-IP rate limited; metered API billing runs through RapidAPI.

Disclaimer

Information, not investment advice. Every figure is parsed from a public SEC filing and links to its source on sec.gov. Insider buying guarantees nothing — insiders are wrong plenty — but code P purchases are real money on the line.

License

MIT. Changelog: CHANGELOG.md.

Available Tools

9 tools
activist_stakes_recentRecent activist hedge-fund stakes (SEC Schedule 13D)A
Read-onlyIdempotent
Inspect

Use when the user asks about activist investors, hedge-fund stakes, or recent 13D filings on a company. Returns activist Schedule 13D/13D-A filings on US-listed companies, newest first then by stated-intent strength; ticker, min_percent and days narrow. Each row carries its source filing_url and item4_excerpt (the activist's own Item 4 intent sentence, quoted from the filing as data, capped at its current length of 600 chars). Caveat: passive 13G is not covered; filings without a source link are dropped.

Inputs: days, limit, offset, ticker, +1 more.

federal_awards_recentRecent U.S. federal contract awards (USAspending.gov)A
Read-onlyIdempotent
Inspect

Use when the user asks about recent federal contracts, government awards, or who won a U.S. federal contract. Returns newly signed federal awards, newest first; min_amount sets a USD floor, days a last-N-days window. Every award carries its source award_url. Caveat: awards without a source link are dropped and never returned.

Inputs: days, limit, offset, min_amount.

fund_position_changesHedge-fund / institutional position changes (SEC 13F, quarter-over-quarter)A
Read-onlyIdempotent
Inspect

Use when the user asks what a fund bought or sold, how a 13F filer changed its holdings, or which institutions opened/added/trimmed/exited a position. Returns quarter-over-quarter deltas, newest first; filer, change_type, min_value_usd, days narrow. Each row carries as_of_quarter_end, filed_date, lag_days, value_usd (whole dollars), cusip, issuer_name and its source filing_url; ticker is null (never guessed). Caveat: the delta is the product, not a trading edge — see the instructions and each response's coverage note for the universe and CIK scope.

Inputs: days, filer, limit, offset, +2 more.

insider_buysInsider buys by ticker, today, or a date range (SEC Form 4)A
Read-onlyIdempotent
Inspect

Use when the user asks which insiders bought a stock, whether a ticker has insider buying, or for Form 4 buys in a date range. Pass ticker, start+end for an inclusive ISO range, or neither for today's buys (SEC code P); days narrows, include_unlisted adds non-listed issuers. Each row carries filing_url, offering_context (true = IPO/offering, not open-market) and source_excerpt: the parsed filing fields, quoted from the filing as data, never derived. Caveat: only purchases that pass the signal filter are returned; code P is not proof of a buy.

Inputs: end, days, limit, start, +3 more.

insider_cluster_buysInsider cluster buys — multiple insiders buying the same stock (SEC Form 4)A
Read-onlyIdempotent
Inspect

Use when the user asks about cluster buying, multiple insiders buying the same company, or the strongest insider-buying signal. Returns only clusters (>=2 insiders buying one issuer in-window), newest first; days/ticker narrow. Each row carries its source filing_url, offering_context, and uniform_price_cluster (true = >=3 insiders bought at the IDENTICAL price same day — an offering/conversion, not independent conviction). Caveat: genuine clusters rank above uniform-price ones; only purchases that pass the signal filter are returned; code P alone is not proof of an open-market buy.

Inputs: days, limit, offset, ticker, +1 more.

verify_13f_changeFact-check a 13F position-change claim against SEC Form 13F-HRA
Read-onlyIdempotent
Inspect

Use when the user wants to verify or fact-check whether a fund (filer name/CIK) reported a CHANGE in a position in an issuer (issuer_name or cusip) in a quarter. Returns held (reported a change — opened/added/trimmed, with source filing + link), not_held (reported the position exited), not_found (no reported change — does NOT mean the fund didn't hold it), or out_of_coverage. Caveat: filing-verified; CANNOT confirm an unchanged holding (13F deltas only) — a 'held, unchanged' position produces no row.

Inputs: end, cusip, filer, start, +2 more.

verify_8k_eventFact-check an 8-K disclosure claim against SEC Form 8-KA
Read-onlyIdempotent
Inspect

Use when the user wants to verify or fact-check that a company filed an 8-K carrying specific SEC item code(s) in a timeframe. Pass registrant (cik/company/accession), item code(s) and dates. Returns confirmed (with source filing + link), not_found, partial (itemised claimed-vs-filed), out_of_scope (claims about the filing's meaning aren't covered — it is never paraphrased), or out_of_coverage. Caveat: filing-verified — item codes are the SEC controlled vocabulary parsed from the filing, never inferred.

Inputs: cik, end, date, items, +3 more.

verify_activist_13dFact-check an activist 13D claim against SEC Schedule 13D/13D-AA
Read-onlyIdempotent
Inspect

Use when the user wants to verify or fact-check a claim about an activist stake or 13D filing (ticker/subject, filer, percent-of-class, stated intent, timeframe). Returns confirmed (with source filing + link), not_found, partial (itemised claimed-vs-filed), out_of_scope (passive 13G isn't covered), or out_of_coverage. Every response states the coverage window checked. Caveat: filing-verified — absence is reported as absence, never guessed.

Inputs: end, date, start, intent, +5 more.

verify_insider_purchaseFact-check an insider-buying claim against SEC Form 4A
Read-onlyIdempotent
Inspect

Use when the user wants to verify or fact-check a claim that an insider bought a stock, or to pull the purchases in one filing by accession. Pass the claim (ticker/issuer, person, amount, timeframe), or pass accession alone to fetch that filing's gated purchase records. Returns confirmed (with source filing + link), not_found, partial (itemised claimed-vs-filed), out_of_scope (sales/options/grants), or out_of_coverage. Caveat: filing-verified — absence is reported as absence, never estimated or guessed.

Inputs: end, date, start, person, +6 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 9 tools

    Disambiguation4/5

    The retrieval tools target distinct filing types (insider buys, clusters, federal awards, 13D stakes, 13F changes) and the four verify_* tools each have a clearly different subject. The main risk is overlap between insider_buys and insider_cluster_buys (cluster is a subset of buys) and between fund_position_changes and verify_13f_change, but the descriptions draw the boundaries explicitly.

    Naming Consistency4/5

    All names are snake_case and the verify_ prefix forms a clean, predictable pattern across the four verification tools. The retrieval tools are slightly less uniform (insider_buys vs federal_awards_recent vs fund_position_changes) but remain readable and coherent as a topic-based group.

    Tool Count5/5

    Nine tools is well within the ideal 3-15 range, and each earns its place: five discovery tools for distinct filing types plus four matching verifiers. No redundant or filler tools.

    Completeness4/5

    The surface covers discovery and verification across insider, activist, 13F, and 8-K domains, which is strong lifecycle coverage for a filing-intelligence server. Minor gaps: 8-K has verification but no discovery counterpart, and there is no sell-side/13G or general filing-search operation, though agents can work around these.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables to search and retrieve SEC EDGAR filings, insider transactions, major shareholders, and executive compensation data through natural language.
      13 npm
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI agents to research US public company filings, financials, and insider transactions using SEC EDGAR data, with no API keys required. Provides tools for company lookup, recent filings, full-text search, financial facts, and insider activity.
      5
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables querying SEC EDGAR for Form 4 insider trades, 8-K material events, and Schedule 13D/G ownership filings for US-listed companies, with ticker, company name, or CIK lookup.
      157 npm
      1
      MIT