---
title: "Submit Order"
method: POST
path: "/v0/trade/submit-order"
tags: ["Trading"]
---

# Submit Order

`POST /v0/trade/submit-order`

Submit a signed order returned by `buildOrderHosted` and get back the resulting order — id, fill status, average price, and the on-chain tx hash once it settles.

`built_order_id` must come from a recent `buildOrderHosted` call and be submitted before its expiry. For one-shot order placement, use `createOrderHosted` instead.

## Request body

- SubmitOrderHostedRequest — Hosted submit-order request. `signature` is the local EIP-712 signature over `BuildOrderHostedResponse.typed_data`.
  - `built_order_id` string, required — Opaque key returned by `buildOrderHosted`. Identifies the server-side build context to submit against.
  - `signature` string, required — Hex-encoded EIP-712 signature over `BuildOrderHostedResponse.typed_data`, produced locally with the wallet key matching `user_address`.
  - `pull_signature` string, nullable — Hex-encoded EIP-712 signature over `BuildOrderHostedResponse.pull_typed_data`. Required when the build response returned a non-null `pull_typed_data` (Polymarket neg-risk markets and sell orders); `null` otherwise.
  - `wait` boolean — When `true`, the server blocks until on-chain settlement before responding (returns the populated `tx_hash`). When `false`, returns immediately with the in-flight order.

## Response `200`

Order accepted by the hosted backend.

- OrderV0 — Hosted-mode `Order` shape. Mirrors `pmxt.Order` so the SDK can return it directly. `tx_hash`, `chain`, and `block_number` populate once execution settles on-chain.
  - `id` string, required — Unified order id. Stable across the order's lifetime; reuse it in `fetchOrderHosted` and `cancelOrderHosted`.
  - `side` 'buy' | 'sell', nullable — Order direction. `null` on cancel responses, which only carry id and status.
  - `type` 'market' | 'limit', nullable — Order type echoed from the build. `null` on cancel responses.
  - `amount` number, nullable — Order size in outcome shares. For market submits, this is the shares actually obtained (`tokens_bought` / `tokens_sold`); for resting limit orders it is the total shares originally requested. `null` on cancel responses.
  - `price` number, nullable — Limit price in probability units [0, 1] for limit orders. `null` for market orders and cancel responses.
  - `filled` number — Shares filled so far. For market submits this equals the shares obtained on-chain; for resting limit orders it is the running fill total.
  - `remaining` number — Shares still outstanding (`amount - filled`, floored at 0). Reaches 0 when the order is fully filled or cancelled.
  - `status` string, required — Lifecycle status. Open-order values include `resting` and `partial`; submit responses pass through the upstream status string (`failed` when an error was raised); cancel responses return the venue's cancel-acknowledgement status.
  - `fee` number, nullable — Total fee charged for this order, in USDC dollars. `null` until the venue reports fees (typically after settlement).
  - `timestamp` string, nullable — ISO-8601 timestamp the order was created on the venue side. `null` on cancel responses.
  - `tx_hash` string, nullable — On-chain settlement transaction hash on Polygon. `null` until the order settles on-chain (resting limit orders stay `null` until matched).
  - `chain` string, nullable — Chain the order settled on. Always `polygon` for hosted orders today (Opinion settles cross-chain via the same Polygon escrow). `null` on cancel responses.
  - `block_number` integer, nullable — Polygon block height at which the order settled. `null` until settlement.

## Other responses

- `401` — Invalid or missing PMXT API key.
- `410` — `built_order_id` expired before submission. Re-run `buildOrderHosted` and submit again.
- `422` — Invalid signature or malformed payload.

---

[API](https://skmtc.net/pmxt-dev/apis/pmxt-hosted-router-api.md) · [All operations](https://skmtc.net/pmxt-dev/apis/pmxt-hosted-router-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pmxt-dev/pmxt-hosted-router-api/versions/9ee3cbe2dc87/schema)
