---
title: "Insider transactions for a stock from SEC Forms 4/5, newest first. Form 3 establishes initial ownership rather than reporting transactions. transactionType is the coarse Buy/Sell/Award/Gift/Exercise label; transactionCode carries the filed SEC code's meaning (Conversion, Tax Payment, …) — non-market codes surface there, so check it before reading a row as an open-market trade."
method: GET
path: "/v1/stocks/{ticker}/insider-transactions"
tags: ["InsiderTrading"]
---

# Insider transactions for a stock from SEC Forms 4/5, newest first. Form 3 establishes initial ownership rather than reporting transactions. transactionType is the coarse Buy/Sell/Award/Gift/Exercise label; transactionCode carries the filed SEC code's meaning (Conversion, Tax Payment, …) — non-market codes surface there, so check it before reading a row as an open-market trade.

`GET /v1/stocks/{ticker}/insider-transactions`

## Request

- Base URL: `https://api.equibles.com`
- URL: `https://api.equibles.com/v1/stocks/{ticker}/insider-transactions`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/equibles/apis/equibles-api/docs/v1/stocks/:ticker/insider-transactions/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `ticker` string, required

## Query parameters

- `limit` integer
- `offset` integer
- `startDate` string, date
- `endDate` string, date
- `transactionType` string
- `insiderName` string

## Response `200`

OK

- InsiderTransactionDtoPagedResponse
  - `listingNotice` ListingNotice: What happened to a requested ticker that no longer trades. "delisted": the company has no current US listing, so the answer is its history. "renamed": the company now trades as successorTicker, its current US presentation ticker (possibly another share class). A listed series (short volume, short interest, off-exchange volume, fails-to-deliver, congressional trades) is the retired ticker's own; a company-level read is the company's data.
    - `status` string, nullable: "delisted" or "renamed".
    - `ticker` string, nullable: The retired ticker as listed.
    - `delistedOn` string, date, nullable: The day the retired listing stopped trading, when known.
    - `successorTicker` string, nullable: For "renamed", the company's current US presentation ticker; null for "delisted".
  - `data` InsiderTransactionDto[], nullable
    - `transactionDate` string, date
    - `filingDate` string, date: The day the Form 4 or 5 carrying this row reached the SEC, when the transaction became public; an amended row carries its amendment's date.
    - `insiderName` string, nullable
    - `role` string, nullable: Insider's role(s): director, officer title, 10% owner — or "Insider".
    - `transactionType` string, nullable: Coarse type: Buy, Sell, Award, Gift, or Exercise. Non-market SEC codes (conversions, tax withholding, expirations, …) collapse into Buy/Sell by the acquired/disposed flag — read transactionCode for the real code before treating a row as an open-market trade.
    - `transactionCode` string, nullable: The SEC transaction code's meaning as filed: Purchase, Sale, Award, Conversion, Exercise, Tax Payment, Expiration, Gift, Inheritance, Discretionary, or Other.
    - `isOpenMarketTrade` boolean: True only when the filed SEC code is an open-market purchase or sale — the conviction trades. Filter on this rather than transactionType, which still labels conversions, tax withholding and expirations Buy/Sell.
    - `isRule10b5One` boolean, nullable: Whether the transaction was made under a Rule 10b5-1(c) trading plan (the Form 4/5 checkbox, mandatory since April 2023); null on filings that predate the checkbox.
    - `shares` integer: Shares exactly as filed (not split-adjusted, so Shares × PricePerShare = Value holds).
    - `pricePerShare` number, double: Per-share price exactly as filed.
    - `value` number, double: Total transaction value (Shares × PricePerShare) — split-invariant.
    - `sharesOwnedAfter` integer: Post-transaction holding, restated onto today's split basis.
    - `securityKind` string, nullable: Which security the row and its sharesOwnedAfter balance belong to: "Non-derivative" (common shares), "Derivative" (options, RSUs, convertibles), or "Unknown" for rows ingested before the distinction was captured. Balances run separately per security kind and ownership form, so two rows on the same date for the same insider with different balances are different securities, not a contradiction.
    - `securityTitle` string, nullable: The security's title exactly as filed (e.g. "Common Stock", "American Depositary Shares") — distinguishes several securities of the same kind under one issuer, which securityKind alone cannot; null when the filing names none.
    - `ownershipForm` string, nullable: How the position is held: "Direct" (in the insider's own name) or "Indirect" (through a trust, family member, or partnership). Like securityKind, this splits the sharesOwnedAfter balance into its own running total.
  - `meta` PageMeta
    - `limit` integer
    - `offset` integer
    - `count` integer
    - `hasMore` boolean
    - `total` integer, nullable

## Other responses

- `400`: Bad Request
- `404`: Not Found

## Changes

- **2026-11-10** `92f60a1f9ffc`: 1 info
  - added the optional property `data/items/filingDate` to the response with the `200` status
- **2026-11-06** `666e06778588`: 12 info
  - added the new optional `query` request parameter `endDate`
  - added the new optional `query` request parameter `insiderName`
  - added the new optional `query` request parameter `startDate`
  - added the new optional `query` request parameter `transactionType`
  - …8 more

[Operation history](https://skmtc.dev/equibles/apis/equibles-api/changes/v1/stocks/:ticker/insider-transactions/get.md)

---

[API](https://skmtc.dev/equibles/apis/equibles-api.md) - [All operations](https://skmtc.dev/equibles/apis/equibles-api/llms.txt) - [OpenAPI document](https://skmtc.dev/equibles/apis/equibles-api/revisions/83f13ba1a993?raw)
