> ## Documentation Index
> Fetch the complete documentation index at: https://docs.limitless.exchange/llms.txt
> Use this file to discover all available pages before exploring further.

# Get User Pack Positions (Public)

Returns a user's pack (parlay) positions by Ethereum address, newest first. Public, no authentication required. The response includes only `ACTIVE`, `WON`, and `LOST` positions; internal lifecycle states never appear here.

## When to use

Use this endpoint to render a packs positions list on a public profile view. Pass any wallet address; you do not need to be that user. For your own positions with private fields (wallet, transaction hashes, vig), use the authenticated positions endpoint instead.

## Response contract

The `200` body is a paginated page: `data`, `limit`, `page`, `totalPages`, and `totalRows`.

* Each position carries its status, stake, multiplier, claim state (`isClaimed`), leg details, and the source pack it was bought from (`null` for custom packs).
* The public payload deliberately excludes wallet addresses, token IDs, transaction hashes, and vig fields.
* The API sorts positions by creation time, newest first.

## Filtering and pagination

* `status` narrows the list to a single status: `ACTIVE`, `WON`, or `LOST`. Any other value returns `400 Bad Request`. Omit it to return all three.
* The API clamps `limit` server-side to the range 1-50. The default is 20.
* `offset` defaults to 0. The API caps it at 10,000; a larger offset returns `400 Bad Request`.
* `totalRows` always reflects the full matching count, while `totalPages` stops at the last browsable page under the offset cap.

## Address handling

The `account` path parameter accepts a checksummed (EIP-55) or lowercase Ethereum address. A malformed address returns `400 Bad Request`. An address with no profile returns `404 Not Found`.

## Caching

Responses carry `Cache-Control: public, max-age=5, s-maxage=15`, so CDN edges may serve a cached copy for up to 15 seconds. Status and claim state can trail the live database by roughly 30 seconds in the worst case. The authenticated owner endpoint is uncached.
