Nexus/API Reference/Futures

Move the stop to break-even

POSThttps://app.skylit.ai/api/nexus/v1/trading/accounts/{account}/breakeven

Moves the position's stop to the first tick at or past break-even (your entry plus the round-trip commission), and makes the stop if there isn't one. It's the BE button on the Futures Desk.

It's refused (422 order_refused) while price hasn't cleared that level yet, because a stop there would fill at once, and when your stop is already at or past it: break-even never loosens a stop. Safe to send twice.

Authorization

Authorization: Bearer <your API key>

Required. A missing header returns 401; an invalid, revoked or expired key returns 403.

Path parameters

  • accountstringrequired

    practice, agent (your bot's account), evaluation or funded (when you have exactly one running), or a futures account id from capabilities.

Request body

  • tickerstringrequired

    The position, as a product (NQ, its front month) or one contract (NQZ26).

Responses

  • 200

    The stop, working at break-even.

  • 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 no limitPrice), 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 no stopPrice), 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.

  • 403

    The key works but the account can't do this. Codes: account_suspended, nexus_access_denied, futures_access_denied.

  • 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 (with tradeId: 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; orderId points to it). A resting order that can't be covered answers insufficient_buying_power with orderId too: it's recorded as rejected.

  • 429

    Over a rate limit. Wait Retry-After seconds, then retry. Codes: rate_limited, and stream_limit_reached (too many live streams open: 3 per key, 6 per account).

  • 500

    Something went wrong on our side. If you sent a clientOrderId, retry with the same one. Code: internal_error.

  • 503

    Try again in a moment (honour Retry-After when 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

  • dataobject

    What reverse, breakeven and protect answer.

    • accountobject
    • orderobject

      A futures order. It's not a Trade: futures keep their own book. Prices are in index points, money in cents.

  • metaobject

    Extra facts about an order. Each field is there only when it applies.

    • fillobject

      The fill: price, priceSource (market or client), and when you sent a price, the bid and ask it was checked against. On an exit, quantity is how many sold.

    • clientOrderIdstring
    • idempotentReplayboolean

      This answer is a repeat of an earlier order with the same clientOrderId.

    • testboolean

      A test order: nothing was placed.

    • notCheckedstring[]

      Futures test orders: what the preview couldn't check, like account_rules_judgment or bracket_netting.

    • discordRoutingobject

      Where Nexus routed the trade to Discord, when it did.

    • nothingToCloseboolean
    • stillOpenstring[]

      A repeated closeAll: positions still open.

    • tradeIdstringuuid

      A resting exit or an options stop: the trade it closes or protects.

    • triggerOnstring

      An options stop: underlying.

    • underlyingPricenumber

      An options stop: the stock's price right now.

    • marketOpenboolean

      An options stop: whether the market's open for the contract.

    • firesNowboolean

      An options stop: the stock's already through a level, so it fires on the next check. firesOn says which leg.

    • wouldFireNowboolean

      A test options stop: what firesNow would say.

    • wouldFillNowboolean

      A test limit: whether the real one would've filled right away, with fillPrice.

    • wouldTriggerNowboolean

      A test stock stop: the last trade's already through it.

    • wouldRestBecausestring

      A test limit: why the real one would rest.

    • alreadyCancelledboolean

      A repeated cancel: it was already cancelled.

Last updated

Was this page helpful?