/insider-module/api/insiders/insider/{insider_cik}Get detailed insider profile.
Get detailed insider profile. Returns current_roles with per-company total_beneficial_ownership, ownership_summary with per-company vehicle breakdown (direct/indirect shares), and recent_transactions with total_beneficial_ownership per row. Transactions include sector/industry classification from Sharadar.
Why use this
Common use case
Comprehensive insider profile — identity + current issuer relationships + aggregated cross-vehicle ownership + last-365-day activity rollup + 20-row recent-transaction tape, all in one response. Designed to fully populate an insider profile page (e.g. /insiders/0001214156) without N+1 round-trips.
The ownership_summary.companies map exposes per-issuer vehicle breakdowns — useful for rendering 'AAPL: 3.2M shares (3.2M direct + 50K via GRAT Trust 2024)' tooltips. Each recent_transactions[].total_beneficial_ownership field carries the aggregate-across-vehicles position AS OF that transaction, which is the conviction-magnitude proxy for sales (a $5M sale that's 60% of holdings is a fundamentally different signal from a $5M sale that's 2%).
Returns HTTP 404 when the CIK cannot be resolved to any reporting owner. For the full transaction history (paginated, filterable) use GET /insider-module/api/insiders/transactions/by-insider/{cik}; for current cross-issuer holdings use GET /insider-module/api/insiders/holdings/by-insider/{cik}.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| insider_cik | path | required | — | — | Insider CIK number | 0001214156 |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| cik | string | no | Insider CIK (10-character zero-padded). Echo of the resolved path parameter. |
| name | string | yes | Insider legal name (`name_as_filed` from the most-recent Form 4). |
| is_entity | boolean | no | `true` for entity reporters (LP, fund vehicle, trust); `false` for individuals. |
| current_roles | array | no | Array of currently-active issuer relationships (one entry per `(insider, issuer)` pair where `OwnerRelationship.is_current=true`). Empty when the insider has no active relationships (e.g. retired). |
| current_roles[].ticker | string | yes | Issuer ticker for this role (canonical hyphen form). |
| current_roles[].company | string | yes | Issuer name. |
| current_roles[].roles | array | no | Array of role labels — `'Director'`, `'Officer ({raw_title})'`, `'10% Owner'`. May contain multiple entries when the insider holds multiple roles at the same issuer. |
| current_roles[].total_beneficial_ownership | number | yes | Aggregate shares this insider beneficially owns at this issuer (rolled up across all direct + indirect ownership vehicles). Null when the underlying filings do not report ownership. |
| ownership_summary | object | yes | Aggregate ownership totals + per-issuer vehicle breakdown. Most useful for rendering 'Total holdings: 3.2M shares (2.1M direct, 1.1M indirect)' chips on profile pages. |
| ownership_summary.total_shares_direct | number | no | Sum of share counts across all direct-ownership vehicles (own name). |
| ownership_summary.total_shares_indirect | number | no | Sum of share counts across all indirect-ownership vehicles (trust, LLC, family member). |
| ownership_summary.total_beneficial | number | no | `total_shares_direct + total_shares_indirect` — the all-vehicles aggregate. |
| ownership_summary.companies | object | no | Map keyed by `issuer_cik` → `{total_beneficial_ownership, vehicles[]}`. Each `vehicles[]` entry: `{ownership_nature, indirect_owner_name, shares}`. Empty object when the insider has no holdings. |
| total_transactions_365d | integer | no | Count of all transactions (across all issuers) in the trailing 365 days. |
| total_buy_value_365d | number | no | Sum of buy-side `shares × price` across all issuers in the trailing 365 days, USD. Defaults to `0` when no qualifying buys. |
| total_sell_value_365d | number | no | Sum of sell-side `shares × price` across all issuers in the trailing 365 days, USD. |
| latest_transaction_date | string | yes | ISO `YYYY-MM-DD` of the insider's most recent transaction across any issuer. Null when no qualifying transactions in the 365-day window. |
| recent_transactions | array | no | Up to 20 most-recent transactions (across all issuers), sorted by `transaction_date DESC`. The same transaction shape as `/transactions/by-insider/{cik}` plus a `total_beneficial_ownership` enrichment per row. |
| recent_transactions[].transaction_id | string | yes | Stable internal primary key. |
| recent_transactions[].transaction_date | string | yes | ISO `YYYY-MM-DD` trade execution date. |
| recent_transactions[].transaction_code | string | yes | Raw SEC Form 4 transaction code. |
| recent_transactions[].acquired_disposed_code | string | yes | `A` (Acquired) or `D` (Disposed). |
| recent_transactions[].shares | number | no | Share count (split-adjusted). |
| recent_transactions[].price_per_share | number | yes | Per-share USD price. |
| recent_transactions[].transaction_value | number | yes | Computed `shares × price_per_share` in USD. |
| recent_transactions[].shares_owned_following | number | yes | Per-vehicle holdings after this transaction. |
| recent_transactions[].total_beneficial_ownership | number | yes | Aggregate shares owned by this insider at this issuer across ALL vehicles, AS OF this transaction. The conviction-magnitude proxy — a $5M sale that's 60% of `total_beneficial_ownership` is a different signal from a $5M sale that's 2%. |
| recent_transactions[].is_rule_10b5_1 | boolean | no | `true` for 10b5-1 plan executions. |
| recent_transactions[].is_cashless_exercise | boolean | no | `true` for option-exercise-and-immediate-sale patterns. |
| recent_transactions[].insider_name | string | yes | The reporting person's name. |
| recent_transactions[].insider_cik | string | yes | The reporting person's CIK. |
| recent_transactions[].is_entity | boolean | yes | `true` for entity reporters. |
| recent_transactions[].is_director | boolean | no | Director relationship to the issuer for THIS transaction's row. |
| recent_transactions[].is_officer | boolean | no | Officer relationship for this row. |
| recent_transactions[].is_ten_percent_owner | boolean | no | 10%-owner relationship for this row. |
| recent_transactions[].insider_title | string | yes | Officer title raw text. |
| recent_transactions[].officer_title_standardized | string | yes | Officer title normalized. |
| recent_transactions[].is_c_suite | boolean | no | C-suite indicator. |
| recent_transactions[].ticker | string | yes | Issuer ticker for this row (varies across rows). |
| recent_transactions[].company_name | string | yes | Issuer name. |
| recent_transactions[].sector | string | yes | Sharadar sector classification. |
| recent_transactions[].industry | string | yes | Sharadar industry classification. |
| recent_transactions[].issuer_cik | string | yes | Issuer CIK. |
| recent_transactions[].security_type | string | yes | Security title. |
| recent_transactions[].accession_number | string | yes | Source filing accession number. |
| recent_transactions[].form_type | string | yes | Form type. |
| recent_transactions[].filing_date | string | yes | ISO-8601 UTC filing acceptance timestamp. |
Sample response
- "cik": "0001214156"
- "name": "COOK TIMOTHY D"
- "is_entity": false
- "current_roles":
- "ownership_summary":
- "total_shares_direct": 3229012
- "total_shares_indirect": 50000
- "total_beneficial": 3279012
- "companies":
- "total_transactions_365d": 18
- "total_buy_value_365d": 0
- "total_sell_value_365d": 142865500
- "latest_transaction_date": "2026-04-15"
- "recent_transactions":
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/insider/{insider_cik}?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).