Place Trades
Once a user has a connected brokerage, you can launch the trade modal with details of any order prefilled. With just 1 click, users can execute the trade on their brokerage.
How It Works
- Your server requests an authenticated trade session URL.
- Your client-side app opens the trade modal via the SDK.
- You pass a trade configuration (simple or options/multi-leg).
- The user reviews and sends the order to their brokerage.
Server-side: Request a Trade Session URL
Call Trade It's API server-side to get a url to the trade portal. The URL is pre-authenticated so the user does not need to log in.
Request
POST <api endpoint>/api/session/url
Content-Type: application/json
Authorization: Bearer <user's trade it access token>
{
"target": "trade"
}Response
{
"url": "https://tradeit.app/t/[ticker]?token=ti:...&embedded=1",
"expiresAt": "2026-02-27T19:35:12.000Z",
"feature": "trade",
"placeholder": "[ticker]"
}Trade It returns an authenticated trade URL template.
Client-side: Open the Trade Modal (Simple Trade)
import { useState } from 'react';
import {
OrderType,
TradeAction,
TradeItModal,
TradeType,
TradeUnit,
} from '@trade-it/react';
function BuyButton() {
const [open, setOpen] = useState(false);
const [tradeUrl, setTradeUrl] = useState<string | null>(null);
async function openTrade() {
const res = await fetch('/your-server/tradeit/trade');
const data = await res.json();
setTradeUrl(data.url);
setOpen(true);
}
return (
<>
<button onClick={openTrade}>Buy/Sell</button>
{tradeUrl && (
<TradeItModal
open={open}
onOpenChange={setOpen}
launch={{
mode: 'trade',
url: tradeUrl,
config: {
tradeType: TradeType.Simple,
ticker: 'AAPL',
action: TradeAction.Buy,
amount: 100,
unit: TradeUnit.Dollars,
orderType: OrderType.Market,
},
}}
/>
)}
</>
);
}Note: The same modal supports options orders too. Pass a multi-leg config and Trade It opens directly into the options workflow with details prefilled.
Examples
Use these examples of common scenarios as jumping off point.
Example 1: Buy in Dollars
Buy shares of an asset.
tradeIt.openTrade({
launch: {
mode: 'trade',
url: tradeUrl,
config: {
tradeType: TradeType.Simple,
ticker: 'AAPL',
action: TradeAction.Buy,
amount: 100,
unit: TradeUnit.Dollars,
orderType: OrderType.Market,
},
},
});
Example 2: Sell in Shares with Stop-Limit
Sell shares while setting both stop and limit prices.
tradeIt.openTrade({
launch: {
mode: 'trade',
url: tradeUrl,
config: {
tradeType: TradeType.Simple,
ticker: 'AAPL',
action: TradeAction.Sell,
amount: 10,
unit: TradeUnit.Shares,
orderType: OrderType.StopLimit,
stopPrice: 260,
limitPrice: 250,
},
},
});
Example 3: Multi-Leg Options
Open an options strategy with prefilled legs.
tradeIt.openTrade({
launch: {
mode: 'trade',
url: tradeUrl,
config: {
tradeType: TradeType.MultiLeg,
ticker: 'MSFT',
orderType: OrderType.Market,
timeInForce: TimeInForce.GoodTillCanceled,
legs: [
{
type: LegType.Option,
action: TradeAction.Sell,
positionEffect: PositionEffect.Open,
occ: '270617C00390000',
quantity: 5,
},
{
type: LegType.Option,
action: TradeAction.Buy,
positionEffect: PositionEffect.Open,
occ: '270617C00420000',
quantity: 5,
},
],
},
},
});
Config Parameters (launch.config)
Configure a particular trade using the parameters below:
See all enum values on SDK Enums Reference.
| Field | Meaning | Type / Enum | Used In | Default | Notes |
|---|---|---|---|---|---|
ticker | Asset symbol | string | simple options | — | Required. Example: AAPL, BTC-USD |
tradeType | Trade type | TradeType | simple options | TradeType.Simple | Use TradeType.MultiLeg for options/multi-leg |
action | Buy or sell | TradeAction | simple | TradeAction.Buy | Simple trades only |
amount | Trade amount | number | simple | 100 | Interpreted by unit |
unit | Amount unit | TradeUnit | simple | TradeUnit.Dollars | Dollars or Shares |
orderType | Order type | OrderType | simple options | OrderType.Market | market, limit, stop, stop_limit |
limitPrice | Limit price | number | simple options | — | Used for limit / stop_limit |
stopPrice | Stop trigger price | number | simple options | — | Used for stop / stop_limit |
timeInForce | Order duration | TimeInForce | simple options | TimeInForce.Day | Day, GoodTillCanceled, ImmediateOrCancel, FillOrKill |
legs | Options leg payload | TradeItMultiLegTradeLegConfig[] | options | — | Required for options/multi-leg trades |
legs[].type | Leg type | LegType | options | — | Option or Equity |
legs[].action | Leg action | TradeAction | options | — | Buy or Sell |
legs[].positionEffect | Position effect | PositionEffect | null | options | null | Usually Open / Close; null for equity legs |
legs[].occ | OCC contract string | string | null | options | — | Required for option legs |
legs[].quantity | Leg quantity | number | options | 1 | Contracts for options, shares for equity legs |