/api/v1/ownership/beneficial-ownership/groupsList group filings where multiple parties act together.
List group filings where multiple parties act together.
10 tokensSince v3.0.0
Why use this
Schedule 13D groups — coordinated filers who file together as a single beneficial-ownership group under SEC Section 13(d)(3) (a 'group' is formed whenever 2+ entities agree to act together for the purpose of acquiring or holding the issuer's securities). Each row lists ALL members + their aggregate position. The most actionable use case is detecting 'wolf pack' formations — 2-5 activist funds quietly coordinating a >5% position before any individual filer crosses the threshold. Also surfaces SPAC sponsor consortia, family-office layered structures, and buyout-fund + management rollups in pre-merger filings. Pair with `/ownership/beneficial-ownership/activists` to see groups whose purpose is classified as activist intent.
Common use case
Identify coordinated investor groups, wolf pack formations.
Schedule 13D groups — coordinated filers who file together as a single beneficial-ownership group. Each row lists all members + their aggregate position. Useful for surfacing "ad-hoc activist coalitions" and SPAC sponsor consortia.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| issuerCik | query | optional | — | — | Filter to groups targeting this issuer (the company being collectively held). Accepts both 10-char zero-padded form (`0000051143`) and unpadded (`51143`). Returns empty array when no groups have ever filed against this issuer (most companies). | 0000051143 |
| activeOnly | query | optional | true | — | When `true` (default), returns only groups whose latest filing was within the last 12 months — i.e. structurally still active. When `false`, includes historical groups whose campaigns have wound down (member departure, group dissolution amendment, full position exit). Set to `false` for activism-history research; leave default for current-state surveillance. | true |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| groups | array | no | Array of group rows, sorted by `aggregatePercent DESC` (largest groups first). Each group represents one coordinated filing structure against one issuer. A single issuer can have multiple groups (overlapping or distinct membership) if different consortia have filed separate Schedule 13Ds. Empty array on no match. |
| groups[].groupId | string | no | Internal stable group identifier in `grp_XXXXXX` format (e.g. `grp_8a1f`). Unique per `(issuer, group_member_set)` tuple — re-runs return the same ID. Use as a join key when caching group state across polls. |
| groups[].issuerCik | string | no | Target issuer CIK in 10-char zero-padded form. The company the coordinated group is filing against. |
| groups[].issuerTicker | string | yes | Resolved issuer ticker (canonical hyphen form). Null for private-company target groups (rare; most groups target public issuers). |
| groups[].members | array | no | Array of member filer rows. Length 2-9+ (2 is most common — typical PE LP+GP structure; 5+ is rare and usually indicates a multi-party activist coalition like Engine No. 1's 2021 ExxonMobil board fight). Sorted by member CIK for stable ordering. |
| groups[].members[].filerCik | string | no | Member filer CIK in 10-char zero-padded form. Each member is itself a 13D/G filer — pass to `/ownership/beneficial-ownership/filers/{cik}/portfolio` to see their full beneficial-ownership book outside of this group. |
| groups[].members[].filerName | string | no | Member filer name as filed (typically all-caps EDGAR convention). For activist groups commonly mixes fund-entity names + individual principal names (e.g. `TRIAN FUND MANAGEMENT LP` + `NELSON PELTZ`). |
| groups[].aggregatePercent | number | no | Group's combined aggregate `percent_of_class` summed across all members. Above 5.00 by definition (since group membership triggers a Schedule 13D). Wolf-pack groups typically aggregate to 6-12%; SPAC sponsor consortia often 15-25%. |
| groups[].aggregateShares | number | no | Group's combined aggregate share count summed across all members. NOT split-adjusted — preserves as-filed view. Use this with `aggregatePercent` to compute the implied total class outstanding. |
| groups[].latestFiledAt | string | no | ISO-8601 UTC timestamp of the most recent group-member filing. With `activeOnly=true`, this will always be within the last 12 months. Use to detect group-state changes — long gaps may indicate unfiled cessations or membership changes that haven't yet hit our parser. |
Sample response
·
- "groups":
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/api/v1/ownership/beneficial-ownership/groups?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).