Skip to content
/insider-module/api/insiders/screen

Screen for specific insider criteria.

Screen for specific insider criteria. Supports sector/industry filtering from Sharadar classification.

10 tokensSince v1.5.0

Why use this

Finviz-style insider screener — narrower and more deduplicated than `/transactions/search`. Pre-aggregates duplicate rows for the same insider on the same day (so a CEO that filed three back-to-back code-S sales on one date appears as one row), and is optimized for ≤500-row screening result sets that drive 'who's selling NVDA today?' tables on retail dashboards. Lacks the heavier filters of `/transactions/search` (no `min_value`, no `is_c_suite`, no `dedup_owners` flag) so use this when you want a fast clean ticker/sector/date-range screen, and use `/transactions/search` when you need the full filter matrix.

Common use case

Finding companies with net insider buying in the Technology sector within the last week, sorted by sentiment.

Insider-activity screener — returns one aggregate row PER COMPANY (not per transaction), so you can rank tickers by net insider sentiment, net value, or activity volume. Filter by date window, sentiment/net-value thresholds, minimum transactions/insiders, C-suite-only, the exclusion flags, and Sharadar sector/industry. Combine with GET /insider-module/api/insiders/aggregation/by-sector when you want sector-level rather than company-level roll-ups, or GET /insider-module/api/insiders/transactions/search for the per-transaction rows behind each company.

Parameters

NameInRequiredDefaultAllowedDescriptionExample
filed_at_daysqueryoptional7Look back this many days by FILING date (when the Form 4 landed on EDGAR). Range 1–3650.30
transaction_daysqueryoptionalLook back this many days by TRANSACTION (trade-execution) date. Range 1–365. Omit to derive the transaction window from `filed_at_days` (with a 2-week filing-delay buffer).30
sentiment_gtqueryoptionalKeep only companies whose count-based `sentiment_score` is greater than this (range -1.0 to 1.0). E.g. `0.5` = strong net buying.0.5
sentiment_ltqueryoptionalKeep only companies whose count-based `sentiment_score` is less than this (range -1.0 to 1.0). E.g. `-0.5` = strong net selling.-0.5
net_value_gtqueryoptionalKeep only companies whose `net_value` (buy USD − sell USD) is greater than this.1000000
net_value_ltqueryoptionalKeep only companies whose `net_value` is less than this.-1000000
min_transactionsqueryoptional1Minimum number of transactions a company must have to appear in results.3
min_insidersqueryoptional1Minimum number of distinct insiders a company must have to appear in results.2
csuite_onlyqueryoptionalfalseWhen `true`, restrict the aggregation to C-suite (CEO/CFO/COO/CIO/CTO/General Counsel) activity.true
exclude_10b5_1queryoptionalfalseWhen `true`, exclude pre-planned Rule 10b5-1 trades from the filtered totals (the `rule_10b5_1_*` transparency fields are unaffected).true
exclude_cashlessqueryoptionalfalseWhen `true`, exclude cashless option exercises from the filtered totals.true
exclude_sell_to_coverqueryoptionalfalseWhen `true`, exclude RSU sell-to-cover (tax-withholding) sales from the filtered totals.true
limitqueryoptional100Maximum number of company rows to return (1–1000).50
offsetqueryoptional0Zero-based pagination offset.0
sort_byqueryoptionalabs_sentimentsentiment, abs_sentiment, net_value, abs_net_value, total_transactionsSort key. `abs_sentiment`/`abs_net_value` rank by magnitude regardless of direction (most-active first); `sentiment`/`net_value` rank signed (most-bullish first); `total_transactions` ranks by activity volume.net_value
sectorqueryoptionalSharadar sector classification, case-sensitive (e.g. `Technology`, `Healthcare`, `Financial Services`). Restricts the screen to one sector. Tickers without Sharadar mappings are excluded.Technology
industryqueryoptionalSharadar industry classification, case-sensitive (more specific than `sector`). Em-dash characters require URL-encoding when round-tripping. Use the `/financials/tickers` endpoint to enumerate exact valid values.Consumer Electronics

Response schema

