Skip to main content
All four methods return the unified Order shape — see Order for fields.

create_order

async fn create_order(
    market_id: &str,
    outcome: &str,        // "Yes" / "No"
    side: OrderSide,      // Buy / Sell
    price: f64,           // 0.0..1.0
    size: f64,            // contracts
    params: HashMap<String, String>,
) -> Result<Order, OpenPxError>
params keys
KeyValuesDefault
order_typegtc, ioc, fok, marketgtc
token_id (Polymarket only)CLOB token IDderived from market_id + outcome
use openpx::{OrderSide};
use std::collections::HashMap;

let mut params = HashMap::new();
params.insert("order_type".to_string(), "gtc".to_string());

let order = ex.create_order(
    "KXBTC-25MAR14-T20000",
    "Yes",
    OrderSide::Buy,
    0.55,
    10.0,
    params,
).await?;

cancel_order

async fn cancel_order(
    order_id: &str,
    market_id: Option<&str>,
) -> Result<Order, OpenPxError>
market_id is optional but accelerates Polymarket cancels (avoids a lookup).

fetch_order

async fn fetch_order(
    order_id: &str,
    market_id: Option<&str>,
) -> Result<Order, OpenPxError>

fetch_open_orders

async fn fetch_open_orders(
    params: Option<FetchOrdersParams>,
) -> Result<Vec<Order>, OpenPxError>
FetchOrdersParams { market_id: Option<String> } — pass None to list every open order across all markets.
let open = ex.fetch_open_orders(None).await?;