# Holder cohort

> Wallets that held through a window. A holder qualifies when it stayed above a size threshold (min_usd, min_balance or min_pct); with continuous=true it must…

Source: https://docs.crius.sh/reference/holders/holder-cohort/ · Updated 2026-10-28

GET https://api.crius.sh/v1/{chain}/token/{address}/holders/cohort

Wallets that held through a window. A holder qualifies when it stayed above a size threshold (`min_usd`, `min_balance` or `min_pct`); with `continuous=true` it must hold for the whole window, and `reset_on` decides what breaks continuity (`sell` by default). `entered_before=mcap:20000` keeps only wallets that first qualified before that point. Sort by hold time, balance or entry market cap (`sort=hold_time|balance|entry_mcap`).

> Continuity with reset on sell / decrease / below threshold.

## Path parameters

`chain`stringrequired

Chain slug (`robinhood`) or chain id (`4663`).

`address`stringrequired

Contract or wallet address, any case (`0x…`, 20 bytes).

## Query parameters

`from`string Default `trading_open`

Start of the window (`block:`, `ts:`, `mcap:` or a label).

`to`string Default `now`

End of the window (same forms as `from`).

`min_usd`number Default `50`

Only items worth at least this many USD.

`min_balance`number

Minimum balance in token units.

`min_pct`number

Minimum share of supply, in percent.

`continuous`boolean Default `false`

`true`: the holder must stay above the threshold for the whole window.

`reset_on`string Default `sell`

One of `sell`, `any_decrease`, `below_threshold`, `none`.

`min_hold_s`integer

Minimum continuous hold time inside the window, in seconds.

`entered_before`string

Only holders that first qualified before this point (e.g. `mcap:20000`).

`exclude`string

Comma list of holder classes to leave out, such as `infra` (pools, lockers, burn) or `bots`. Comma list of `infra`, `dev`, `snipers`.

`sort`string Default `hold_time`

Sort order. One of `hold_time`, `balance`, `entry_mcap`.

`limit`integer Default `100`

Maximum number of items to return.

## Guides that use this endpoint

