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

# ApiResponseMarketPositionArray Schema

> Open positions in a market or across markets. Includes generated fields, route metadata, response shapes, and implementation-safe 0xArchive contract details.

Source OpenAPI: 0xArchive API 1.7.0; 218 paths; 210 component schemas.

Open positions in a market or across markets.

## Required Fields

| Field | Type | Description |
| - | - | - |
| `data` | array\<object> | Defined by the generated JSON Schema block. |
| `meta` | object | Response metadata of the account positions routes. |
| `success` | boolean | Defined by the generated JSON Schema block. |

## JSON Schema

```json theme={"theme":"github-dark"}
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "ApiResponseMarketPositionArray",
  "description": "Open positions in a market or across markets.",
  "type": "object",
  "required": [
    "data",
    "meta",
    "success"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "description": "One open position in a market-wide listing (`/positions/{symbol}` and bulk `/positions`). A lean record: use the wallet or account routes for the full `Position`.",
        "type": "object",
        "required": [
          "coin",
          "entry_price",
          "leverage_type",
          "liquidation_price",
          "mark_price",
          "position_value",
          "quality",
          "side",
          "size",
          "symbol",
          "unrealized_pnl"
        ],
        "properties": {
          "account_index": {
            "description": "Lighter only: account index as a string.",
            "type": "string",
            "example": "513030"
          },
          "account_kind": {
            "description": "Lighter only: `user`, `insurance`, `settlement`, or `system`.",
            "type": "string",
            "example": "user"
          },
          "coin": {
            "description": "Alias of `symbol`.",
            "type": "string",
            "example": "BTC"
          },
          "dex": {
            "description": "HIP-3 only: dex of the market.",
            "type": "string",
            "example": "xyz"
          },
          "entry_price": {
            "description": "Average entry price.",
            "type": "string",
            "nullable": true,
            "example": "64210.5"
          },
          "leverage_type": {
            "description": "`cross`, `isolated`, or `unknown` (Lighter: the margin mode).",
            "type": "string",
            "example": "cross"
          },
          "liquidation_price": {
            "description": "Reported liquidation price. Hyperliquid only; null on Lighter.",
            "type": "string",
            "nullable": true,
            "example": "51000"
          },
          "mark_price": {
            "description": "Mark price.",
            "type": "string",
            "nullable": true,
            "example": "65020.1"
          },
          "position_value": {
            "description": "Absolute position value in USD. Listings sort by this value, largest first.",
            "type": "string",
            "nullable": true,
            "example": "812751.25"
          },
          "quality": {
            "description": "Quality of this row. `complete`, `partial` (a mark or entry is missing, so value and PnL fields are null), or `degraded`. Lighter rows can also read `preliminary` (built from real-time trades not yet reconciled), `unreconciled` (a market with no reconciled trades), or `incomplete`. No row reads `complete` when its own data is not complete, or when its snapshot has a problem that could not be pinned to specific rows. A small number of Hyperliquid positions around three short windows in June and July 2025, where Hyperliquid's published fill data has gaps, read `partial`.",
            "type": "string",
            "example": "complete"
          },
          "side": {
            "type": "string",
            "enum": [
              "long",
              "short"
            ],
            "example": "long"
          },
          "size": {
            "description": "Signed position size in base units.",
            "type": "string",
            "example": "12.5"
          },
          "snapshot_ts": {
            "description": "Hour the row describes. Present on bulk `/positions` rows.",
            "type": "string",
            "format": "date-time"
          },
          "symbol": {
            "description": "Market symbol (HIP-3: `dex:COIN`).",
            "type": "string",
            "example": "BTC"
          },
          "unrealized_pnl": {
            "description": "Unrealized PnL in USD.",
            "type": "string",
            "nullable": true,
            "example": "10120.2"
          },
          "user_address": {
            "description": "Hyperliquid and HIP-3 only: wallet address holding the position (lowercase).",
            "type": "string",
            "example": "0x31ca8395cf837de08b24da3f660e77761dfb974b"
          }
        }
      }
    },
    "meta": {
      "description": "Response metadata of the account positions routes. Every instant is RFC 3339 UTC with milliseconds and comes from the data, never the request time.",
      "type": "object",
      "required": [
        "count",
        "request_id"
      ],
      "properties": {
        "as_of": {
          "description": "Instant the returned state describes: the snapshot tick or hour, or the requested as-of time.",
          "type": "string",
          "format": "date-time"
        },
        "built_through": {
          "description": "Every event before this instant is built into the change log and as-of state. Reads are clamped to it.",
          "type": "string",
          "format": "date-time"
        },
        "clamped_to": {
          "description": "Boundary the read was clamped to (`built_through`). Present only when clamped.",
          "type": "string",
          "format": "date-time"
        },
        "count": {
          "description": "Number of records returned.",
          "type": "integer"
        },
        "coverage_from": {
          "description": "Coverage start, present with `notice` when the request falls before coverage or the address has no recorded activity.",
          "type": "string",
          "format": "date-time"
        },
        "finalized_through": {
          "description": "Every event before this instant is final and will not be re-derived (Lighter: the trade finalization watermark). Never later than `built_through`.",
          "type": "string",
          "format": "date-time"
        },
        "next_cursor": {
          "description": "Signed cursor for the next page, bound to the request. Pass it back with the same parameters. A market cursor pins its snapshot; if that snapshot is replaced or expires the next page answers 409 `snapshot_advanced`.",
          "type": "string",
          "nullable": true
        },
        "notice": {
          "description": "Human-readable advisory: before coverage, no recorded activity, or a stale snapshot.",
          "type": "string"
        },
        "quality": {
          "description": "Completeness of the snapshot the response was read from: `complete`, `partial`, or `degraded`. Rows carry their own `quality`. On Lighter and Robinhood Chain, snapshots from the latest day, before the venue's daily trade reconcile, can read `degraded` while their rows read `preliminary`; they read `complete` once the reconcile has run.",
          "type": "string"
        },
        "request_id": {
          "description": "Unique request ID for support.",
          "type": "string",
          "format": "uuid"
        },
        "requested_end": {
          "description": "The `end` or `timestamp` the caller asked for, echoed when the read was clamped.",
          "type": "string",
          "format": "date-time"
        },
        "snapshot_ts": {
          "description": "Committed snapshot the response was read from. Market routes echo the resolved `hour` here.",
          "type": "string",
          "format": "date-time"
        },
        "source": {
          "description": "How the rows were produced: `snapshot` (live or hourly snapshot), `reconstructed` (as-of state between snapshots), or `changes` (change log).",
          "type": "string",
          "enum": [
            "snapshot",
            "reconstructed",
            "changes"
          ]
        },
        "stale": {
          "description": "True on current reads when the latest snapshot is older than 12 minutes; paired with `notice`.",
          "type": "boolean"
        },
        "totals": {
          "description": "Market listings, first page only: aggregates over the whole filtered result set, not just this page.",
          "allOf": [
            {
              "description": "Long and short aggregates of every open position in one market at one snapshot. Averages cover only positions with a known entry (`*_positions_with_entry`). Shares are decimal ratios of the side or total value held by the ten largest positions.",
              "type": "object",
              "required": [
                "coin",
                "long_avg_entry_price",
                "long_count",
                "long_positions_with_entry",
                "long_size",
                "long_top10_value_share",
                "long_value",
                "quality",
                "short_avg_entry_price",
                "short_count",
                "short_positions_with_entry",
                "short_size",
                "short_top10_value_share",
                "short_value",
                "snapshot_ts",
                "symbol",
                "top10_value_share"
              ],
              "properties": {
                "coin": {
                  "description": "Alias of `symbol`.",
                  "type": "string",
                  "example": "BTC"
                },
                "dex": {
                  "description": "HIP-3 only.",
                  "type": "string",
                  "example": "xyz"
                },
                "long_avg_entry_price": {
                  "description": "Size-weighted average entry of long positions with a known entry.",
                  "type": "string",
                  "nullable": true,
                  "example": "63120.4"
                },
                "long_count": {
                  "type": "integer",
                  "format": "int64",
                  "example": 18234
                },
                "long_positions_with_entry": {
                  "type": "integer",
                  "format": "int64",
                  "example": 18230
                },
                "long_size": {
                  "description": "Total long size in base units.",
                  "type": "string",
                  "example": "8123.45"
                },
                "long_top10_value_share": {
                  "description": "Share of long value held by the ten largest long positions.",
                  "type": "string",
                  "nullable": true,
                  "example": "0.412345"
                },
                "long_value": {
                  "description": "Total long value in USD. Null when any long position has no mark.",
                  "type": "string",
                  "nullable": true,
                  "example": "528000000.5"
                },
                "quality": {
                  "description": "`complete`, `partial`, or `degraded`, from this market's own rows.",
                  "type": "string",
                  "example": "complete"
                },
                "short_avg_entry_price": {
                  "description": "Size-weighted average entry of short positions with a known entry.",
                  "type": "string",
                  "nullable": true,
                  "example": "66210.9"
                },
                "short_count": {
                  "type": "integer",
                  "format": "int64",
                  "example": 15102
                },
                "short_positions_with_entry": {
                  "type": "integer",
                  "format": "int64",
                  "example": 15100
                },
                "short_size": {
                  "description": "Total short size in base units.",
                  "type": "string",
                  "example": "8120.1"
                },
                "short_top10_value_share": {
                  "description": "Share of short value held by the ten largest short positions.",
                  "type": "string",
                  "nullable": true,
                  "example": "0.385"
                },
                "short_value": {
                  "description": "Total short value in USD. Null when any short position has no mark.",
                  "type": "string",
                  "nullable": true,
                  "example": "527800000.25"
                },
                "snapshot_ts": {
                  "description": "Snapshot the aggregates describe.",
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                },
                "symbol": {
                  "type": "string",
                  "example": "BTC"
                },
                "top10_value_share": {
                  "description": "Share of total value held by the ten largest positions.",
                  "type": "string",
                  "nullable": true,
                  "example": "0.301"
                }
              }
            }
          ]
        }
      }
    },
    "success": {
      "type": "boolean",
      "example": true
    }
  }
}
```

## Referenced By

* [GET /v1/hyperliquid/hip3/positions](/schemas/operations/get-hip3-all-positions)
* [GET /v1/hyperliquid/hip3/positions/{symbol}](/schemas/operations/get-hip3-market-positions)
* [GET /v1/hyperliquid/positions](/schemas/operations/get-hyperliquid-all-positions)
* [GET /v1/hyperliquid/positions/{symbol}](/schemas/operations/get-hyperliquid-market-positions)
* [GET /v1/lighter/positions](/schemas/operations/get-lighter-all-positions)
* [GET /v1/lighter/positions/{symbol}](/schemas/operations/get-lighter-market-positions)
* [GET /v1/rh-lighter/positions](/schemas/operations/get-rh-lighter-all-positions)
* [GET /v1/rh-lighter/positions/{symbol}](/schemas/operations/get-rh-lighter-market-positions)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.