Skip to main content
POST
Co-sign a redeem (not available yet)

Authorizations

X-Api-Key
string
header
required

Partner / integrator key — format ps_live_<keyId>_<secret>. Partner keys are issued by PredictStreet; a user can also create keys bound to their own wallet from their account settings in the web app. Never ship to a browser. multi_wallet partners must additionally send X-User-Wallet: 0x<40-hex> on every authenticated request to declare the acting wallet. See the API keys guide for scope taxonomy, partner kinds, rate limits, and rotation procedure.

Headers

idempotency-key
string

Optional. Requests carrying the same key replay the original operation instead of creating a new one. When omitted, the key is derived from the wallet, the operation and the exact request body, so a byte-identical repeat replays the first operation — send your own key to run the same operation twice.

X-User-Wallet
string

Required for multi_wallet partners on every authenticated request; ignored for single_wallet. Declares the acting end-user wallet for this request — drives KYC checks, balances/positions/orders attribution, rate-limit buckets, and audit. Lower-cased server-side. Missing on a multi_wallet key → 401 api_key_user_wallet_required; malformed → 401 api_key_user_wallet_invalid. The on-chain CTFExchange/Vault contracts still verify EIP-712 signer ↔ vault binding, so loosening API-layer attribution is safe by construction.

Pattern: ^0x[a-fA-F0-9]{40}$
Example:

"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb3"

Body

application/json
marketId
string
required

Market identifier — accepts the symbol or the bytes32 conditionId. Server resolves to the canonical conditionId before signing. The underlying chain call (ConditionalTokens.redeemPositions) doesn't take an explicit amount — REDEEM consumes the full position the user holds across every outcome of the market.

Example:

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

Response

Client error — invalid request body or parameter.

Error body returned by every API error (same shape as ErrorEnvelope). Branch on error.code, not on message.

status
integer
required

HTTP status, repeated in the body.

Example:

404

error
object
required