Skip to Content
HTTP APITrading

Place an order

Build your request

Change the values and the command follows. The token is never typed here: the command reads it from the SPECTRE_LOCAL_API_TOKEN environment variable. Run it in your own terminal.

Command
curl -X POST 'http://127.0.0.1:48180/v1/orders' \
  -H "Authorization: Bearer $SPECTRE_LOCAL_API_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "connection_id": 12,
  "instrument": "binance:futures:BTCUSDT",
  "side": "buy",
  "type": "limit",
  "price": "67000.1",
  "size": "0.012",
  "reduce_only": false,
  "post_only": false,
  "time_in_force": "gtc",
  "client_key": "bot-42"
}'
POST
/orders

Places a limit or a market order. A repeat with the same client_key returns the previous answer and places no second order. The terminal remembers the last 1000 keys.

Authorization

bearerToken trading:write
headerAuthorizationBearer <token>

The Local API token: spt_ and 64 hex characters. Copy it from Settings App → General → Local API. It is accepted only in the Authorization header. The names listed with an operation are the scopes it requires. The token of the terminal carries all of them.

Scope: trading:write

Request Body

application/json
  1. body
connection_id*integer
Formatint64
instrument*string

Instrument address, exchange:market:symbol.

side*string
Value in"buy""sell"
type*string

A limit order needs price. A market order takes none.

Value in"limit""market"
price?string

Decimal string.

size?string

Size in the base coin. Exactly one of size and notional.

notional?string

Amount in the quote currency. Exactly one of size and notional.

reduce_only?boolean
Defaultfalse
post_only?boolean
Defaultfalse
time_in_force?string

Without it the default of the exchange applies.

Value in"gtc""ioc""fok""post_only"
client_key?string

Idempotency key of the client.

Response Body

The terminal accepted the command. The order appears in account.orders under key.

application/json
  1. response

The answer of every trading, trigger and leverage command.

accepted*boolean

Accepted by the terminal, not by the exchange.

operation_id*string

The id of the operation in the trading operations log of the terminal. The key of a placed order is t- and this id.

key*|

The key of the placed order, t-…, or of the placed trigger: sl_…, tp_… or stop_…. null for cancels, amendments and leverage.

connection_id*integer
Formatint64
instrument*string
Example Request
curl -X POST 'http://127.0.0.1:48180/v1/orders' \  -H "Authorization: Bearer $SPECTRE_LOCAL_API_TOKEN" \  -H 'Content-Type: application/json' \  -d '{  "connection_id": 12,  "instrument": "binance:futures:BTCUSDT",  "side": "buy",  "type": "limit",  "price": "67000.1",  "size": "0.012",  "reduce_only": false,  "post_only": false,  "time_in_force": "gtc",  "client_key": "bot-42"}'
Example Response
{  "accepted": true,  "operation_id": "173029440000000001",  "key": "t-173029440000000001",  "connection_id": 12,  "instrument": "binance:futures:BTCUSDT"}