Resolution-integrity dossier for one Polymarket market: UMA exposure, proposer and dispute
Resolution-integrity dossier for one Polymarket market: UMA exposure, proposer and disputer records, post-open context, comparables. Never a forecast. BEFORE YOU PAY: free substitute https://dash.polym.uk/calibration.json and https://dash.polym.uk/uma-flip-rate.json and gamma-api.polymarket.com. THIS ADDS: Proposer/disputer records from DisputePrice on chain, denominator named; context appended AFTER the market opened, window stated; comparables. No probability: observations are not independent.
50000 (raw units)
price
1
calls / 30d
1
unique payers
2026-09-07
updated
Provider
api.polym.uk · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x7b13107779CfDA1bEba3289d0Fbe27310436f3E3",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "50000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"method": "GET",
"pathParams": {
"conditionId": "0xa3b36b2d6104d34af4e6c6215fc818e43352e78a748fbfb0b85e3a35f71dec9a"
},
"queryParams": {},
"type": "http"
},
"output": {
"example": {
"asOf": "2026-09-05T23:59:36.239Z",
"caveats": [
"SHOWCASE, NOT THE PAID RESPONSE: what you see is the resolution-integrity dossier for one market of the covered set, and the route answers for any covered conditionId you pass. missing is cut to 1 of the 2 rows this response carried. oracleExposure, ruleIntegrity and flowAuthenticity are the aggregate over the whole response, so they are null here and populated in a paid response. Nothing is masked or invented: every value is a dated measurement, kept so you can read the shape, the units and the field semantics. The schema published beside it is complete; a paid call returns the complete set.",
"This is a resolution-integrity dossier, not a forecast. Every figure is an on-chain fact, a count with its denominator stated, or a set of comparable markets from our archive. No per-market probability is fitted, and none is sold.",
"A dispute at UMA is not the same event as a reversal: the final answer often confirms the original proposal rather than overturning it. The share that actually reversed is published, free and current, in dash.polym.uk/uma-flip-rate.json — read it there rather than from a sentence here, because a figure written into fixed prose is a figure that stops being true.",
"Coverage is partial and declared. We build dossiers for the decomposed market set; a market outside it returns 422 and is not charged.",
"A market absent from this artifact is not a market with no risk: it is a market outside the decomposed set, and the API answers 422 for it without charging.",
"Every rate carries the sample that produced it and the confidence gate that let it through. Where the gate refused, the counts stay and the rate is null — null means not measured, never zero.",
"The theme and storyline labels are OUR reading of the market title. They are not the tags the venue published, and they are not read from the resolution rules."
],
"comparables": {
"applicability": "unknown-scope",
"baseRate": {
"ci95": {
"hi": 0.09860304145346961,
"lo": 0.06431481839069893
},
"confidence": "measured",
"disputed": 77,
"n": 965,
"rate": 0.07979274611398963
},
"matched": [
{
"conditionId": "0xc1556ecbe613e403dfb9e38bf1b25a8aee2aa1687f2b343bc896dd2c9763ed74",
"disputed": false,
"outcomeYes": true,
"question": "Israel x Iran ceasefire continues through August 31?",
"scheduledEndTs": 1788475740,
"story": "august ceasefire continues iran israel through",
"theme": "geopolitical-conflict",
"volumeUsd": 3333311
}
],
"sampleScope": {
"binaryOnly": true,
"markets": 965,
"volumeMedianUsd": 5862236,
"volumeMinUsd": 2588294
},
"scopeNote": "We could not verify whether this market falls inside the archive being compared against: its lifetime volume was not available to this run. The archive covers markets from 2,588,294 USD of lifetime volume upward.",
"storyConcentration": {
"distinctStories": 59,
"largestStoryMarkets": 14,
"largestStoryShare": 0.10606060606060606,
"note": "These 132 markets are NOT 132 independent events: they collapse into 59 storylines, the largest accounting for 10.6% of them. The same question is asked repeatedly with a rolling deadline, so a rate computed as if each were independent carries a confidence interval narrower than the evidence supports. Read it as a description of this archive, not a probability for your market."
},
"summary": {
"ci95": {
"hi": 0.3939639234802528,
"lo": 0.23796031769476275
},
"confidence": "measured",
"disputed": 41,
"n": 132,
"rate": 0.3106060606060606
},
"theme": "geopolitical-conflict"
},
"conditionId": "0xcfbc2e5fbabb9e8a03bf234367244d4c97eaaf3ac33e2ba001541ee3e0e62416",
"coverage": {
"level": "partial",
"missing": [
"priceContext"
]
},
"flowAuthenticity": null,
"found": true,
"oracleExposure": null,
"priceContext": {
"bestAsk": null,
"note": "This is not a current price. bestAsk is the best ask at the instant the book was read; vwap is a historical volume-weighted average. Neither is a live quote, and no artifact we publish carries one.",
"vwap": null
},
"question": "Israel closes its airspace by September 30?",
"ruleIntegrity": null,
"source": "Composed once per pipeline run from: the decomposed market set, our labelled archive of resolved markets, the UMA oracle reputation ledger read from Polygon, and adapter BulletinBoard context updates. Nothing here is fetched at request time."
},
"type": "json"
}
},
"routeTemplate": "/market-intelligence/:conditionId",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"pathParams": {
"additionalProperties": false,
"properties": {
"conditionId": {
"description": "A market is covered only while it is in the observed window, so any single example ages. Take a covered markets[].conditionId from the free snapshot at https://dash.polym.uk/markets.json, or call GET /coverage (free) for how many markets are decomposed right now. A conditionId outside the covered set returns 422 and is not billed.",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"conditionId"
],
"type": "object"
},
"queryParams": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"asOf": {
"format": "date-time",
"type": "string"
},
"caveats": {
"items": {
"type": "string"
},
"type": "array"
},
"comparables": {
"required": [
"applicability",
"scopeNote",
"theme",
"matched",
"baseRate",
"storyConcentration",
"sampleScope"
],
"type": "object"
},
"conditionId": {
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
},
"coverage": {
"properties": {
"level": {
"enum": [
"full",
"partial"
],
"type": "string"
},
"missing": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"level",
"missing"
],
"type": "object"
},
"flowAuthenticity": {
"type": [
"object",
"null"
]
},
"found": {
"const": true
},
"oracleExposure": {
"type": [
"object",
"null"
]
},
"priceContext": {
"required": [
"note"
],
"type": "object"
},
"question": {
"type": "string"
},
"ruleIntegrity": {
"type": [
"object",
"null"
]
},
"source": {
"type": "string"
}
},
"required": [
"asOf",
"found",
"source",
"conditionId",
"question",
"coverage",
"oracleExposure",
"ruleIntegrity",
"comparables",
"priceContext",
"caveats"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"asOf": {
"format": "date-time",
"type": "string"
},
"caveats": {
"items": {
"type": "string"
},
"type": "array"
},
"conditionId": {
"type": "string"
},
"coverage": {
"type": "object"
},
"found": {
"const": false
},
"note": {
"type": "string"
}
},
"required": [
"asOf",
"conditionId",
"found",
"note",
"coverage",
"caveats"
],
"type": "object"
}
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://api.polym.uk/market-intelligence/:conditionId" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://api.polym.uk/market-intelligence/:conditionId");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://api.polym.uk/market-intelligence/:conditionId")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/1364.json, and this resource appears in /discovery/resources and /discovery/search.