---
title: "Open positions in a pool"
method: GET
path: "/lp/pools/{pool}/positions"
tags: ["Liquidity"]
---

# Open positions in a pool

`GET /lp/pools/{pool}/positions`

## Request

- Base URL: `https://api.getchord.xyz/v1`
- URL: `https://api.getchord.xyz/v1/lp/pools/{pool}/positions`
- Auth: none declared

Managed positions (V3 NPM / V4 PositionManager NFTs) open in the pool, largest first, valued live.

## Path parameters

- `pool` string, required: A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id.

## Query parameters

- `chain` 5042 | 4663 | 143, required
- `limit` integer

## Response `200`

- object
  - `chain` integer
  - `pool` string: A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id.
  - `positions` LpPosition[]
    - `manager` string: EVM address, hex, case-insensitive.
    - `tokenId` string
    - `pool` string, nullable: A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id.
    - `dex` string, nullable
    - `kind` 'v3' | 'v4'
    - `owner` string, nullable: EVM address, hex, case-insensitive.
    - `token` string, nullable: EVM address, hex, case-insensitive.
    - `anchor` string, nullable: EVM address, hex, case-insensitive.
    - `tickLower` integer, nullable
    - `tickUpper` integer, nullable
    - `symbol` string, nullable
    - `anchorSymbol` string, nullable
    - `logo` string, nullable
    - `inUsd` number: Dollars added.
    - `outUsd` number: Dollars removed.
    - `feesUsd` number: Fees collected.
    - `adds` integer
    - `removes` integer
    - `collects` integer
    - `openedTs` integer, nullable: Unix time, seconds, UTC.
    - `lastTs` integer: Unix time, seconds, UTC.
    - `closedTs` integer, nullable: Unix time, seconds, UTC.
    - `burned` boolean
    - `status` 'open' | 'closed'
    - `valueUsd` number, nullable: Live value of the liquidity (open positions).
    - `uncollectedUsd` number, nullable: Uncollected fees (V3).
    - `inRange` boolean, nullable
    - `pnlUsd` number, nullable: Liquidity leg only.
    - `pnlPct` number, nullable
    - `ageHours` number, nullable
    - `edgePct` number, nullable: Distance from the price to the nearest range edge, percent.
    - `jit` boolean: Opened and closed within seconds — a swap trick, shown but not scored.
    - `unreconciled` boolean: Dollars out exceed dollars in by far — the tape missed an add; shown, never scored.
  - `updatedAt` integer: Unix time, milliseconds — when the server built this answer.

## Other responses

- `400`: Invalid parameters — `error` names the check that failed (`INVALID_PARAMS`, `BAD_ADDRESS`, `BAD_LIMIT`, `BAD_HOURS`, …).

---

[API](https://skmtc.dev/getchord/apis/chord-api.md) · [All operations](https://skmtc.dev/getchord/apis/chord-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getchord/apis/chord-api/revisions/d3bc4640fea0?raw)
