Docs
Launch App

Pangolin Overview

Introduction to Pangolin
Audits
Tokens & Governance
Official Links & Communities
Become a Partner
Support
Roadmap
Privacy Policy & Legal Notices

Guides

Swapping Tokens
Providing Liquidity
Managing Liquidity Positions
Withdrawing Liquidity
Earning Rewards
Understanding SAR

Developers

Contracts & Integration Reference
APIs
Bug Bounty
Token Listing
Create A Multisig
Honeycomb↗

PangoPerps

API fundamentals
Public Info API
Market data
Account data
Platform data
User API
Trading API
PangoPerpsPublic Info API

Platform data

#Platform data

#Platform positions

Returns a platform-wide snapshot of open positions, useful for aggregate exposure and liquidation-risk visualizations. This query scans open positions and has weight 20; use it sparingly.

json
{
  "type": "platformPositions",
  "symbol": "PERP_BTC_USDC",
  "broker_id": "pangoperps",
  "min_notional": "10000",
  "limit": 500
}
Field Type Required Default / limits Description
symbol string No — Optional market filter.
broker_id string No — Optional broker filter.
min_notional decimal No 0 Minimum position notional to include.
limit int No 500; 1–5000 Maximum rows.
cursor string No — Opaque pagination cursor.

data contains total_long_notional, total_short_notional, total_positions, rows[], and next_cursor. The aggregate totals and count apply to the complete filtered snapshot, not only the current page. Position rows include address, account_id, broker_id, symbol, side, position_qty, notional, average_open_price, mark_price, est_liq_price, unrealized_pnl, unsettled_pnl, leverage, margin_mode, and opened_at. est_liq_price, unrealized_pnl, unsettled_pnl, leverage, and margin_mode can be null if position calculation fails. margin_mode is otherwise CROSS or ISOLATED; opened_at is a millisecond epoch. Results are cached for 5 seconds and sorted by position ID descending. For a liquidation heatmap, group est_liq_price into price buckets in your application.

#Top addresses

Returns a leaderboard of addresses ranked by notional, volume, PnL, or trade count. Each row includes statistics over multiple time windows. Weight: 10.

json
{
  "type": "topAddresses",
  "symbol": "PERP_BTC_USDC",
  "sort_by": "pnl_7d",
  "limit": 50
}
Field Type Required Default / limits Description
symbol string No Omitted or empty: all markets Optional market filter.
sort_by string No notional One of notional, volume_24h, volume_7d, volume_30d, pnl_24h, pnl_7d, pnl_30d, or trade_count_24h.
min_notional decimal No 0 Minimum total notional to include.
limit int No 50; 1–200 Maximum rows.
cursor string No — Opaque cursor.

Each row includes address, broker_id, total_notional, pnl_24h, pnl_7d, pnl_30d, volume_24h, volume_7d, volume_30d, trade_count_24h, win_rate_24h, win_rate_7d, win_rate_30d, avg_trade_size, and position_count. Monetary values are decimal strings; trade counts are integers and win rates are numeric values. The 24-hour figures use a rolling window. The 7-day and 30-day figures use UTC-day-aligned windows, combining today's live values with the preceding days. avg_trade_size is 24-hour volume divided by 24-hour trade count, or null when there are no trades. Historical win rates can be null if that data source is unavailable.

data.last_updated_time indicates when the cached snapshot was assembled. Results are cached for 30 minutes by symbol, sort field, and minimum notional; use last_updated_time to assess age. Historical-data outages do not prevent the response from being returned, but 7-day and 30-day win rates may be null. Use data.next_cursor to continue through results.


PreviousAccount dataNext User API

On this page

  • Platform data
  • Platform positions
  • Top addresses

Try it on Pangolin

Everything in these docs is live in the app.

SwapLiquidityStakePerps

Need help?

DiscordTelegramX