/insider-module/api/insiders/recommendations/dailyAlgorithmic daily Buy/Sell recommendations based on insider cluster analysis.
Algorithmic daily Buy/Sell recommendations based on insider cluster analysis. STRONG BUY: >2 unique insiders buying in last 7 days + >$100k total volume. STRONG SELL: >2 unique insiders selling in last 7 days + >$500k total volume. Deduplicated to prevent joint-filing inflation.
Why use this
Common use case
Productized daily Buy/Sell signal — built on top of cluster detection with deterministic thresholds. STRONG BUY = >2 unique insiders buying in the last 7 days AND aggregate volume >$100k. STRONG SELL = >2 unique insiders selling in the last 7 days AND aggregate volume >$500k. Joint-filer rows are deduplicated upstream so the signal does not fire on artificially-inflated joint-filing volume (post v3.1.1 fix). Refreshed at 09:30 UTC daily; reads after that time return the new day; reads before that time return the prior day. Use GET /insider-module/api/insiders/clusters for the underlying clusters with full configurability.
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| buy | array | no | Array of STRONG BUY signal rows (top 5 by aggregate value), sorted by `total_value DESC`. Empty array on quiet days when no ticker meets the deterministic buy threshold (>2 unique insiders buying in the last 7 days AND aggregate volume ≥ $100k). |
| buy[].ticker | string | yes | Issuer ticker firing the buy recommendation (canonical hyphen form). |
| buy[].signal | string | no | Recommendation literal — always `STRONG BUY` for entries in this array. |
| buy[].insider_count | integer | no | Distinct UNIQUE BENEFICIAL OWNERS (post-v3.1.1 dedup) buying during the 7-day window. Always ≥3 to qualify. |
| buy[].total_value | number | no | Aggregate USD buy value across all qualifying transactions in the 7-day window (`SUM(shares × price_per_share)`, post joint-filer dedup). Always ≥ $100k. |
| buy[].price_avg | number | no | Average per-share price across the qualifying buy transactions (USD). |
| buy[].latest_date | string | yes | ISO-8601 timestamp of the most recent qualifying filing in the cluster (the freshest signal data point). Null when unavailable. |
| sell | array | no | Array of STRONG SELL signal rows (top 5 by aggregate value), sorted by `total_value DESC`. Empty array when no ticker meets the deterministic sell threshold (>2 unique insiders selling in the last 7 days AND aggregate volume ≥ $500k). RSU sell-to-cover (tax-withholding) sales are excluded so they never form a false SELL signal. |
| sell[].ticker | string | yes | Issuer ticker firing the sell recommendation (canonical hyphen form). |
| sell[].signal | string | no | Recommendation literal — always `STRONG SELL` for entries in this array. |
| sell[].insider_count | integer | no | Distinct UNIQUE BENEFICIAL OWNERS selling during the 7-day window. Always ≥3 to qualify. |
| sell[].total_value | number | no | Aggregate USD sell value across all qualifying transactions in the 7-day window. Always ≥ $500k. |
| sell[].price_avg | number | no | Average per-share price across the qualifying sell transactions (USD). |
| sell[].latest_date | string | yes | ISO-8601 timestamp of the most recent qualifying filing in the cluster. Null when unavailable. |
| meta | object | no | Computation metadata block. |
| meta.strategy | string | no | Strategy label — `Cluster Analysis`. |
| meta.period | string | no | Lookback window label — `7 days`. |
| meta.generated_at | string | no | ISO-8601 UTC timestamp when this list was computed (per-request, not cached). |
Sample response
- "buy":
- "sell":
- "meta":
- "strategy": "Cluster Analysis"
- "period": "7 days"
- "generated_at": "2026-05-01T09:30:00.000Z"
Errors
| Status | Label | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid query, body, or path parameter. |
| 401 | Unauthorized | Missing or invalid Authorization header / api_Token. |
| 402 | Payment Required | Insufficient token balance for this call. Top up |
| 429 | Too Many Requests | Rate limit exceeded for your tier (see /pricing for tier limits). Tier limits |
| 500 | Server Error | Unexpected server-side failure. Retry with backoff; report if persistent. |
Code samples
curl "https://api.finradar.ai/insider-module/api/insiders/recommendations/daily?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).