---
title: "Largest institutional buys per CUSIP this quarter (cross-fund leaderboard)"
method: GET
path: "/api/v1/sec/13f/top-buys"
tags: ["Hedge Fund Intelligence"]
---

# Largest institutional buys per CUSIP this quarter (cross-fund leaderboard)

`GET /api/v1/sec/13f/top-buys`

Derived cross-fund leaderboard of quarter-over-quarter institutional accumulation. Walks the top-N filers in the requested quarter (ranked by AUM), diffs each filer's per-position share count against the immediately-prior retained quarter, aggregates the POSITIVE share-deltas by CUSIP, and returns the largest rollups by dollar value. Each row reports total shares added, total value added (in $thousands), distinct fund count, and a sample of the top contributing buyers. PUT/CALL option rows are excluded (stock-accumulation signal only). Sales are excluded - this is a strict 'buy' signal. Optional `?quarter=<stem>` scans a historical quarter (default: newest retained stem; from_stem is auto-resolved to the next-prior stem in the retention manifest). v1 limitation: scope bounded to top-N filers (default 100, max 300); full-universe scan deferred to v2 via ingest-side pre-aggregation.

## Query parameters

- `quarter` string, nullable — Optional retention-manifest stem. When omitted, scan the newest available stem.
- `filer_top_n` integer — Top-N institutional managers by AUM to include in the scan (10..80, default 50). The ceiling is measured, not chosen: on prod, one request at a time, 80 answers in about 7s and 90 kills the worker outright (INFRA-46). The previous range allowed up to 300 and defaulted to 100, so the DEFAULT call took the whole API down. Raising this bound means re-measuring MemoryWorkingSet under a scan, not reasoning about it.
- `limit` integer — Maximum CUSIP rows returned (1..200, default 50).

## Response `200`

Cross-fund leaderboard of CUSIPs accumulated this quarter.

- EnvelopeSec13fTopBuysLeaderboard
  - `data` Sec13fTopBuysLeaderboard, required — UC-1.8 cross-fund leaderboard of largest positive share-deltas per CUSIP. Derived layer over B1 retention. Scans top-N institutional managers by AUM in the requested quarter, diffs their per-position share counts against the immediately-prior retained quarter, aggregates positive deltas per CUSIP, and returns the largest rollups by dollar value. Methodology limits (v1): - Scope bounded to top-N filers (default 100, max 300) - full universe scan would require ingest-side pre-aggregation deferred to v2. - PUT/CALL option rows are excluded - stock-accumulation signal only. - Sales (negative deltas) are excluded - we only count buys. - Share counts are NOT split-adjusted (carry-forward from B1 retention).
    - `to_stem` string, required — 13F quarter stem the leaderboard reflects (i.e. the period buys were filed for).
    - `from_stem` string, required — Immediately-prior retained stem used as the baseline.
    - `filer_top_n` integer, required — Echoed scope: requested top-N filers by AUM at to_stem.
    - `filers_scanned` integer, required — Actual filers visited (min of filer_top_n and the universe size in to_stem).
    - `funds_with_buys` integer, required — Subset of filers_scanned that had at least one positive position-delta.
    - `cusip_count` integer, required — Distinct CUSIPs with at least one positive delta across scanned funds (BEFORE limit truncation).
    - `limit` integer, required — Echoed truncation cap.
    - `top_buys` Sec13fTopBuyEntry[], required — Largest CUSIP rollups sorted by total_value_added_usd_thousands DESC then total_shares_added DESC.
      - `cusip` string, required
      - `issuer` string, required — Issuer name first seen across contributing funds (may be empty when only synthetic positions exist).
      - `title` string, required — Position title first seen (e.g. 'COM', 'CL A').
      - `total_shares_added` integer, required — Sum of positive share-deltas across scanned funds for this CUSIP.
      - `total_value_added_usd_thousands` integer, required — Sum of value-deltas in $thousands across scanned funds. Can be negative when share-deltas are positive but quarter-end mark-to-market dropped.
      - `funds_buying` integer, required — Distinct count of scanned funds with a positive share-delta on this CUSIP.
      - `sample_buyers` Sec13fTopBuyBuyer[], required — Top contributing funds (up to 5) sorted by value_delta_usd_thousands DESC.
        - `cik` string, required — 10-digit zero-padded SEC EDGAR CIK.
        - `manager_name` string, required
        - `shares_delta` integer, required — Positive change in share count this fund contributed (sales excluded).
        - `value_delta_usd_thousands` integer, required — Change in market value in $thousands for this fund's position (may be negative on quarter-end mark-to-market even when shares_delta is positive).
  - `meta` SugraMeta, required — Metadata attached to every /api/v1/* response envelope.
    - `endpoint` string, required — Requested endpoint path.
    - `data_time` string, required — ISO 8601 UTC timestamp of the source data, not of the request.
    - `response_time` string, required — ISO 8601 UTC timestamp when this response was produced.
    - `provider` string, required — API name and version.
    - `source` string, nullable — Identifier of the primary upstream source used for this response.
    - `attribution` string, nullable — Human-readable attribution mandated by an upstream source (e.g. a securities regulator or self-regulatory organization). Present only on responses whose source requires the owner and source to be clearly identified. Do not remove or alter it when using the response.
    - `fallback_used` boolean, nullable — True when the primary source failed and a fallback produced the data.
    - `fallback_chain` string[], nullable — Ordered list of sources attempted, in the order they were tried.
    - `cached` boolean, nullable — True when this response was served from the internal cache.
    - `stale` boolean, nullable — True when the cached response was returned after the upstream rate-limited or errored. Clients can use this to detect degraded data.

## Other responses

- `401` — Missing or invalid `x-api-key` header. JSON body with a stable `code` distinguishing `missing_api_key` (no header sent) from `invalid_api_key` (header sent, key not accepted); any other 401 source carries the generic `unauthorized` with its detail as `reason`. Plus `hint`. `plan` is always null on 401 - an unauthenticated request has no plan; quota exhaustion is 429, not 401.
- `422` — Validation Error
- `429` — Daily rate limit exceeded. Check `X-RateLimit-Reset` for the next window.
- `503` — Upstream source is temporarily unavailable. Retry after a short delay.

---

[API](https://skmtc.net/sugra/apis/sugra-api.md) · [All operations](https://skmtc.net/sugra/apis/sugra-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sugra/sugra-api/revisions/4c4530760ba1/schema)
