Skip to main content
POST
Claim a settled position without paying gas

Body

application/json
marketId
string
required

Market identifier of the position to redeem — the marketId field from the Position payload (GET /api/me/positions).

Example:

"PM-WC26-R16-USA-WC26-1910V2"

outcomeIndex
integer
required

Outcome index of the held position (0 = YES, 1 = NO). For binary markets this scopes the CTF indexSets bitmask to the single side the user holds; for neg-risk it only disambiguates which Position row to read (the adapter burns both sides in one call regardless).

Required range: 0 <= x <= 255
Example:

0

auth
object

Owner-signed EIP-712 RedeemAuthorization bundle. REQUIRED only for API-key (partner) callers — it binds the redeem to the wallet owner so a spoofable X-User-Wallet header cannot force a third-party redeem. Privy-JWT (retail) callers omit it. Signed struct: RedeemAuthorization{owner, marketId, outcomeIndex, deadline} under domain {name:'PredictStreetRedeem', version:'1', chainId}.

Response

200 - application/json

Job accepted (idempotent on payload hash — an identical in-flight redeem returns the existing job).

jobId
string
required

Submitter job id (decimal string). Polling key for the status endpoint.

Example:

"4210"

status
string
required

Live submitter-job status: pending | building | submitted | confirmed | failed_permanent | expired.

Example:

"pending"