Skip to main content
Glama

Form4API — SEC Insider Trading

get_transactions

Read-only

Search SEC Form 4 insider transactions with rich filters: ticker, insider CIK, transaction code/category, date range, a dollar floor (min_value), institutional-ownership trend, and (Pro+) upper trade-size bounds plus post-trade return screening (1d/1w/1m/3m/6m, returns as fractions e.g. 0.05 = +5%). Returns transaction-level rows — shares, price, total value, transaction code, 10b5-1 flag, insider role flags. Use this for filtered or historical search across many companies/insiders; use get_recent_filings for an unfiltered live feed instead, or get_insider_transactions/get_company_insiders when you already have a specific insider or company. Free plan, including min_value; max_value/min_shares/max_shares/min_return_*/max_return_*/has_returns require Pro. Paginated, max 100/page, and paging depth is plan-limited (Free 20 pages, Starter 100, Pro+ unlimited) — for a bulk pull use the REST endpoint GET /v1/transactions/export (Business) instead of paging.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_transactions"
  }
}

Input Schema

NameRequiredDescriptionDefault
toNoEnd date, inclusive, format YYYY-MM-DD (e.g. 2026-12-31). Filters on transactionDate.
cikNoCompany CIK number — SEC's numeric filer identifier, e.g. 0000320193. Leading zeros optional.
codeNoSingle SEC transaction code to filter to. P=open-market purchase, S=open-market sale, A=grant/award, M=option exercise, F=tax withholding on vesting, D=disposition to issuer, G=gift, C=conversion of derivative, J=other. Use `codes` instead to match more than one.
fromNoStart date, inclusive, format YYYY-MM-DD (e.g. 2026-01-01). Filters on transactionDate.
pageNo1-based page number. Defaults to 1. Paging depth is plan-limited: Free reaches page 20, Starter page 100, Pro and above unlimited; beyond that the call returns 402 with the upgrade path. If you need the full history rather than a page of it, the REST endpoint GET /v1/transactions/export (Business plan) streams the entire filtered set as CSV in one request.
roleNoFilter by the insider's role: "officer", "director", or "ten_percent_owner". Matches the isOfficer / isDirector / isTenPercentOwner flags on each row.
sortNoResult ordering: "date" (default — most recent transaction date first) or "value" (largest transaction value first, computed as sharesAmount * pricePerShare; null-price rows sort last). Value ordering is applied server-side across the full filtered set before pagination, so page 1 is the true top-by-value.
codesNoComma-separated list of SEC transaction codes to include, e.g. "P,S" (see `code` for the letter meanings). Multi-code superset of `code`.
tickerNoStock ticker symbol, case-insensitive, e.g. AAPL or aapl. Also accepts a comma-separated list of up to 25 symbols (e.g. "AAPL,MSFT") to match any of them in one call; tokens are trimmed and upper-cased, empty tokens are ignored, and more than 25 symbols returns 400.
categoryNoInclude only one category of transactions. open_market = P/S (the signal most users want); grants = award/comp noise; derivatives = option exercises etc.
filed_toNoInclusive end of the filed-date window, format YYYY-MM-DD. Filters on Filing.FiledAt.
per_pageNoResults per page. Defaults to 20, maximum 100.
max_valueNoMaximum trade value in USD (shares × price), inclusive. Requires Pro plan or higher — the whole call is rejected with 403 on Free/Starter, not silently ignored. Use min_value alone to screen by size on a free key.
min_valueNoMinimum trade value in USD (shares × price), inclusive. Available on every plan.
filed_fromNoInclusive start of the filed-date window, format YYYY-MM-DD. Filters on Filing.FiledAt (when the filing became public), not transactionDate — the two can differ by days to weeks. Use this to replay disclosures in the order the market actually saw them.
max_sharesNoMaximum number of shares, inclusive. Requires Pro plan or higher — the whole call is rejected with 403 on Free/Starter, not silently ignored.
min_sharesNoMinimum number of shares, inclusive. Requires Pro plan or higher — the whole call is rejected with 403 on Free/Starter, not silently ignored.
has_returnsNoIf true, only return transactions with at least one computed post-trade return horizon (any of 1d/1w/1m/3m/6m). Requires Pro plan or higher — omitted or ignored on Free.
insider_cikNoInsider CIK number — SEC's numeric filer identifier, e.g. 0001214128. Leading zeros optional.
significantNoIf true, preset = open-market trades only, no 10b5-1 plan trades, no derivatives. The "just show me real discretionary buys and sells" filter. Explicit params override it.
exclude_10b5NoIf true, exclude pre-scheduled 10b5-1 plan trades. Recommended for signal analysis — filters out automatic, non-discretionary trades.
exclude_codesNoComma-separated list of SEC transaction codes to exclude, e.g. "A,M,F,G" to drop grants, option exercises, tax withholding and gifts.
max_return_1dNoMaximum 1-day post-trade return as a fraction (e.g. -0.1 = -10%), inclusive. Requires Pro plan or higher — omitted or ignored on Free.
max_return_1mNoMaximum 1-month post-trade return as a fraction, inclusive. Requires Pro plan or higher — omitted or ignored on Free.
max_return_1wNoMaximum 1-week post-trade return as a fraction, inclusive. Requires Pro plan or higher — omitted or ignored on Free.
max_return_3mNoMaximum 3-month post-trade return as a fraction, inclusive. Requires Pro plan or higher — omitted or ignored on Free.
max_return_6mNoMaximum 6-month post-trade return as a fraction, inclusive. Requires Pro plan or higher — omitted or ignored on Free.
min_return_1dNoMinimum 1-day post-trade return, as a FRACTION not a percentage (0.05 = +5%), inclusive. Rows with no computed 1-day return are excluded. Requires Pro plan or higher — omitted or ignored on Free.
min_return_1mNoMinimum 1-month post-trade return as a fraction (0.05 = +5%), inclusive. Requires Pro plan or higher — omitted or ignored on Free.
min_return_1wNoMinimum 1-week post-trade return as a fraction (0.05 = +5%), inclusive. Requires Pro plan or higher — omitted or ignored on Free.
min_return_3mNoMinimum 3-month post-trade return as a fraction (0.05 = +5%), inclusive. Requires Pro plan or higher — omitted or ignored on Free.
min_return_6mNoMinimum 6-month post-trade return as a fraction (0.05 = +5%), inclusive. Requires Pro plan or higher — omitted or ignored on Free.
exclude_categoryNoExclude an entire category of transactions, e.g. exclude_category=derivatives drops all option-related rows.
exclude_derivativeNoIf true, drop derivative-security rows — the cleanest single "no options" switch.
inst_ownership_trendNoFilter by the trailing quarter-over-quarter trend in institutional (13F) ownership of the underlying company. No effect if institutional-ownership enrichment is disabled server-side; rows where the trend was suppressed for insufficient 13F coverage still match "stable".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful context beyond that: which filters are plan-gated (Free vs Pro), that gated params reject the whole call with 403 rather than being ignored, paging depth limits (20/100/unlimited) with a 402 on overflow, and the max 100/page cap. It stops short of describing row shape in detail, but the enumerated return fields (shares, price, value, code, 10b5-1, role flags) are adequate for a read-only search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and sibling routing, then plan/pagination caveats — a sensible order. It is dense rather than padded, though the paging-depth and export-endpoint guidance appears both in the description body and in the page parameter, a minor duplication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 35-parameter, no-required-argument search tool with no output schema, the definition covers the essentials: scope, sibling routing, plan-gated parameters, pagination ceilings, and a sketch of the returned fields. Nothing an agent needs in order to call it correctly or interpret a 402/403 is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every one of the 35 parameters is already documented with enums, formats and examples. The description mostly restates filter categories at a higher level and adds the plan-gating summary and the fraction-not-percentage convention (also in the schema). Baseline 3 is correct when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Search SEC Form 4 insider transactions") and enumerates the filter families the tool supports. It explicitly names the siblings it is not (get_recent_filings, get_insider_transactions, get_company_insiders) and the condition that selects each, so an agent can disambiguate without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the selection rule directly: use this for filtered or historical search across many companies/insiders, use get_recent_filings for an unfiltered live feed, and use the narrower insider/company tools when a specific entity is already known. It goes further and routes bulk extraction to the REST export endpoint instead of paging.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.