---
title: "SEC Form 4 insider trades, latest across companies"
method: GET
path: "/api/markets/insiders"
tags: ["Companies"]
---

# SEC Form 4 insider trades, latest across companies

`GET /api/markets/insiders`

## Request

- Base URL: `https://xoomar.com`
- URL: `https://xoomar.com/api/markets/insiders`
- Auth: one of:
  - none
  - API key in header `x-api-key`

Open-market purchases (type=buys) or sales (type=sells) in the window, newest first, 100 rows. A row whose filing states no price has pricePerShare and valueUsd null and priceNote "price not stated in the filing"; a price given as a range of the filing is its midpoint, marked approximate in priceNote. Docs: https://xoomar.com/markets/api/insiders

## Query parameters

- `type` 'buys' | 'sells'
- `window` '7d' | '30d' | '90d'

## Response `200`

OK

- object
  - `data` object[]
    - `ticker` string, nullable: Trading symbol of the issuer, when reported in the filing
    - `insiderName` string: Reporting officer, director, or 10% owner
    - `insiderTitle` string, nullable: Role at the company (CEO, CFO, Director...)
    - `txDate` string, date: Transaction date from the filing, YYYY-MM-DD
    - `shares` string, nullable: Shares bought or sold
    - `pricePerShare` string, nullable: Reported price per share in USD
    - `valueUsd` string, nullable: Shares times price per share, USD; null when the filing omits the price
    - `priceNote` string, nullable: "price not stated in the filing" when the filing states no price (the price and the value are then null, never 0; on a cluster, valueUsd is null); "≈ $61.36, midpoint of the stated range $60.86 to $61.85" when the price is the midpoint of a range the filing states (pricePerShare is that midpoint); otherwise null
    - `company` string, nullable: Company name from the SEC ticker list
    - `insiders` number: Distinct insiders who bought on the open market in the window
    - `trades` number: Open-market purchase transactions in the window
    - `firstTxDate` string, date: Earliest purchase in the window
    - `latestTxDate` string, date: Latest purchase in the window
    - `latestFiledAt` string, nullable: When the latest of those filings reached EDGAR
    - `buyers` object[]: Up to five buyers, largest first
      - `name` string: Insider name as filed
      - `title` string, nullable: Role at the company, when the filing gives one
      - `valueUsd` number, nullable: That insider's combined purchases in the window, counting the trades whose price is stated; null when none of them states a price
      - `priceNote` string, nullable: "price not stated in the filing" when buyers[].valueUsd is null; otherwise null
      - `canonicalUrl` string, uri: The matching page on xoomar.com
    - `canonicalUrl` string, uri: The matching page on xoomar.com
  - `updatedAt` string, date-time: When the response was built; a few dated feeds give the date of their newest row instead
  - `source` 'xoomar.com'
  - `docs` string
  - `license` string: Data terms
  - `attribution` string
  - `canonicalUrl` string, uri: The matching page on xoomar.com
  - `meta` object: Who publishes the data and how to credit it
    - `source` string: The publisher or publishers of the data, comma-separated
    - `sourceAttribution` string: The credit line to show wherever the data is displayed
    - `notice` string: Requests without a key only: the free key, app registration and the credit

## Other responses

- `404`: Unknown slug, ticker or country
- `429`: Rate limit: 10 requests a minute without a key, 30 with a free key

---

[API](https://skmtc.dev/xoomar/apis/xoomar-market-data-api.md) · [All operations](https://skmtc.dev/xoomar/apis/xoomar-market-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/xoomar/apis/xoomar-market-data-api/revisions/07b78401eaaa?raw)
