Skip to content
/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.

5 tokensSince v1.0.0

Why use this

Complete insider profile with aggregated ownership data.

Common use case

Building an insider profile page showing Elon Musk's roles, total shares per company (direct + trust holdings), and recent trades.

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

NameInRequiredDefaultAllowedDescriptionExample
insider_cikpathrequiredInsider CIK number0001214156

Response schema

FieldTypeNullableDescription
cikstringnoInsider CIK (10-character zero-padded). Echo of the resolved path parameter.
namestringyesInsider legal name (`name_as_filed` from the most-recent Form 4).
is_entitybooleanno`true` for entity reporters (LP, fund vehicle, trust); `false` for individuals.
current_rolesarraynoArray 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[].tickerstringyesIssuer ticker for this role (canonical hyphen form).
current_roles[].companystringyesIssuer name.
current_roles[].rolesarraynoArray 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_ownershipnumberyesAggregate 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_summaryobjectyesAggregate 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_directnumbernoSum of share counts across all direct-ownership vehicles (own name).
ownership_summary.total_shares_indirectnumbernoSum of share counts across all indirect-ownership vehicles (trust, LLC, family member).
ownership_summary.total_beneficialnumberno`total_shares_direct + total_shares_indirect` — the all-vehicles aggregate.
ownership_summary.companiesobjectnoMap 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_365dintegernoCount of all transactions (across all issuers) in the trailing 365 days.
total_buy_value_365dnumbernoSum of buy-side `shares × price` across all issuers in the trailing 365 days, USD. Defaults to `0` when no qualifying buys.
total_sell_value_365dnumbernoSum of sell-side `shares × price` across all issuers in the trailing 365 days, USD.
latest_transaction_datestringyesISO `YYYY-MM-DD` of the insider's most recent transaction across any issuer. Null when no qualifying transactions in the 365-day window.
recent_transactionsarraynoUp 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_idstringyesStable internal primary key.
recent_transactions[].transaction_datestringyesISO `YYYY-MM-DD` trade execution date.
recent_transactions[].transaction_codestringyesRaw SEC Form 4 transaction code.
recent_transactions[].acquired_disposed_codestringyes`A` (Acquired) or `D` (Disposed).
recent_transactions[].sharesnumbernoShare count (split-adjusted).
recent_transactions[].price_per_sharenumberyesPer-share USD price.
recent_transactions[].transaction_valuenumberyesComputed `shares × price_per_share` in USD.
recent_transactions[].shares_owned_followingnumberyesPer-vehicle holdings after this transaction.
recent_transactions[].total_beneficial_ownershipnumberyesAggregate 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_1booleanno`true` for 10b5-1 plan executions.
recent_transactions[].is_cashless_exercisebooleanno`true` for option-exercise-and-immediate-sale patterns.
recent_transactions[].insider_namestringyesThe reporting person's name.
recent_transactions[].insider_cikstringyesThe reporting person's CIK.
recent_transactions[].is_entitybooleanyes`true` for entity reporters.
recent_transactions[].is_directorbooleannoDirector relationship to the issuer for THIS transaction's row.
recent_transactions[].is_officerbooleannoOfficer relationship for this row.
recent_transactions[].is_ten_percent_ownerbooleanno10%-owner relationship for this row.
recent_transactions[].insider_titlestringyesOfficer title raw text.
recent_transactions[].officer_title_standardizedstringyesOfficer title normalized.
recent_transactions[].is_c_suitebooleannoC-suite indicator.
recent_transactions[].tickerstringyesIssuer ticker for this row (varies across rows).
recent_transactions[].company_namestringyesIssuer name.
recent_transactions[].sectorstringyesSharadar sector classification.
recent_transactions[].industrystringyesSharadar industry classification.
recent_transactions[].issuer_cikstringyesIssuer CIK.
recent_transactions[].security_typestringyesSecurity title.
recent_transactions[].accession_numberstringyesSource filing accession number.
recent_transactions[].form_typestringyesForm type.
recent_transactions[].filing_datestringyesISO-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

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/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).