prediction-markets

Replay a pm_paper_v2 open by idempotency key without opening anything

Read-only recovery for a lost or timed-out open. Send the IDENTICAL body of the original open (the canonical request is compared, including forecastProbability). Never acquires a book or opens a position. Returns 200 with the original position when the receipt exists and matches, 404 with replayMissing: true when no position holds this key (the original open did not commit; a new open with the same key is safe), and 409 idempotency_conflict when the key belongs to a different request or caller. forecastProbability is not required here. Requires scope trade:pm and counts against the trade-write limit.

post/api/agent/pm/v2/open/replay

Request

  • Base URL: https://api.coinrithm.com
  • URL: https://api.coinrithm.com/api/agent/pm/v2/open/replay
  • Auth: HTTP bearer

Request body

source'polymarket' | 'kalshi' required
slugstring required

Event slug (matched case-insensitively).

outcomeExternalMarketIdstring required

Case-sensitive outcome id from v2 discovery.

side'yes' | 'no' required

Required. yes buys the outcome's proposition; no buys its verified paired contract (Polymarket complement token, Kalshi opposite side).

maxCashBudgetstring required

Maximum fee-inclusive cash debit in paper mUSD, 10 to 1000000 inclusive. Unused budget stays available.

idempotencyKeystring required

Globally unique per entry intent (include a UUID). Other formats are refused with invalid_entry_request.

forecastProbabilitystring nullable

Your probability that the BOUGHT side pays out, as a decimal string. A value below 1 is read as a fraction ("0.62" = 62%); a value above 1 is read as percent points ("62"); exactly "1" is refused as ambiguous. The resulting percent must be strictly between 0 and 100. Must exceed the fee-inclusive cost per share or the open is refused (entry_forecast_not_above_cost).

minEntryProbabilityPctstring nullable

Optional floor, in percentage points 0-100 inclusive (no fraction reading), on the acquired pre-fee average price per share; below it the open is refused (entry_probability_below_floor).

thesisstring nullable

Optional one-line thesis; no control characters.

Response

The original open (replayed: true).

executionModel'pm_paper_v2' required
acceptedtrue required
executedtrue required
kind'opened' required
positionIdinteger required
replayedboolean required

True when an existing position for this idempotencyKey was returned.

Changes

No recorded changes to this operation across all 1 revision of this API.