FieldTypeNullableDescription
resultsarraynoArray of per-COMPANY aggregate rows (one entry per ticker with activity in the window) — NOT per-transaction rows. Sorted by `sort_by`. Empty array when no company matches the filters.
results[].tickerstringnoIssuer ticker (canonical hyphen form).
results[].company_namestringnoIssuer name.
results[].issuer_cikstringnoIssuer CIK (10-character zero-padded).
results[].sectorstringyesSharadar sector classification for the issuer. Null when the ticker is unmapped.
results[].industrystringyesSharadar industry classification (more specific than `sector`). Null when unmapped.
results[].total_transactionsintegernoTotal transactions matching filters.
results[].total_buysintegernoTotal buy transactions matching filters.
results[].total_sellsintegernoTotal sell transactions matching filters.
results[].total_buy_valuenumbernoTotal buy value (USD) matching filters.
results[].total_sell_valuenumbernoTotal sell value (USD) matching filters.
results[].net_valuenumbernoNet value (buy − sell, USD) matching filters.
results[].total_buy_sharesnumbernoTotal shares bought matching filters.
results[].total_sell_sharesnumbernoTotal shares sold matching filters.
results[].net_sharesnumbernoNet shares (buy − sell) matching filters.
results[].unique_insidersintegernoCount of unique insiders matching filters.
results[].unique_buyersintegernoCount of unique buyers matching filters.
results[].unique_sellersintegernoCount of unique sellers matching filters.
results[].rule_10b5_1_buy_countintegernoACTUAL 10b5-1 buy-plan count (transparency — NOT affected by `exclude_10b5_1`).
results[].rule_10b5_1_sell_countintegernoACTUAL 10b5-1 sell-plan count (transparency).
results[].rule_10b5_1_buy_valuenumbernoACTUAL 10b5-1 buy value, USD (transparency).
results[].rule_10b5_1_sell_valuenumbernoACTUAL 10b5-1 sell value, USD (transparency).
results[].csuite_buy_countintegernoC-suite buy count matching filters.
results[].csuite_sell_countintegernoC-suite sell count matching filters.
results[].csuite_buy_valuenumbernoC-suite buy value, USD, matching filters.
results[].csuite_sell_valuenumbernoC-suite sell value, USD, matching filters.
results[].csuite_net_valuenumbernoC-suite net value, USD, matching filters.
results[].officer_buy_valuenumbernoOfficer buy value, USD, matching filters.
results[].officer_sell_valuenumbernoOfficer sell value, USD, matching filters.
results[].director_buy_valuenumbernoDirector buy value, USD, matching filters.
results[].director_sell_valuenumbernoDirector sell value, USD, matching filters.
results[].buy_sell_rationumbernoRatio of buys to sells.
results[].sentiment_scorenumbernoCount-based sentiment in [-1, +1].
results[].value_sentiment_scorenumbernoValue-based sentiment in [-1, +1].
results[].csuite_sentiment_scorenumbernoC-suite count-based sentiment in [-1, +1].
results[].value_csuite_sentiment_scorenumbernoC-suite value-based sentiment in [-1, +1].
results[].filing_countintegernoDistinct filings count for the company in the window.
results[].latest_transaction_datestringyesISO `YYYY-MM-DD` of the company's latest transaction in the window. Null when empty.
metaobjectnoInsiderScreenMeta result-metadata block.
meta.total_resultsintegernoTotal matching companies (pre-pagination).
meta.returnedintegernoNumber of company rows returned on this page.
meta.limitintegernoEcho of the effective limit.
meta.offsetintegernoEcho of the requested offset.
meta.has_morebooleanno`true` when another page is available.
meta.request_idstringyesPer-request UUID for log correlation.
meta.timestampstringnoISO-8601 UTC response timestamp.
meta.filters_appliedobjectnoVerbatim echo of the applied filter set.

Sample response

·
  • "results":
    ]
  • "meta":
    • "total_results": 87
    • "returned": 1
    • "limit": 100
    • "offset": 0
    • "has_more": false
    • "request_id": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d"
    • "timestamp": "2026-05-02T15:36:42.117Z"
    • "filters_applied":
    }
}

Errors

StatusLabelDescription
200OKRequest succeeded.
400Bad RequestInvalid query, body, or path parameter.
401UnauthorizedMissing or invalid Authorization header / api_Token.
402Payment RequiredInsufficient token balance for this call. Top up
429Too Many RequestsRate limit exceeded for your tier (see /pricing for tier limits). Tier limits
500Server ErrorUnexpected server-side failure. Retry with backoff; report if persistent.

Code samples

curl "https://api.finradar.ai/insider-module/api/insiders/screen?api_Token=YOUR_API_KEY" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).

Try it

Related endpoints