API Positions
Les positions représentent la détention agrégée de parts d'un opérateur pour un résultat spécifique dans un marché. Les positions sont mises à jour automatiquement lors de l'exécution des transactions.
Authentification : En-tête X-Api-Key requis.
Obtenir les positions
Récupère toutes les positions de votre compte opérateur.
GET /api/v1/positions
Paramètres de requête :
| Paramètre | Type | Description |
|---|---|---|
marketId | string | Filtrer les positions par marché |
Exemple :
curl "https://polymarket.sandbox.playbatman.com/api/v1/positions?marketId=market-uuid" \
-H "X-Api-Key: your-api-key"
Réponse :
{
"success": true,
"data": [
{
"id": "position-uuid",
"marketId": "market-uuid",
"outcomeId": "outcome-uuid-1",
"operatorId": "operator-uuid",
"shares": "150",
"avgPrice": "0.62",
"totalCost": "93",
"realizedPnl": "0",
"createdAt": "2026-02-18T22:00:00.000Z",
"updatedAt": "2026-02-18T22:30:00.000Z"
},
{
"id": "position-uuid-2",
"marketId": "market-uuid",
"outcomeId": "outcome-uuid-2",
"operatorId": "operator-uuid",
"shares": "50",
"avgPrice": "0.38",
"totalCost": "19",
"realizedPnl": "5.20",
"createdAt": "2026-02-18T22:05:00.000Z",
"updatedAt": "2026-02-18T22:35:00.000Z"
}
]
}
Champs de position
| Champ | Type | Description |
|---|---|---|
id | string | UUID de la position |
marketId | string | Marché auquel appartient cette position |
outcomeId | string | Résultat auquel correspond cette position |
operatorId | string | Opérateur propriétaire |
shares | string (decimal) | Solde de parts actuel |
avgPrice | string (decimal) | Prix d'acquisition moyen pondéré par le volume |
totalCost | string (decimal) | Base de coût totale (shares * avgPrice) |
realizedPnl | string (decimal) | Profit/perte issu des transactions clôturées |
createdAt | string (ISO 8601) | Date de création initiale de la position |
updatedAt | string (ISO 8601) | Heure de la dernière mise à jour |
Fonctionnement des positions
- Une position est créée la première fois qu'un ordre d'un opérateur est apparié pour un résultat de marché donné
- Les positions sont délimitées par
(marketId, outcomeId, operatorId)— une position par opérateur par résultat - Les transactions BUY augmentent les
shareset mettent à jouravgPrice - Les transactions SELL diminuent les
shareset mettent à jourrealizedPnl - Lorsque les parts atteignent 0, la position reste dans la base de données avec
shares: "0"pour le suivi du PnL - Les ordres SELL sont validés par rapport à la position — vous ne pouvez pas vendre plus de parts que l'opérateur n'en détient
Positions au niveau opérateur
Les positions sont suivies au niveau de l'opérateur, et non au niveau du joueur. Si vous avez besoin d'un suivi des positions par joueur, maintenez ce mappage dans votre backend en utilisant le playerId provenant des données d'ordre.