[**Get a token's holders at a past block, time or market cap**Get a Robinhood Chain token's holders at any past block, time, market cap or launch stage, valued at that moment's price, with cost basis per holder.](https://docs.crius.sh/guides/get-historical-holders/)[**Find holders who held through a run (holder cohorts)**Find wallets that bought a Robinhood Chain token early and held through the run, with hold time, entry market cap, sells and PnL per wallet. Real example.](https://docs.crius.sh/guides/find-diamond-hand-holders/)

## Errors

Errors come back as `{ "error": { "code", "message" } }` with the matching HTTP status: `400` bad parameter, `401` missing or invalid key, `403` endpoint above your plan, `404` unknown token or address, `429` rate limit or credits used up (with `Retry-After`). See [Errors](https://docs.crius.sh/errors/).

## More holders & traders endpoints

[GET/token/{address}/holdersLive holdersFree · 2 cr](https://docs.crius.sh/reference/holders/live-holders/)[GET/token/{address}/holders/snapshotHolder snapshotFree · 5 cr](https://docs.crius.sh/reference/holders/holder-snapshot/)[GET/token/{address}/holders/historyHolder count historyStarter · 10 cr](https://docs.crius.sh/reference/holders/holder-count-history/)[GET/token/{address}/tradersTop tradersFree · 5 cr](https://docs.crius.sh/reference/holders/top-traders/)

Request Needs a Starter key

 

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/holders/cohort?from=mcap%3A10000&to=now&min_usd=50&continuous=true&reset_on=sell&exclude=infra" \
  -H "x-api-key: $CRIUS_API_KEY"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/holders/cohort?from=mcap%3A10000&to=now&min_usd=50&continuous=true&reset_on=sell&exclude=infra", {
  headers: { "x-api-key": process.env.CRIUS_API_KEY },
});
const { data, meta } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/holders/cohort?from=mcap%3A10000&to=now&min_usd=50&continuous=true&reset_on=sell&exclude=infra",
    headers={"x-api-key": os.environ["CRIUS_API_KEY"]},
)
body = r.json()
print(body["data"])
```

Response 200 · captured Oct 28, 2026

```json
{
  "data": {
    "criteria": {
      "continuous": false,
      "exclude": [],
      "min_balance": null,
      "min_hold_s": null,
      "min_pct": null,
      "min_usd": null,
      "reset_on": "sell"
    },
    "holders": [
      {
        "address": "0xfee5fee50000062bd986e86502c5acdf989067a0",
        "balance_at_from": 5758.56,
        "balance_now": 47534.9,
        "entry_mcap_usd": 51583.8,
        "hold_time_s": 1234652,
        "min_balance_in_window": 5758.56,
        "pnl_usd": null,
        "qualified_since_block": 88461359,
        "qualified_since_ts": 1791990426900,
        "reset_history": [],
        "resets": 0,
        "sells_in_window": 0,
        "tags": [
          "contract"
        ],
        "value_usd_now": 0.183244
      },
      {
        "address": "0xb823bd7738b61547221f54bb3410b94326aae1eb",
        "balance_at_from": 497321,
        "balance_now": 497321,
        "entry_mcap_usd": 51583.8,
        "hold_time_s": 1234652,
        "min_balance_in_window": 497321,
        "pnl_usd": -22.1233,
        "qualified_since_block": 88461359,
        "qualified_since_ts": 1791990426900,
        "reset_history": [],
        "resets": 0,
        "sells_in_window": 0,
        "tags": [],
        "value_usd_now": 1.91714
      },
      {
        "address": "0x38c16e94e79383a5906449fc84477c1a7b19b613",
        "balance_at_from": 8344519,
        "balance_now": 0.00000000214748,
        "entry_mcap_usd": 51583.8,
        "hold_time_s": 1234652,
        "min_balance_in_window": 0.00000000214748,
        "pnl_usd": -298.108,
        "qualified_since_block": 88461359,
        "qualified_since_ts": 1791990426900,
        "reset_history": [],
        "resets": 0,
        "sells_in_window": 0,
        "tags": [],
        "value_usd_now": 0.00000000000000827841
      },
      {
        "address": "0x8e56f6476d1361cdc6e75798c83354e70d033f23",
        "balance_at_from": 57.0322,
        "balance_now": 57.0322,
        "entry_mcap_usd": 51583.8,
        "hold_time_s": 1234652,
        "min_balance_in_window": 57.0322,
        "pnl_usd": -0.00219735,
        "qualified_since_block": 88461359,
        "qualified_since_ts": 1791990426900,
        "reset_history": [],
        "resets": 0,
        "sells_in_window": 0,
        "tags": [
          "smart_account"
        ],
        "value_usd_now": 0.000219856
      },
      {
        "address": "0xfd2a475d7ce02ec077867d72177063b5c2ab01b6",
        "balance_at_from": 429.912,
        "balance_now": 429.912,
        "entry_mcap_usd": 51583.8,
        "hold_time_s": 1234652,
        "min_balance_in_window": 429.912,
        "pnl_usd": -0.396922,
        "qualified_since_block": 88461359,
        "qualified_since_ts": 1791990426900,
        "reset_history": [],
        "resets": 0,
        "sells_in_window": 0,
        "tags": [],
        "value_usd_now": 0.00165728
      }
    ],
    "never_reached_threshold": 0,
    "qualified": 224,
    "reset_out": 942,
    "started_qualified": 229,
    "window": {
      "from": {
        "at": "mcap:50000",
        "block": 88461359,
        "ts": 1791990426900
      },
      "to": {
        "at": "now",
        "block": 100406815,
        "ts": 1793225079000
      }
    }
  },
  "meta": {
    "block": 100406816,
    "block_age_ms": 1088,
    "block_ts": 1793225079000,
    "chain": "robinhood",
    "finalized_block": 100397649,
    "lag_ms": 86,
    "next_cursor": "5",
    "safe_block": 100401329
  }
}
```

[Get a key for this endpoint](https://dashboard.crius.sh/signup?ref=docs-endpoint) [Report an issue](mailto:support@crius.sh?subject=Docs%20issue%3A%20GET%20%2Fv1%2F%7Bchain%7D%2Ftoken%2F%7Baddress%7D%2Fholders%2Fcohort&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Freference%2Fholders%2Fholder-cohort%2F%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)
