Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.predexon.com/llms.txt

Use this file to discover all available pages before exploring further.

Everything in this tab is built for one job: letting you place and manage trades across every major prediction market without running wallet, custody, or signing infrastructure yourself. Predexon holds the keys, you hold an API key. Accounts are funded once, trade across Polymarket, Predict.fun, Opinion, Limitless, and Hyperliquid.
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.
The entire Trading API is free. Trading calls live on trade.predexon.com and never count toward your Data API quota.

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.

Unified Order Router

Trade a canonical outcome by predexonId without picking a venue. The router compares prices and fees across every venue holding it, then executes on the best one.

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.

Your first trade

The fastest path: create account → enable venue → fund → place order. Full walkthrough in Quickstart →
Python
import requests

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

# 1. Create an account
account = requests.post(f"{BASE}/api/accounts/create", headers=HEADERS).json()
account_id = account["accountId"]

# 2. Enable a venue (wallet provisions in ~30s)
requests.post(
    f"{BASE}/api/accounts/{account_id}/enable",
    headers=HEADERS,
    json={"venue": "polymarket"},
)

# 3. Place an order (after funding via /transfers)
order = requests.post(
    f"{BASE}/api/accounts/{account_id}/orders",
    headers=HEADERS,
    json={
        "venue": "polymarket",
        "market": {"tokenId": "82855..."},
        "side": "buy",
        "type": "limit",
        "size": "10",
        "price": "0.50",
    },
).json()

What’s in this tab

Market Discovery

Canonical markets, venue listings, outcome resolution, and matched pairs — the unified discovery layer that feeds the router.

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.

Unified Order Router

Quote, place, list, get, cancel — by canonical predexonId, fee-aware, venue-agnostic.

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, the order router, 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_error, router_unavailableRetry with exponential backoff
Retry 5xx errors with exponential backoff. Do not retry 4xx errors — they indicate a problem with the request.
Two endpoints return a resource body with status: 'failed' instead of an error envelope when the operation ran but didn’t deliver:
  • POST /api/accounts/{accountId}/router/orders — if every leg failed, returns 201 with routerOrder.status === 'failed'. Read fills[].error for per-leg detail.
  • POST /api/accounts/{accountId}/transfers — if the on-chain transfer reverted, returns 201 with transfer.status === 'failed'. Read transfer.error / transfer.errorCode.
The API call succeeded in both cases — 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.