Skip to content

outcomePrices in events.retrieve returns bid/ask spread, not per-outcome mid-prices #5

Description

@jasonwdon

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions