size, amount, and price are conditionally required by order type:
Response
201 Created
Market orders fill atomically — the response shows the executed fill. For a limit order that doesn’t fill immediately, status is "open", filled is "0", averagePrice is null, and metadata.fills is empty until fills arrive. Use Get Order or List Trades to inspect post-placement state.
status, filled, averagePrice, notional, fee) are the aggregated source of truth. metadata.fills shows the per-source breakdown so users can verify routing and reconcile against on-chain activity.
Math: 50 × $0.50 + 50 × $0.49 = $49.50 notional + $0.50 fees = $50 = amount; avg $0.495.
Trading fees on venue fills are venue-passthrough: top-level fee is the sum of metadata.fills[].fee. RFQ fills carry no explicit fee (the market maker’s compensation is baked into the quoted fillPrice).
A fill from a market maker looks like this — source: "rfq" with a marketMaker identifier instead of venue:
