Docs/Skills/Insider Trading Skill

Insider Trading Skill

Get Company Insider Transactions by Ticker

OperationalCredits 6 per callp50 208msFinance

Overview

Insider Trading works by parsing SEC Form 4 ownership filings for US public companies into clean, normalized transactions and layering on derived intelligence the raw filings do not carry - open-market buy versus sell totals, net insider activity, distinct insiders, and a bullish/bearish sentiment read. Compensation noise like option grants and tax withholding is separated from real open-market signals. Data is refreshed continuously from official SEC filings.

The tool

Once your client is connected to the VerveKit server, this appears in its tool list as InsiderTradingSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.

Tool call
{
  "name": "InsiderTradingSkill",
  "arguments": {
    "ticker": "AAPL"
  }
}

You do not name the tool yourself; the model picks it. Asking about AAPL in the terms this skill covers is enough for it to reach for InsiderTradingSkill on its own — naming it explicitly also works, and is the way to force the call.

Connecting

One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.

{
  "mcpServers": {
    "vervekit": {
      "url": "https://api.vervekit.com/v1/mcp"
    }
  }
}

Per-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.

Arguments

These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.

ArgumentTypeDescription
tickerRequiredstringStock ticker symbol (e.g. AAPL, MSFT, ADBE)
length 1–6
typeOptionalPremiumstringFilter to open-market buys or sells (buy or sell).
limitOptionalPremiumintegerNumber of transactions to return (1-25). Defaults to 5.
range 1–25

What the model gets back

The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.

Result
{
  "status": "ok",
  "error": null,
  "data": {
    "ticker": "AAPL",
    "cik": "0000320193",
    "company": "Apple Inc.",
    "totalRecentForm4": 512,
    "count": 5,
    "lastTransactionDate": "2025-10-14",
    "daysSinceLastTransaction": 64,
    "transactions": [
      {
        "filingDate": "2025-10-16",
        "transactionDate": "2025-10-14",
        "insiderName": "COOK TIMOTHY D",
        "insiderTitle": "Chief Executive Officer",
        "relationship": {
          "director": true,
          "officer": true,
          "tenPercentOwner": false
        },
        "security": "Common Stock",
        "transactionCode": "S",
        "transactionType": "Sale",
        "direction": "sell",
        "acquiredDisposed": "D",
        "shares": 511000,
        "pricePerShare": 245.5,
        "value": 125450500,
        "sharesOwnedAfter": 3280000,
        "accessionNumber": "0000320193-25-000118",
        "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000118/xslF345X05/wf-form4.xml"
      },
      {
        "filingDate": "2025-10-02",
        "transactionDate": "2025-10-01",
        "insiderName": "MAESTRI LUCA",
        "insiderTitle": "Senior Vice President, CFO",
        "relationship": {
          "director": false,
          "officer": true,
          "tenPercentOwner": false
        },
        "security": "Common Stock",
        "transactionCode": "S",
        "transactionType": "Sale",
        "direction": "sell",
        "acquiredDisposed": "D",
        "shares": 74213,
        "pricePerShare": 241.18,
        "value": 17899091,
        "sharesOwnedAfter": 112884,
        "accessionNumber": "0000320193-25-000112",
        "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000112/xslF345X05/wf-form4.xml"
      },
      {
        "filingDate": "2025-08-20",
        "transactionDate": "2025-08-18",
        "insiderName": "WILLIAMS JEFFREY E",
        "insiderTitle": "Chief Operating Officer",
        "relationship": {
          "director": false,
          "officer": true,
          "tenPercentOwner": false
        },
        "security": "Common Stock",
        "transactionCode": "P",
        "transactionType": "Purchase",
        "direction": "buy",
        "acquiredDisposed": "A",
        "shares": 5000,
        "pricePerShare": 226.4,
        "value": 1132000,
        "sharesOwnedAfter": 489210,
        "accessionNumber": "0000320193-25-000101",
        "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000101/xslF345X05/wf-form4.xml"
      },
      {
        "filingDate": "2025-08-04",
        "transactionDate": "2025-08-01",
        "insiderName": "ADAMS KATHERINE L",
        "insiderTitle": "Senior Vice President, General Counsel",
        "relationship": {
          "director": false,
          "officer": true,
          "tenPercentOwner": false
        },
        "security": "Common Stock",
        "transactionCode": "A",
        "transactionType": "Grant/Award",
        "direction": null,
        "acquiredDisposed": "A",
        "shares": 25000,
        "pricePerShare": 0,
        "value": 0,
        "sharesOwnedAfter": 312450,
        "accessionNumber": "0000320193-25-000098",
        "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000098/xslF345X05/wf-form4.xml"
      },
      {
        "filingDate": "2025-08-04",
        "transactionDate": "2025-08-01",
        "insiderName": "O'BRIEN DEIRDRE",
        "insiderTitle": "Senior Vice President",
        "relationship": {
          "director": false,
          "officer": true,
          "tenPercentOwner": false
        },
        "security": "Common Stock",
        "transactionCode": "F",
        "transactionType": "Tax Withholding",
        "direction": null,
        "acquiredDisposed": "D",
        "shares": 8123,
        "pricePerShare": 232.1,
        "value": 1885348,
        "sharesOwnedAfter": 145200,
        "accessionNumber": "0000320193-25-000097",
        "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000097/xslF345X05/wf-form4.xml"
      }
    ],
    "summary": {
      "totalTransactions": 5,
      "distinctInsiders": 5,
      "buys": {
        "count": 1,
        "shares": 5000,
        "value": 1132000
      },
      "sells": {
        "count": 2,
        "shares": 585213,
        "value": 143349591
      },
      "netShares": -580213,
      "netValue": -142217591,
      "buySellRatio": 0.01,
      "sentiment": "Bearish",
      "clusterBuy": false
    }
  }
}

