---
title: "Insider Trades (Form 4)"
method: POST
path: "/v1/tools/insider_trades"
---

# Insider Trades (Form 4)

`POST /v1/tools/insider_trades`

## Request

- Base URL: `https://unstuckapi.com`
- URL: `https://unstuckapi.com/v1/tools/insider_trades`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Recent insider buying and selling at a US public company, by stock ticker or CIK: who traded (director, officer, 10% owner), transaction date, buy/sell/grant code with its plain meaning, shares, price, and shares held after, parsed from Form 4 filings. An option or RSU that vests shows as two rows in the same filing: the derivative given up and the common stock received. Data source: SEC EDGAR public filings (free public data; not affiliated with or endorsed by the SEC).

Price: $0.03 per call. Charged once per call that returns a result, including an empty result list. Failed calls are free.

## Request body

- object
  - `ticker_or_cik` string, required: Stock ticker (e.g. "AAPL", "BRK.B") or the company's numeric SEC CIK (e.g. "320193").
  - `limit` integer: How many recent Form 4 filings to read, newest first. Default 10, max 20.

## Response `200`

Success

- object
  - `tool` 'insider_trades', required
  - `result` object, required
    - `source` 'SEC EDGAR', required
    - `company` string, nullable, required
    - `cik` string, required
    - `filings` object[], required
      - `insider_name` string, nullable, required: Reporting person(s).
      - `relationship` string, nullable, required: e.g. "Director", "Officer: CFO", "10% owner".
      - `filed` string, nullable, required
      - `filing_url` string, required
      - `transactions` object[], required
        - `security` string, nullable, required: e.g. "Common Stock".
        - `derivative` boolean, required: True for options/RSUs/other derivatives.
        - `transaction_date` string, nullable, required
        - `code` string, nullable, required: Transaction code, e.g. "P" or "S".
        - `code_meaning` string, nullable, required: Plain-language meaning of the code.
        - `acquired_or_disposed` 'acquired' | 'disposed', nullable, required
        - `shares` number, nullable, required
        - `price` number, nullable, required: Price per share (USD), if reported.
        - `shares_owned_after` number, nullable, required
        - `ownership` 'direct' | 'indirect', nullable, required
    - `skipped_filings` integer, required: Form 4 filings that could not be read and were left out.
  - `charged_usd` number, required
  - `balance_usd` number, required

## Other responses

- `400`: Invalid JSON or input. Not charged.
- `401`: Paid tool without a valid API key.
- `402`: Balance too low for this call. Not charged.
- `404`: Unknown tool.
- `422`: The tool failed. Not charged.
- `429`: Rate limited, free tries used up, or the uncharged-result limit reached. See Retry-After.

---

[API](https://skmtc.dev/unstuckapi/apis/unstuck-api.md) · [All operations](https://skmtc.dev/unstuckapi/apis/unstuck-api/llms.txt) · [OpenAPI document](https://skmtc.dev/unstuckapi/apis/unstuck-api/revisions/ef3ec951224f?raw)
