Change a resting options or stock order
https://app.skylit.ai/api/nexus/v1/trading/wallets/{book}/orders/{orderId}/modifyChange a resting order in place. It keeps the same id.
- A limit:
priceis the new limit,quantitythe new size (up to 1,000 contracts or 100,000 shares), or both. A bigger buy has to fit your buying power or nothing changes (422 insufficient_buying_power). Move a buy above the ask and it fills right away, at the ask. - A stock stop:
priceis the new stop. - An options stop:
stopLoss,takeProfit(stock prices),quantity, orpricewhen it has only one level.
An order that's filled, expired or rejected answers 409 order_not_working, and a stop that's already been set off answers 409 stop_triggered. A test order can't be modified (400 test_modify_unavailable): cancel it and send a new one.
Authorization
Authorization: Bearer <your API key>Required. A missing header returns 401; an invalid, revoked or expired key returns 403.
Path parameters
bookstringrequiredmainis your own paper wallet,agentis your bot's.mainagentorderIdstringuuidrequiredThe order's id, from the open, the working list or the history.
Request body
pricenumberThe new limit, or the new stop on a stock stop or a one-level options stop. In cents.
quantityintegerThe new size: up to 1,000 contracts or 100,000 shares.
stopLossnumberOptions stops: the new stock price the stop fires at.
takeProfitnumberOptions stops: the new stock price the target fires at.
testbooleanTest orders can't be modified, so
trueis always refused.
Responses
- 200
The order, changed.
- 400
The request was refused before anything was traded. Codes:
bad_request,bad_contract,invalid_quantity,invalid_price,unsupported_asset_class,unsupported_order_type,only_market_orders,limit_price_required(a limit with nolimitPrice),invalid_limit_price(not in cents, or outside 0.01 to 99,999.99 for options or 999,999.99 for stocks),stop_price_required(a stop with nostopPrice),invalid_stop_price(not in cents, or outside 0.01 to 999,999.99),invalid_take_profit,test_orders_unavailable,test_modify_unavailable. - 401
No key, or a key that isn't valid. Codes:
missing_api_key,invalid_api_key. - 404
Not on your account. Codes:
trade_not_found,account_not_found,order_not_found. - 409
The order clashes with what you hold or sent before. Codes:
duplicate_position(withtradeId: add to it instead),trade_closed,open_position_limit(open positions plus resting opens through the API are at 50),working_order_limit(50 options and stock orders already resting through the API),position_size_limit(an add would take the position past 1,000 contracts or 100,000 shares),client_order_id_used,request_in_progress,account_locked,account_busy,account_ended,order_not_working(it already filled, expired, or was cancelled or rejected),stop_triggered(a stop that's been set off is filling now, so it can't be cancelled or changed). - 422
Read fine, but the market or the account says no. Codes:
market_closed,contract_expired,contract_not_offered,price_outside_market,insufficient_buying_power,account_not_tradable,account_ambiguous,reduce_only_would_open,order_refused,order_rejected(a resting order that tried to fill right away and couldn't;orderIdpoints to it). A resting order that can't be covered answersinsufficient_buying_powerwithorderIdtoo: it's recorded as rejected. - 429
Over a rate limit. Wait
Retry-Afterseconds, then retry. Codes:rate_limited, andstream_limit_reached(too many live streams open: 3 per key, 6 per account). - 503
Try again in a moment (honour
Retry-Afterwhen it's sent). Codes:stale_quote(the quote, or a stock's last trade, is more than 15 seconds old, so nothing filled),no_live_price,rules_pending,unavailable,auth_unavailable,access_check_unavailable,api_keys_unavailable,trades_api_disabled,stream_unavailable(the live stream isn't on, or the server is restarting: try again shortly, or poll the reads).
Response fields
dataobjectA resting options or stock order: a limit, a stock stop, or an options stop-loss and target. It's not a
Trade: when it fills,tradeIdis the trade it went to.idstringuuidassetClassstringoptionsstockssourcestringapiwhen a key placed it. Left out on an order placed on the Options Desk in Nexus.bookstringmainagentclientOrderIdstringtickerstringstrikenumberOptions only.
directionstringcallorputon an option.longorshorton a stock: the side of the position it opens or closes.expirationstringdateOptions only.
sidestringbuysellpositionEffectstringopenclosequantityintegerfilledQuantityintegerorderTypestringstop,take_profitandbracketon an option are options stops. A trailing stop set on the Options Desk shows astrailing_stop(withtriggerOnpremiumwhen it trails the option's own bid), and a desk market order asmarket, on the main wallet's list.limitstoptake_profitbrackettrailing_stopmarkettimeInForcestringdaygtcstatusstringworkingfilledcancelledrejectedexpiredstatusReasonstringWhy, when there's a reason.
limitPricenumberstopPricenumberA stock stop's level.
stopLossnumberAn options stop: the stock price the stop fires at.
takeProfitnumberAn options stop: the stock price the target fires at.
triggerOnstringunderlyingon an options stop: its levels are the stock's price.underlyingpremiumunderlyingstringThe stock an options stop watches.
firedLegstringWhich leg of an options stop fired.
stop_losstake_profittriggeredAtstringdate-timeWhen a stop was set off. It can't be cancelled or changed after that.
triggerPricenumberThe trade (or for an options stop, the stock price) that set it off.
fillOrderIdstringuuidAn options stop that fired: the sell it sent.
fillPricenumberThe average fill: the ask a buy paid, the bid a sell got, or a stock's trade price.
tradeIdstringuuidThe trade the fill went to, or the trade an options stop protects.
reservedCentsintegerBuying power a resting open holds back. 0 once it stops resting, and on a close.
placedAtstringdate-timefilledAtstringdate-timeexpiresAtstringdate-timetestbooleantrueon a test order. It never fills.
Last updated