---
title: "Get the user's AUM percentile"
method: GET
path: "/aumPercentile"
tags: ["Account Information"]
---

# Get the user's AUM percentile

`GET /aumPercentile`

Returns where the user's total assets sit within the distribution of a cohort of comparable users, as a coarse bucket plus an integer percentile.

The cohort is scoped to your own book: a user is only ever compared against your other users, never across SnapTrade customers. (Users on personal-use keys are the exception — they are compared against all other personal-use users, since a personal key has a single user and cannot form a distribution of its own.) The distribution is recomputed monthly, and `as_of` reports which month's distribution the placement came from.

`data` is `null` — a 200, not an error — when SnapTrade declines to place the user. That happens when the cohort is too small to publish a distribution, or when the user's own holdings are incomplete or stale (for example they hold a disabled connection). A placement computed from a partial view of a user's assets would understate them, so none is returned.

## Query parameters

- `userId` string, required — SnapTrade User ID. This is chosen by the API partner and can be any string that is a) unique to the user, and b) immutable for the user. It is recommended to NOT use email addresses for this property because they are usually not immutable.
- `userSecret` string, required — SnapTrade User Secret. This is a randomly generated string and should be stored securely. If compromised, please rotate it via the [rotate user secret endpoint](/reference/Authentication/Authentication_resetSnapTradeUserSecret).

## Response `200`

OK

- UserAumPercentileResponse — The user's placement within your book, or null when SnapTrade declines to place them
  - `data` UserAumPercentileObject — A user's AUM placement within a single SnapTrade customer's book
    - `bucket` 'TOP_1_PERCENT' | 'TOP_5_PERCENT' | 'TOP_10_PERCENT' | 'TOP_25_PERCENT' | 'TOP_50_PERCENT' | 'BOTTOM_50_PERCENT' — The band the user falls into. Deliberately coarse: the underlying totals are only as current as each brokerage's last sync, so an exact percentile would imply more precision than the data supports.
    - `percentile` integer — The percent of the cohort the user's assets are strictly above, 0-100. Integer by design: the distribution is stored as 101 interpolated cutoffs, so a fractional percentile would not mean anything. Prefer `bucket` for anything you display prominently. The distribution is recomputed monthly, so a user's percentile can move a few points on its own as other users' holdings refresh, while their bucket stays put. Users tied on the same total all receive the lowest percentile that total spans.
    - `cohort_size` integer — Number of your users the distribution was computed from.
    - `as_of` string, date — The month whose distribution produced this placement.
    - `currency` string — The currency the distribution was computed in.

## Other responses

- `403` — Forbidden
- `500` — Unexpected error

## Changes

- **2026-08-19** `f7ddcf9d8813` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/passiv/apis/snaptrade/changes/aumPercentile/get.md)

---

[API](https://skmtc.dev/passiv/apis/snaptrade.md) · [All operations](https://skmtc.dev/passiv/apis/snaptrade/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/passiv/snaptrade/revisions/f7ddcf9d8813/schema)
