Skip to main content
The Predexon Trading API is being retired. New signups are closed. Trading stops on June 25, 2026 — sell or close any open positions before then. After that, the API is withdrawal-only: redeem resolved positions and withdraw all funds by June 29, 2026. The read-only Data & Signals API is unaffected.
This tab documents the Predexon Trading API — a prime-broker-style layer that lets you place and manage trades across every major prediction market without running wallet, custody, or signing infrastructure yourself. The API is now being wound down (see above); existing accounts should cancel, redeem, and withdraw before the deadlines.
Funding model: Polymarket, Predict.fun, Opinion, and Limitless fund through one Base USDC deposit wallet via POST /transfers. Hyperliquid funds separately via Across. See Funding & Withdrawals.

What you get

Managed wallets

Per-venue wallets provisioned on demand via Turnkey. No private keys to store, no signing flow to build. One account spans every supported venue.

One funding flow

Single USDC deposit wallet on Base. Move funds to any enabled venue with POST /transfers. Bridge from Ethereum, Arbitrum, Polygon, BSC, or Optimism via Quote Transfer.

Per-venue order shapes

Need full control? Place orders directly against a specific venue with native order types, with normalized request and response shapes.

Partner fees

Monetize an integration by attaching a partner fee policy. Set per-venue rates, take a cut of every fill.

Position management

Aggregated positions across venues, redemption of resolved markets, and consolidation back to your deposit wallet — all from one API.

Winding down your account

New account creation is closed, and trading stops on June 25, 2026. The path that matters now: cancel open orders → redeem resolved positions → withdraw. Full walkthrough in Funding & Withdrawals →
Python
import requests

HEADERS = {"x-api-key": "YOUR_API_KEY", "Content-Type": "application/json"}
BASE = "https://trade.predexon.com"
account_id = "YOUR_ACCOUNT_ID"

# 1. Cancel any open orders on a venue
requests.delete(
    f"{BASE}/api/accounts/{account_id}/orders?venue=polymarket",
    headers=HEADERS,
)

# 2. Redeem resolved positions — see Redeem Position
#    POST /api/accounts/{account_id}/redeem

# 3. Drain the venue back to the deposit wallet, then withdraw to your own address
requests.post(
    f"{BASE}/api/accounts/{account_id}/transfers",
    headers=HEADERS,
    json={"from": "polymarket", "to": "deposit", "amount": "10"},
)
requests.post(
    f"{BASE}/api/accounts/{account_id}/transfers",
    headers=HEADERS,
    json={
        "from": "deposit",
        "to": "external",
        "amount": "10",
        "destination": {"address": "0xYourAddress", "chain": "base", "token": "USDC"},
    },
).json()

What’s in this tab

Market Discovery

Canonical markets, venue listings, outcome resolution, and matched pairs — the unified cross-venue discovery layer.

Accounts & Custody

Create accounts, enable venues, query balances and positions, redeem resolved markets, withdraw funds.

Funding & Transfers

Deposit info, internal transfers (deposit ↔ venue), cross-chain bridging via Quote Transfer.

Venue-Specific Orders

Native per-venue orders when you want explicit control. Normalized request and response shapes.

Partner Fees

Set per-venue fee rates and earn a share of every fill from accounts owned by your API key.

Guides

End-to-end walkthroughs for funding, placing trades, and fee monetization.

Supported venues

VenueChainCollateralOrder types
PolymarketPolygonpUSDLimit, market
Predict.funBSCUSDTLimit, market
OpinionBSCUSDTLimit, market
LimitlessBaseUSDCLimit, market
HyperliquidHyperCoreUSDH (USDC-pegged)Limit, market
Funding to Polymarket, Predict.fun, Opinion, and Limitless goes through the deposit wallet via POST /transfers. Hyperliquid funding uses Across — see Funding & Withdrawals for the details.

Discovering markets to trade

Market discovery is built into this tab — the Market Discovery section gives you the unified Predexon-native view: For raw per-venue market data (Polymarket markets, Kalshi tickers, etc.), text search, candles, or wallet analytics, jump to Data & Signals →

Account Limits

Each API key can create accounts up to its plan limit:
TierAccount limit
Free5
Dev50
Pro1,000
EnterpriseCustom

Error Handling

Every error response uses the same envelope:
{
  "error": "insufficient_balance",
  "message": "Insufficient balance: need 50.000000, have 12.500000",
  "requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
  • error — stable snake_case code. Branch on this; it never changes value once shipped.
  • message — human-readable explanation. Free-form, may change; show it to humans but don’t parse it.
  • requestId — request correlation id, also returned in the x-request-id response header. Quote it when contacting support.
StatusCommon error codesAction
400validation_error, missing_field, invalid_field, insufficient_balance, min_notional_not_met, parse_errorFix the request and retry
401unauthorized, invalid_api_keyCheck your x-api-key header
403forbidden, account_not_ownedVerify the account belongs to your key
404account_not_found, order_not_found, transfer_not_found, endpoint_not_foundCheck the ID or URL
409conflict, nonce_replayRetry the request
413payload_too_largeReduce the request body size
429rate_limitedBack off; respect tier limits
5xxinternal_error, upstream_errorRetry with exponential backoff
Retry 5xx errors with exponential backoff. Do not retry 4xx errors — they indicate a problem with the request.
POST /api/accounts/{accountId}/transfers returns a resource body with status: 'failed' instead of an error envelope when the operation ran but didn’t deliver — if the on-chain transfer reverted, it returns 201 with transfer.status === 'failed'. Read transfer.error / transfer.errorCode.The API call succeeded — the resource failed. Branch on status, not on HTTP code.

Authentication & limits

All endpoints in this tab live on https://trade.predexon.com and authenticate via the x-api-key header — the same key you use for Data & Signals. Trading API calls are free on every plan and never count toward your Data API request quota. See Authentication and Rate limits in Start Here for full plan details.