Regarding the future of VPX — Read our announcement →
vancouverpx
← Back to Markets

API Documentation

REST API reference for the Vancouver Prediction Exchange

GET

Get Positions

Retrieve all current positions (open holdings) for the authenticated user. Only returns holdings with a quantity greater than zero, ordered by most recently updated.

Endpoint

GET /api/v1/positions

Query Parameters

This endpoint takes no query parameters.

Response

Returns an object containing an array of position objects (status 200).

FieldTypeDescription
idUUIDHolding ID
marketIdUUIDThe market this position is in
marketQuestionstringThe market question
marketStatusstringMarket status (OPEN, CLOSED, RESOLVED, CANCELED)
outcomestringYES or NO
quantitynumberNumber of shares held
lockedQuantitynumberShares locked in open sell orders
createdAtISO 8601When the holding was created
updatedAtISO 8601When the holding was last updated
{
  "positions": [
    {
      "id": "clxyz...",
      "marketId": "clxyz...",
      "marketQuestion": "Will the Blue Jays win the World Series?",
      "marketStatus": "OPEN",
      "outcome": "YES",
      "quantity": 50,
      "lockedQuantity": 10,
      "createdAt": "2026-03-10T12:00:00.000Z",
      "updatedAt": "2026-03-17T14:30:00.000Z"
    }
  ]
}

Example

import requests

API_KEY = "your_api_key"
BASE_URL = "https://www.vancouverpx.ca/api/v1"

def get_positions() -> dict:
    response = requests.get(
        f"{BASE_URL}/positions",
        headers={"Authorization": f"Bearer {API_KEY}"},
    )
    response.raise_for_status()
    return response.json()

data = get_positions()
for pos in data["positions"]:
    print(f"{pos['outcome']} {pos['quantity']}x — {pos['marketQuestion']}")
Get Positions | VPX API Docs