curl --request POST \
--url https://api.engine.usesophic.com/accounts/{account_id}/orders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"instrument": "<string>",
"automatic_rollover": false,
"cash_amount": "1000.00",
"limit_price": "25.7500",
"quantity": "12.5",
"quote": "<string>"
}
'import requests
url = "https://api.engine.usesophic.com/accounts/{account_id}/orders"
payload = {
"instrument": "<string>",
"automatic_rollover": False,
"cash_amount": "1000.00",
"limit_price": "25.7500",
"quantity": "12.5",
"quote": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
instrument: '<string>',
automatic_rollover: false,
cash_amount: '1000.00',
limit_price: '25.7500',
quantity: '12.5',
quote: '<string>'
})
};
fetch('https://api.engine.usesophic.com/accounts/{account_id}/orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.engine.usesophic.com/accounts/{account_id}/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'instrument' => '<string>',
'automatic_rollover' => false,
'cash_amount' => '1000.00',
'limit_price' => '25.7500',
'quantity' => '12.5',
'quote' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.engine.usesophic.com/accounts/{account_id}/orders"
payload := strings.NewReader("{\n \"instrument\": \"<string>\",\n \"automatic_rollover\": false,\n \"cash_amount\": \"1000.00\",\n \"limit_price\": \"25.7500\",\n \"quantity\": \"12.5\",\n \"quote\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.engine.usesophic.com/accounts/{account_id}/orders")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"instrument\": \"<string>\",\n \"automatic_rollover\": false,\n \"cash_amount\": \"1000.00\",\n \"limit_price\": \"25.7500\",\n \"quantity\": \"12.5\",\n \"quote\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engine.usesophic.com/accounts/{account_id}/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"instrument\": \"<string>\",\n \"automatic_rollover\": false,\n \"cash_amount\": \"1000.00\",\n \"limit_price\": \"25.7500\",\n \"quantity\": \"12.5\",\n \"quote\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"fees": "1.50",
"id": "<string>",
"instrument": {
"days_to_maturity": 182,
"decimal_precision": 2,
"enforce_trading_rules": true,
"id": "<string>",
"initial_auction_date": "2024-12-30",
"initial_issue_date": "2025-01-02",
"instrument_type": "bill",
"isin": "US5949181045",
"issuer": "United States Department of the Treasury",
"issuer_country": "US",
"issuer_credit_rating": "AA+",
"latest_auction_date": "2025-01-27",
"latest_issue_date": "2025-01-30",
"maturity_date": "2025-07-03",
"minimum_initial_cash_investment": "1000.00",
"minimum_trading_quantity": "1.00",
"name": "Apple Inc.",
"price_type": "percent",
"pro_traders_only": true,
"required_cash_increment": 100,
"rollout_stage": "ga",
"supports_automatic_rollover": true,
"symbol": "US5949181045",
"trading_currency": "USD",
"trading_increment": "0.01",
"trading_status": "buy_sell",
"about": "Common stock listed on the Nasdaq Global Select Market.",
"exchange": "XNAS",
"icon_url": "https://storage.googleapis.com/sophic-assets/instrument-icons/in_x7GqT.png",
"ticker": "AAPL"
},
"is_cancellable": true,
"modified_at": "2023-11-07T05:31:56Z",
"order_type": "market",
"purpose": "user_request",
"side": "buy",
"status": "held",
"traded_notional": "998.50",
"traded_quantity": "10.5",
"trades": [
{
"account": "<string>",
"counterparty": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"executed_at": "2026-07-14T09:34:12Z",
"execution_audit_trail": "<string>",
"execution_broker": "<string>",
"execution_reference": "<string>",
"id": "<string>",
"instrument": {
"days_to_maturity": 182,
"decimal_precision": 2,
"enforce_trading_rules": true,
"id": "<string>",
"initial_auction_date": "2024-12-30",
"initial_issue_date": "2025-01-02",
"instrument_type": "bill",
"isin": "US5949181045",
"issuer": "United States Department of the Treasury",
"issuer_country": "US",
"issuer_credit_rating": "AA+",
"latest_auction_date": "2025-01-27",
"latest_issue_date": "2025-01-30",
"maturity_date": "2025-07-03",
"minimum_initial_cash_investment": "1000.00",
"minimum_trading_quantity": "1.00",
"name": "Apple Inc.",
"price_type": "percent",
"pro_traders_only": true,
"required_cash_increment": 100,
"rollout_stage": "ga",
"supports_automatic_rollover": true,
"symbol": "US5949181045",
"trading_currency": "USD",
"trading_increment": "0.01",
"trading_status": "buy_sell",
"about": "Common stock listed on the Nasdaq Global Select Market.",
"exchange": "XNAS",
"icon_url": "https://storage.googleapis.com/sophic-assets/instrument-icons/in_x7GqT.png",
"ticker": "AAPL"
},
"is_reportable": true,
"meta": {},
"modified_at": "2023-11-07T05:31:56Z",
"notional": "99250.00",
"notional_currency": "EUR",
"order": "<string>",
"position": "<string>",
"price": "99.25",
"quantity": "1000",
"quantity_currency": "EUR",
"settled_at": "2026-07-16T10:15:00Z",
"settlement_batch_id": "<string>",
"settlement_date": "2026-07-16",
"side": "buy",
"status": "executed",
"trading_venue": "<string>",
"tvtic": "<string>",
"ytm": "4.25",
"accrued_interest": "871.23"
}
],
"account": "<string>",
"automatic_rollover": true,
"cancelled_at": "2026-07-14T09:34:12Z",
"cancelled_reason": "<string>",
"cash_amount": "1000.00",
"currency": "EUR",
"filled_at": "2026-07-14T09:34:12Z",
"limit_price": "95.1000",
"net_cash_amount": "998.50",
"position": "<string>",
"quantity": "10.5",
"quote": "<string>",
"settled_at": "2026-07-16T09:34:12Z"
}{
"code": "<string>",
"detail": "<string>",
"context": {},
"docs": "<string>",
"params": [
{
"code": "<string>",
"detail": "<string>",
"path": [
123
]
}
]
}Place an order
Places a buy-side or sell-side market or limit order. Buys are cash-based; sells require a unit quantity.
curl --request POST \
--url https://api.engine.usesophic.com/accounts/{account_id}/orders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"instrument": "<string>",
"automatic_rollover": false,
"cash_amount": "1000.00",
"limit_price": "25.7500",
"quantity": "12.5",
"quote": "<string>"
}
'import requests
url = "https://api.engine.usesophic.com/accounts/{account_id}/orders"
payload = {
"instrument": "<string>",
"automatic_rollover": False,
"cash_amount": "1000.00",
"limit_price": "25.7500",
"quantity": "12.5",
"quote": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
instrument: '<string>',
automatic_rollover: false,
cash_amount: '1000.00',
limit_price: '25.7500',
quantity: '12.5',
quote: '<string>'
})
};
fetch('https://api.engine.usesophic.com/accounts/{account_id}/orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.engine.usesophic.com/accounts/{account_id}/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'instrument' => '<string>',
'automatic_rollover' => false,
'cash_amount' => '1000.00',
'limit_price' => '25.7500',
'quantity' => '12.5',
'quote' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.engine.usesophic.com/accounts/{account_id}/orders"
payload := strings.NewReader("{\n \"instrument\": \"<string>\",\n \"automatic_rollover\": false,\n \"cash_amount\": \"1000.00\",\n \"limit_price\": \"25.7500\",\n \"quantity\": \"12.5\",\n \"quote\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.engine.usesophic.com/accounts/{account_id}/orders")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"instrument\": \"<string>\",\n \"automatic_rollover\": false,\n \"cash_amount\": \"1000.00\",\n \"limit_price\": \"25.7500\",\n \"quantity\": \"12.5\",\n \"quote\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engine.usesophic.com/accounts/{account_id}/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"instrument\": \"<string>\",\n \"automatic_rollover\": false,\n \"cash_amount\": \"1000.00\",\n \"limit_price\": \"25.7500\",\n \"quantity\": \"12.5\",\n \"quote\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"fees": "1.50",
"id": "<string>",
"instrument": {
"days_to_maturity": 182,
"decimal_precision": 2,
"enforce_trading_rules": true,
"id": "<string>",
"initial_auction_date": "2024-12-30",
"initial_issue_date": "2025-01-02",
"instrument_type": "bill",
"isin": "US5949181045",
"issuer": "United States Department of the Treasury",
"issuer_country": "US",
"issuer_credit_rating": "AA+",
"latest_auction_date": "2025-01-27",
"latest_issue_date": "2025-01-30",
"maturity_date": "2025-07-03",
"minimum_initial_cash_investment": "1000.00",
"minimum_trading_quantity": "1.00",
"name": "Apple Inc.",
"price_type": "percent",
"pro_traders_only": true,
"required_cash_increment": 100,
"rollout_stage": "ga",
"supports_automatic_rollover": true,
"symbol": "US5949181045",
"trading_currency": "USD",
"trading_increment": "0.01",
"trading_status": "buy_sell",
"about": "Common stock listed on the Nasdaq Global Select Market.",
"exchange": "XNAS",
"icon_url": "https://storage.googleapis.com/sophic-assets/instrument-icons/in_x7GqT.png",
"ticker": "AAPL"
},
"is_cancellable": true,
"modified_at": "2023-11-07T05:31:56Z",
"order_type": "market",
"purpose": "user_request",
"side": "buy",
"status": "held",
"traded_notional": "998.50",
"traded_quantity": "10.5",
"trades": [
{
"account": "<string>",
"counterparty": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"executed_at": "2026-07-14T09:34:12Z",
"execution_audit_trail": "<string>",
"execution_broker": "<string>",
"execution_reference": "<string>",
"id": "<string>",
"instrument": {
"days_to_maturity": 182,
"decimal_precision": 2,
"enforce_trading_rules": true,
"id": "<string>",
"initial_auction_date": "2024-12-30",
"initial_issue_date": "2025-01-02",
"instrument_type": "bill",
"isin": "US5949181045",
"issuer": "United States Department of the Treasury",
"issuer_country": "US",
"issuer_credit_rating": "AA+",
"latest_auction_date": "2025-01-27",
"latest_issue_date": "2025-01-30",
"maturity_date": "2025-07-03",
"minimum_initial_cash_investment": "1000.00",
"minimum_trading_quantity": "1.00",
"name": "Apple Inc.",
"price_type": "percent",
"pro_traders_only": true,
"required_cash_increment": 100,
"rollout_stage": "ga",
"supports_automatic_rollover": true,
"symbol": "US5949181045",
"trading_currency": "USD",
"trading_increment": "0.01",
"trading_status": "buy_sell",
"about": "Common stock listed on the Nasdaq Global Select Market.",
"exchange": "XNAS",
"icon_url": "https://storage.googleapis.com/sophic-assets/instrument-icons/in_x7GqT.png",
"ticker": "AAPL"
},
"is_reportable": true,
"meta": {},
"modified_at": "2023-11-07T05:31:56Z",
"notional": "99250.00",
"notional_currency": "EUR",
"order": "<string>",
"position": "<string>",
"price": "99.25",
"quantity": "1000",
"quantity_currency": "EUR",
"settled_at": "2026-07-16T10:15:00Z",
"settlement_batch_id": "<string>",
"settlement_date": "2026-07-16",
"side": "buy",
"status": "executed",
"trading_venue": "<string>",
"tvtic": "<string>",
"ytm": "4.25",
"accrued_interest": "871.23"
}
],
"account": "<string>",
"automatic_rollover": true,
"cancelled_at": "2026-07-14T09:34:12Z",
"cancelled_reason": "<string>",
"cash_amount": "1000.00",
"currency": "EUR",
"filled_at": "2026-07-14T09:34:12Z",
"limit_price": "95.1000",
"net_cash_amount": "998.50",
"position": "<string>",
"quantity": "10.5",
"quote": "<string>",
"settled_at": "2026-07-16T09:34:12Z"
}{
"code": "<string>",
"detail": "<string>",
"context": {},
"docs": "<string>",
"params": [
{
"code": "<string>",
"detail": "<string>",
"path": [
123
]
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Path Parameters
Body
The ID of the instrument to buy or sell.
The order type, market or limit. Limit orders are ETFs only.
market, limit The order side, buy or sell.
buy, sell Whether the resulting position rolls into a similar instrument at maturity; valid only for eligible buy orders.
Pre-fee cash amount required for buy orders.
"1000.00"
Positive price required for limit orders and rejected for market orders.
"25.7500"
Positive unit quantity required for sell orders.
"12.5"
ID of a previously issued order quote. FX orders replay the locked rate; security cash buys may reference a prior quote for a deviation check against the quoted amount.
Response
Created
The total fees for this order.
"1.50"
Unique resource identifier.
The instrument to buy or sell.
- Bill
- CurrencyPair
- Bond
- MoneyMarketFund
- AMC
- ETF
Show child attributes
Show child attributes
Whether the order can be cancelled now; true only for limit orders in a cancellable phase with no fills.
The order type (e.g. market, limit).
market, limit The purpose of the order.
user_request, rollover, square_off, backfill Buy or sell.
buy, sell The order status.
held, placed, executing, cancelling, filled, settled, cancelled The total notional value executed.
"998.50"
The total quantity executed.
"10.5"
All trades executed to fill this order.
Show child attributes
Show child attributes
ID of the parent account. Present on customer orders; null for system-placed orders.
Customer's automatic rollover preference; set only on eligible buy orders.
The time the order was cancelled.
"2026-07-14T09:34:12Z"
The reason for cancelling the order, if cancelled.
The amount to invest (before fees). Buy orders are cash-based (you specify how much to invest, not how many units to buy).
"1000.00"
Order currency: the instrument trading currency for securities, or the base currency for FX.
EUR, USD, GBP The time the order was filled.
"2026-07-14T09:34:12Z"
Limit price per unit; null for market orders.
"95.1000"
The amount to invest after fees. This is what gets traded.
"998.50"
ID of the position this order belongs to; null until the order executes.
Requested unit quantity for sell orders.
"10.5"
ID of the quote used to place this order. On FX orders, locks the executing rate; when omitted, the order trades at the live rate.
The time the order was settled.
"2026-07-16T09:34:12Z"