← tickerbot.io
View as markdown

Insider transactions

GEThttps://api.tickerbot.io/v2/events?kind=insider

Officer and director trades — one event per reported Form 4 transaction.

stringrequiredfixed by this page

Fix to insider for this view (comma-combine kinds to merge timelines).

string

Single symbol. Beats tickers when both are passed.

string[]

Comma-separated symbols, up to 50. Not combinable with universe; ticker wins when both are passed.

string

System or caller-owned universe slug.

string

YYYY-MM-DD or ISO timestamp (inclusive). since is accepted as an alias.

string

YYYY-MM-DD or ISO timestamp — a bare YYYY-MM-DD means through the end of that day; timestamps are exclusive. until is accepted as an alias.

string

SQL filter. This kind's payload fields are first-class typed columns here: shares, price, value (numeric), action, executive, title, security_type (text) — e.g. value > 1000000 AND action = 'S'. payload->>'…' works too. Base columns: ticker, ts, kind, payload. See the signals catalog for columns + flags you can compose.

string[]

Switch to aggregate mode. Columns (ticker, kind) and payload fields (action, or the explicit payload->>'action') both roll up; name a key with AS to choose its JSON key, or let it be named for you — see All events.

string[]

Aggregate output items (requires group_by). Default: group keys + COUNT(*) AS events.

integerdefault 50

Rows per page. Max 1000.

string

Opaque cursor from the previous response.

as_ofstring

Server time this response was assembled (ISO 8601).

queryobject

Your filters, echoed.

countnumber

Rows in this page.

next_cursorstring

Opaque token for the next page; `null` on the last page. Pass it back as `cursor`.

resultsarray

One row per event, newest first.

tickerstring

Symbol the filing belongs to.

tsstring

Transaction date as an ISO timestamp.

kindstring

Always `insider` on this view.

payloadobject

The transaction.

executivestring

Filer name.

titlestringoptional

Filer role (CEO, Director, …).

actionstring

`A` (acquisition) or `D` (disposal).

sharesnumber

Shares in the transaction.

pricenumber

Per-share price; 0 for grants/awards.

valuenumber

`shares × price`, rounded to cents.

security_typestringoptional

Security class (`Common Stock`, …) — part of the filing's key; two same-day filings by one executive can differ only here.

  • This is GET /v2/events with kind=insider; it has its own page because the payload is its own contract. The full query grammar lives there and applies here unchanged, including aggregate mode (group_by/select) for "who is buying the most" rollups.
  • Cast payload numerics to filter on size. Latency: daily, via the evening ET ingestion pipeline.
  • To be pushed instead of polling, create an event-trigger webhook: POST /v2/webhooks with trigger.kinds=insider.
Who's buying the most? (aggregate mode)
curl -G "https://api.tickerbot.io/v2/events" \
  -H "Authorization: Bearer YOUR_KEY" \
  --data-urlencode "kind=insider" \
  --data-urlencode "from=2026-08-17" \
  --data-urlencode "q=payload->>'action'='A'" \
  --data-urlencode "group_by=ticker" \
  --data-urlencode "select=ticker, SUM((payload->>'value')::numeric) AS bought"
Response
// Aggregate rows: { ticker, bought } sorted by the rollup.