Skip to main content
GET
/
positions
/
{pool_address}
/
pnl
Get position PnL data (open and closed positions with on-the-fly calculation)
curl --request GET \
  --url https://dlmm.datapi.meteora.ag/positions/{pool_address}/pnl
{
  "hasNext": true,
  "page": 1,
  "pageSize": 1,
  "positions": [
    {
      "allTimeDeposits": {
        "tokenX": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "tokenY": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "total": {
          "usd": "<string>",
          "sol": "<string>"
        }
      },
      "allTimeFees": {
        "tokenX": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "tokenY": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "total": {
          "usd": "<string>",
          "sol": "<string>"
        }
      },
      "allTimeWithdrawals": {
        "tokenX": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "tokenY": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "total": {
          "usd": "<string>",
          "sol": "<string>"
        }
      },
      "feePerTvl24h": "<string>",
      "isClosed": true,
      "lowerBinId": 123,
      "maxPrice": "<string>",
      "minPrice": "<string>",
      "pnlPctChange": "<string>",
      "pnlUsd": "<string>",
      "positionAddress": "<string>",
      "upperBinId": 123,
      "closedAt": 123,
      "createdAt": 123,
      "isOutOfRange": true,
      "pnlSol": 123,
      "pnlSolPctChange": 123,
      "poolActiveBinId": 123,
      "poolActivePrice": "<string>",
      "unrealizedPnl": {
        "balanceTokenX": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "balanceTokenY": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "balances": 123,
        "unclaimedFeeTokenX": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "unclaimedFeeTokenY": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "unclaimedRewardTokenX": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "unclaimedRewardTokenY": {
          "amount": "<string>",
          "usd": "<string>",
          "amountSol": "<string>"
        },
        "balancesSol": "<string>"
      }
    }
  ],
  "rewardTokenXPrice": "<string>",
  "rewardTokenYPrice": "<string>",
  "tokenXPrice": "<string>",
  "tokenYPrice": "<string>",
  "totalCount": 1,
  "rewardTokenX": "<string>",
  "rewardTokenY": "<string>",
  "solPrice": "<string>",
  "tokenX": "<string>",
  "tokenY": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.meteora.ag/llms.txt

Use this file to discover all available pages before exploring further.

Path Parameters

pool_address
string
required

Query Parameters

user
string
required

The user's wallet address

status
enum<string>

Filter positions by status: "open", "closed", or "all" (default: "all")

Available options:
open,
closed,
all
page
integer<int32>

Page number for pagination (minimum: 1, default: 1)

Required range: x >= 0
page_size
integer<int32>

Page size for pagination (minimum: 1, maximum: 100, default: 20)

Required range: x >= 0

Response

200 - application/json
hasNext
boolean
required
page
integer<int32>
required
Required range: x >= 0
pageSize
integer<int32>
required
Required range: x >= 0
positions
object[]
required
rewardTokenXPrice
string
required
rewardTokenYPrice
string
required
tokenXPrice
string
required
tokenYPrice
string
required
totalCount
integer<int64>
required
Required range: x >= 0
rewardTokenX
string | null
rewardTokenY
string | null
solPrice
string | null
tokenX
string | null
tokenY
string | null