Partner Public API
Cournot provides partners with public endpoints to retrieve market verdicts and file disputes. The system produces final settlement records including verdicts, confidence assessments, and blockchain proofs.
Base URL
Response Envelope
All responses return HTTP 200. Branch on the code field, not HTTP status:
// Success
{ "code": 0, "msg": "Success", "data": { /* payload */ } }
// Error
{ "code": 4100, "msg": "slug is required", "detail": "slug is required" }Field
Type
Description
int
0 = success; non-zero = error
string
Human-readable status
object
Present on success
string
Present on error
GET /cournot/markets/public
Retrieve a market's public settlement record. No authentication required.
Query Parameters:
Parameter
Type
Required
Description
slug
string
Yes
Market slug (no leading/trailing slashes)
source
string
Yes
Partner-specific identifier issued by Cournot
Example Request:
Example Response:
Response Fields (data.markets[]):
Field
Type
Description
id
int64
Market identifier
source
string
Partner source identifier
slug
string
Market slug
status
string
monitoring / resolved / disputed / closed
verdict
string
Final verdict text
resolved_at
string
RFC 3339 UTC timestamp
confidence
string
VERY_HIGH / HIGH / MEDIUM / LOW / VERY_LOW
reasoning
string
Human-readable explanation
proofs
array
On-chain proof records
disputes
array or null
Dispute records; null if none
Proof Item:
Field
Type
Description
chain
string
base or bsc
tx_hash
string
Transaction hash
Dispute Item:
Field
Type
Description
id
int64
Dispute identifier
status
string
open or closed
submitter_selection
string
Claimed correct outcome
reason_text
string
Justification
submitted_at
string
RFC 3339 UTC timestamp
decision
object or null
Present only when closed
Decision Object:
Field
Type
Description
type
string
keep or override
partner_final_verdict
string
Final verdict after decision
reason_text
string
Decision justification
decided_at
string
RFC 3339 UTC timestamp
Notes:
When no disputes exist,
disputesisnull(not an empty array).When no market matches,
data.marketsreturns an empty array.
POST /cournot/markets/dispute/submit
File a dispute on behalf of an end user. Requires API key authentication.
Headers:
Header
Value
Content-Type
application/json
x-api-key
Partner API key
Request Body:
Field
Type
Required
Description
market_id
int64
Yes
Market ID from get_public_market
submitter_id
string
Yes
End user's unique identifier on partner platform
submitter_name
string
Yes
Submitter's display name
submitter_selection
string
Yes
Outcome the submitter claims is correct
reason_text
string
Yes
Dispute justification
submitted_at
string
Yes
RFC 3339 UTC timestamp
Example Request:
Example Response:
Business Rules:
The partner's
source(derived from API key) must match the market's source. Cross-partner disputes are forbidden.Only markets with
status = resolvedcan be disputed.Each market accepts a maximum of one dispute.
Integration Workflows
Standard Resolution Flow:
Poll
GET /cournot/markets/publicfor your markets.When a market reaches
status: resolved, extract theverdict,confidence, andproofs.Use this record to settle the corresponding market on your platform.
Dispute Handling Flow:
End user contests a verdict on your platform.
Submit dispute via
POST /cournot/markets/dispute/submit.Market transitions from
resolved→disputed.Cournot conducts internal review.
Market becomes
closedwith adecisionobject (type: keeportype: override).Poll
GET /cournot/markets/publicto retrieve the final decision.
Market Lifecycle:

Traditional oracles made trusted data available on-chain. Cournot makes trusted data programmable by meaning, extends it into intelligence, and ultimately enables action.

Prediction markets prove the architecture. RWA pricing proves semantic aggregation. Trading intelligence proves persistent monitoring. The agent economy is where it all converges.
Data → Semantic Data → Intelligence → Action.
Cournot is building Oracle 4.0.
Last updated

