SDK Version
0.1.2
Python Version
3.11.4
Operating System
macOS
Description
The outcomePrices field returned by client.events.retrieve() does not contain per-outcome prices. Instead, it contains a bid/ask pair (best bid and best ask from the order book), making the field name misleading and inconsistent with client.markets.retrieve(), which correctly returns a mid-price per outcome that sums to ~1.
Steps to Reproduce
from polymarket_us import PolymarketUS
client = PolymarketUS(key_id=..., secret_key=...)
event = client.events.retrieve(16521) # Netherlands vs. Japan
markets = event['event']['markets']
market = markets[1] # a spread/total/prop market
print(market['outcomes']) # '["No","Yes"]'
print(market['outcomePrices']) # '["0.2700","0.2800"]' — sums to 0.55, not ~1
# Compare with markets.retrieve for the same market
full = client.markets.retrieve(market['id'])
print(full['market']['outcomePrices']) # e.g. '["0.7250","0.2750"]' — sums to 1
Expected Behavior
outcomePrices returns one price per outcome ([noPrice, yesPrice]) summing to approximately 1, consistent with markets.retrieve.
Actual Behavior
outcomePrices returns two values that appear to be the best bid and ask for a single outcome token (e.g., ["0.2700", "0.2800"]), summing to ~0.55 instead of ~1. The field is misleading as it does not reflect the probability/price of each outcome.
Code Sample
SDK Version
0.1.2
Python Version
3.11.4
Operating System
macOS
Description
The outcomePrices field returned by client.events.retrieve() does not contain per-outcome prices. Instead, it contains a bid/ask pair (best bid and best ask from the order book), making the field name misleading and inconsistent with client.markets.retrieve(), which correctly returns a mid-price per outcome that sums to ~1.
Steps to Reproduce
Expected Behavior
outcomePrices returns one price per outcome ([noPrice, yesPrice]) summing to approximately 1, consistent with markets.retrieve.
Actual Behavior
outcomePrices returns two values that appear to be the best bid and ask for a single outcome token (e.g., ["0.2700", "0.2800"]), summing to ~0.55 instead of ~1. The field is misleading as it does not reflect the probability/price of each outcome.
Code Sample