/insider-module/api/insiders/insider/searchSearch for insider individuals and entities by name or CIK.
Search for insider individuals and entities by name or CIK. Returns matching insiders with their latest company affiliation and list of active tickers where they are current insiders.
Why use this
Common use case
Insider/entity search — autocomplete-friendly endpoint returning a flat array (NOT wrapped in StandardResponse) ranked by name_as_filed ILIKE '%query%' OR cik ILIKE '%query%'. Designed for fast keystroke-driven UX: 1-token cost, 100-row hard cap, no pagination overhead.
Response shape is the bare List[InsiderSearchSchema] — note the absence of the data/status/meta envelope used elsewhere in this section. Each row carries identity (cik / name / is_entity) plus two enrichment fields useful for autocomplete rendering: latest_company (the most-recently-filed-at issuer, for use as the row subtitle) and active_tickers[] (CURRENT relationships only — passes through OwnerRelationship.is_current=true, so retired insiders return empty arrays).
Matches against BOTH name and CIK — typing 0001214156 finds Tim Cook just as cook does. Use this endpoint to populate the search autocomplete in insider profile pages, then call GET /insider-module/api/insiders/insider/{insider_cik} once the user selects a row.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| query | query | required | — | — | Search term (min 2 chars). Matches against insider name or CIK. | apple |
| limit | query | optional | 50 | — | Max results (1-100) | 20 |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| [].cik | string | no | Insider CIK (10-character zero-padded). Pass directly to `/insider/{insider_cik}` for the full profile. |
| [].name | string | yes | Insider legal name (`name_as_filed` from the most-recent filing). Casing preserved verbatim. May be an individual or an entity. |
| [].is_entity | boolean | no | `true` for entity reporters (LP, fund vehicle, trust); `false` for individuals. Useful for splitting search results into 'People' vs 'Entities' tabs in autocomplete UIs. |
| [].latest_company | string | yes | Issuer name from the insider's MOST RECENT Form 3/4/5 filing (whichever issuer they last filed at). Null when the insider has no filings on record. Useful as the autocomplete-row subtitle (e.g. `'TIM COOK — Apple Inc.'`). |
| [].active_tickers | array | no | List of CURRENT issuer tickers where this insider has an active OwnerRelationship row (`is_current=true`). Empty array when the insider has no current relationships (e.g. retired). Useful for rendering ticker chips in autocomplete (e.g. an insider holding board seats at 3 companies shows 3 ticker chips). |
Sample response
- "cik": "0001214156"
- "name": "COOK TIMOTHY D"
- "is_entity": false
- "latest_company": "APPLE INC"
- "active_tickers":
- "cik": "0001494730"
- "name": "MUSK ELON"
- "is_entity": false
- "latest_company": "TESLA, INC."
- "active_tickers":
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/search?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).