Response fields

Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.

FieldTypeExampleDescription
tickerstringAAPLStock ticker symbol for the company
cikstring0000320193SEC Central Index Key unique identifier
companystringApple Inc.Official registered name of the company
totalRecentForm4number512Total Form 4 filings in the company's recent feed
countnumber5Number of transactions returned in this response
lastTransactionDatestring2025-10-14Date of the most recent insider transaction
daysSinceLastTransactionPremiumnumber64Days since the most recent insider transaction
transactionsarray[5]Recent insider transactions, most recent first
transactions.0.filingDatestring2025-10-16Date the Form 4 was filed
transactions.0.transactionDatestring2025-10-14Date the transaction occurred
transactions.0.insiderNamestringCOOK TIMOTHY DName of the reporting insider
transactions.0.insiderTitlestringChief Executive OfficerRole or title of the insider
transactions.0.relationshipobject{…}Insider relationship flags (director, officer, 10% owner)
transactions.0.relationship.directorbooleantrueWhether the insider is a director of the company
transactions.0.relationship.officerbooleantrueWhether the insider is an officer of the company
transactions.0.relationship.tenPercentOwnerbooleanfalseWhether the insider owns 10% or more of the company's stock
transactions.0.securitystringCommon StockTitle of the security transacted
transactions.0.transactionCodestringSSEC transaction code (P, S, A, M, F, ...)
transactions.0.transactionTypestringSaleHuman-readable transaction type
transactions.0.directionstringsellOpen-market direction (buy or sell), when applicable
transactions.0.acquiredDisposedstringDWhether shares were acquired (A) or disposed (D)
transactions.0.sharesnumber511000Number of shares in the transaction
transactions.0.pricePerSharenumber245.5Price per share for the transaction
transactions.0.valuenumber125450500Total transaction value (shares x price)
transactions.0.sharesOwnedAfternumber3280000Shares owned by the insider after the transaction
transactions.0.accessionNumberstring0000320193-25-000118SEC accession number for the filing
transactions.0.urlstringhttps://www.sec.gov/Archives/edgar/data/320193/000032019325000118/xslF345X05/wf-form4.xmlDirect link to the Form 4 filing
summaryobject{…}Derived insider-sentiment summary
summary.totalTransactionsPremiumnumber5Transactions in the summarized window
summary.distinctInsidersPremiumnumber5Number of distinct insiders transacting
summary.buysPremiumobject{…}Open-market buy totals (count, shares, value)
summary.buys.countPremiumnumber1Number of open-market buy transactions
summary.buys.sharesPremiumnumber5000Total shares acquired in open-market buy transactions
summary.buys.valuePremiumnumber1132000Total dollar value of open-market buy transactions
summary.sellsPremiumobject{…}Open-market sell totals (count, shares, value)
summary.sells.countPremiumnumber2Number of open-market sell transactions
summary.sells.sharesPremiumnumber585213Total shares disposed of in open-market sell transactions
summary.sells.valuePremiumnumber143349591Total dollar value of open-market sell transactions
summary.netSharesPremiumnumber-580213Net shares bought minus sold (open-market)
summary.netValuePremiumnumber-142217591Net dollar value bought minus sold (open-market)
summary.buySellRatioPremiumnumber0.01Ratio of buy value to sell value
summary.sentimentPremiumstringBearishInsider sentiment read (Bullish, Bearish, Neutral)
summary.clusterBuyPremiumbooleanfalseWhether multiple insiders bought in the window

Failure modes

Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.

StatusWhat it means
400 / 422The arguments did not validate. The message names the offending one.
401The OAuth session is invalid or expired — reconnect the server.
403Blocked by a key restriction or an IP allow-list. Never a bad identity.
404This skill is not part of VerveKit. Check the catalog.
429Out of credits, or a brief rate limit. The message tells them apart.

A call costs 6 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.

Other ways to use Insider Trading Skill

Set up Insider Trading Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.

Call it as a REST APIOne HTTPS endpoint and an x-api-key header, with SDKs for Node, Python and .NET.APIVerveReference →
Google Sheets or ExcelA =VERVE() formula fills a column — no script, no export, recalculates in place.VerveSheetsReference →
Ground an agent on itA cited, machine-checkable fact your model can't produce on its own.VerveContextReference →

More in Finance:

Was this page helpful?