Insider transactions
https://api.tickerbot.io/ v2/ events?kind=insiderOfficer and director trades — one event per reported Form 4 transaction.
Query parameters
stringrequiredfixed by this pageFix to insider for this view (comma-combine kinds to merge timelines).
stringSingle symbol. Beats tickers when both are passed.
string[]Comma-separated symbols, up to 50. Not combinable with universe; ticker wins when both are passed.
stringSystem or caller-owned universe slug.
stringYYYY-MM-DD or ISO timestamp (inclusive). since is accepted as an alias.
stringYYYY-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.
stringSQL 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 50Rows per page. Max 1000.
stringOpaque cursor from the previous response.
Returns
as_ofstringServer time this response was assembled (ISO 8601).
queryobjectYour filters, echoed.
countnumberRows in this page.
next_cursorstringOpaque token for the next page; `null` on the last page. Pass it back as `cursor`.
resultsarrayOne row per event, newest first.
tickerstringSymbol the filing belongs to.
tsstringTransaction date as an ISO timestamp.
kindstringAlways `insider` on this view.
payloadobjectThe transaction.
executivestringFiler name.
titlestringoptionalFiler role (CEO, Director, …).
actionstring`A` (acquisition) or `D` (disposal).
sharesnumberShares in the transaction.
pricenumberPer-share price; 0 for grants/awards.
valuenumber`shares × price`, rounded to cents.
security_typestringoptionalSecurity class (`Common Stock`, …) — part of the filing's key; two same-day filings by one executive can differ only here.
Notes
- This is
GET /v2/eventswithkind=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/webhookswithtrigger.kinds=insider.
More examples
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"// Aggregate rows: { ticker, bought } sorted by the rollup.