| Title: | 'Public Trading API' | 
| Version: | 1.0.0 | 
| Description: | The 'Public Trading API' https://public.com/api/docs allows clients to access their brokerage accounts, request market data, and place stock/etf/option orders. | 
| License: | GPL-3 | 
| Language: | en-US | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.3.2 | 
| Imports: | httr, jsonlite, data.table, lubridate, stringr, uuid | 
| VignetteBuilder: | knitr | 
| Suggests: | testthat, knitr, rmarkdown | 
| Config/testthat/edition: | 3 | 
| NeedsCompilation: | no | 
| Packaged: | 2025-08-09 09:36:10 UTC; jason | 
| Author: | Jason Guevara [aut, cre] | 
| Maintainer: | Jason Guevara <Jason.guevara.yt@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2025-08-22 18:10:11 UTC | 
Check & Auto-Renew Bearer Tokens (Internal)
Description
Check & Auto-Renew Bearer Tokens (Internal)
Usage
.rp_checkAccessToken(printMsg = FALSE, mins = 120)
Arguments
printMsg | 
 = (bool) Should outcome messages be printed out? defaults to FALSE  | 
mins | 
 = (int) The number of minutes that the bearer token will be valid for.  | 
Value
Checks validity of Bearer Token & auto-updates if needed. Assigns the new tokens in 'rp' environment and 'rp_tokens.rds' file
Examples
## Not run: 
  # For Internal Use Prior to Making API Requests
  .rp_checkAccessToken(printMsg=FALSE, mins=120)
## End(Not run)
temporary working environment
Description
temporary working environment
Usage
.rp_env
Format
An object of class environment of length 0.
Value
An auto generated environment to store our tokens
Examples
## Not run: 
  .rp_env <- new.env(parent = emptyenv())
## End(Not run)
Build Multi-Leg Order Payload (Internal)
Description
Build Multi-Leg Order Payload (Internal)
Usage
.rp_make_multileg_payload(
  orderType,
  qty,
  orderId = NULL,
  leg_symbols,
  leg_types,
  leg_sides,
  leg_indicator,
  leg_ratios,
  lmtPrc = NULL,
  tif,
  expTime = NULL
)
Arguments
orderType | 
 = (string) The Type of order: 'MARKET', 'LIMIT', 'STOP', 'STOP_LIMIT'  | 
qty | 
 = (string) leg_ratio multiple: ex. '2' multiples the leg_ratios by 2X  | 
orderId | 
 = (string) The order ID  | 
leg_symbols | 
 = (string) Symbols: ex. c("SPY250815C00631000", "SPY250815C00631000")  | 
leg_types | 
 = (string) Symbol types: ex. c("OPTION", "OPTION")  | 
leg_sides | 
 = (string) The side for each leg: ex. c("BUY", "SELL")  | 
leg_indicator | 
 = (string) Indicates if this is BUY to OPEN/CLOSE ex. c("OPEN", "OPEN")  | 
leg_ratios | 
 = (string) The number of contracts to BUY/SELL: ex. c('5','5')  | 
lmtPrc | 
 = (string) The limit price. Used when orderType = LIMIT or orderType = STOP_LIMIT  | 
tif | 
 = (string) The time in for the order: 'DAY' or 'GTD"  | 
expTime | 
 = (string) The expiration date. Only used when timeInForce is GTD, cannot be more than 90 days in the future  | 
Value
Returns an appropriate payload list for a multiple-leg order
Examples
## Not run: 
  # Return the proper order payload for multiple-leg orders
  .rp_make_multileg_payload(orderType="LIMIT", qty="2", orderId=rp_getOrderId(), 
                            leg_symbols = c("SPY250815C00631000", "SPY250815C00631000"), 
                            leg_types = c("OPTION", "OPTION"), leg_sides = c("BUY", "SELL"), 
                            leg_indicator = c("OPEN", "OPEN"), leg_ratios=c('5','5'), 
                            lmtPrc='0.25', tif="DAY")
## End(Not run)
Build Option Symbol (Internal)
Description
Build Option Symbol (Internal)
Usage
.rp_make_opt_symbol(under_sym, exp, type, strike)
Arguments
under_sym | 
 = (string) Underlying symbol for the option: ex. 'SPY'  | 
exp | 
 = (string) The option expiration: ex. "2025-08-15"  | 
type | 
 = (string) The option type: 'C' for Call & 'P' for Put  | 
strike | 
 = (double/int) The option strike price: 631 or 631.00  | 
Value
Returns a valid symbol string for the option contract of interest
Examples
## Not run: 
  # Return the proper option symbol of interest: "TSLA250808C00325000"
  .rp_make_opt_symbol(under_sym="TSLA", exp="2025-08-08", type="C", strike=325)
## End(Not run)
Build Single-Leg Order Payload (Internal)
Description
Build Single-Leg Order Payload (Internal)
Usage
.rp_make_ord_payload(
  ticker,
  symType,
  orderId = NULL,
  side = NULL,
  ordType = NULL,
  timeInForce = NULL,
  expirationTime = NULL,
  qty = NULL,
  amt = NULL,
  lmtPrc = NULL,
  stopPrc = NULL,
  openCloseIndicator = NULL
)
Arguments
ticker | 
 = (string) Ticker symbol: ex. 'SPY'  | 
symType | 
 = (string) Symbol type: ex. 'EQUITY'  | 
orderId | 
 = (string) The order ID  | 
side | 
 = (string) The Order Side BUY/SELL. For Options also include the openCloseIndicator  | 
ordType | 
 = (string) The Type of order: 'MARKET', 'LIMIT', 'STOP', 'STOP_LIMIT'  | 
timeInForce | 
 = (string) The time in for the order: 'DAY' or 'GTD"  | 
expirationTime | 
 = (string) The expiration date. Only used when timeInForce is GTD, cannot be more than 90 days in the future  | 
qty | 
 = (string) The order quantity. Used when buying/selling whole shares and when selling fractional. Mutually exclusive with amount  | 
amt | 
 = (string) The order amount. Used when buying/selling shares for a specific notional value  | 
lmtPrc | 
 = (string) The limit price. Used when orderType = LIMIT or orderType = STOP_LIMIT  | 
stopPrc | 
 = (string) The stop price. Used when orderType = STOP or orderType = STOP_LIMIT  | 
openCloseIndicator | 
 = (string) Used for options only. Indicates if this is BUY to OPEN/CLOSE  | 
Value
Returns an appropriate payload list for a single-leg order
Examples
## Not run: 
  # Return the proper order payload for single-leg orders
  .rp_make_ord_payload(under_sym="IWM", symType = "EQUITY", orderId = rp_getOrderId(), 
                       side="BUY", orderType="LIMIT", timeInForce="GTD", 
                       expirationTime ="2023-11-07T05:31:56Z", qty=1.735, lmtPrc="200.00")
## End(Not run)
Build Dynamic Payload For rp_getQuote (Internal)
Description
Build Dynamic Payload For rp_getQuote (Internal)
Usage
.rp_make_qte_payload(symbols, types)
Arguments
symbols | 
 = (string) Equity/ETF/Option symbol(s)  | 
types | 
 = (string) The product type (ex. 'EQUITY' or 'OPTION')  | 
Value
Returns a list in the appropriate payload format in case the user needs multiple symbols for quotes
Examples
## Not run: 
  # Create the correct quote payload for AAPL and a SPY 631 Call 8/15/25 Expiration
  .rp_make_qte_payload(symbols=c("AAPL","SPY250815C00631000"), types=c("EQUITY","OPTION"))
## End(Not run)
Request token file (Internal)
Description
Request token file (Internal)
Usage
.rp_read_tokens()
Value
Requests your token file 'rp_tokens.rds' from working directory & assigns a working environment if it exists
Examples
## Not run: 
  # For Internal Use (assigns tokens inside of the 'rp' environment)
  .rp_read_tokens()
## End(Not run)
Cancel Order
Description
Cancel Order
Usage
rp_cancel_order(accountId, orderId)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
orderId | 
 = The order ID  | 
Value
Request order cancellation & return as a data.frame.
Examples
## Not run: 
 # Cancels Specific Order
 my_acc <- rp_getAccts()
 rp_cancel_order(accountId = my_acc$accountId, 
                 orderId = "c99be1dd-bb87-4f7a-803f-ec47226bf64e") 
## End(Not run)
Get History
Description
Get History
Usage
rp_getAccHist(accountId, start = NULL, end = NULL, pageSize = NULL)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
start | 
 = (Optional) Start timestamp in ISO 8601 format with timezone. Ex. "YYYY-MM-DDTHH:MM:SSZ"  | 
end | 
 = (Optional) End timestamp in ISO 8601 format with timezone. Ex. "YYYY-MM-DDTHH:MM:SSZ"  | 
pageSize | 
 = (Optional) Maximum number of records to return.  | 
Value
Fetches a paginated data.frame of historical events for the specified account.
Examples
## Not run: 
  # Return Public Brokerage Account History
    my_acc <- rp_getAccts()
    
    # using only accountId
    my_hist <- rp_getAccHist(accountId = my_acc$accountId)
    
    # using some parameters
    my_hist <- rp_getAccHist(accountId = my_acc$accountId, 
                             start = format(Sys.time()-days(30), format="%Y-%m-%dT%H:%M:%SZ"),
                             pageSize = 20
                             )
## End(Not run)
Get New Access/Bearer Token From Secret Key
Description
Get New Access/Bearer Token From Secret Key
Usage
rp_getAccToken(exp_in_mins)
Arguments
exp_in_mins | 
 = (int) The number of minutes that the bearer token will be valid for.  | 
Value
Update Bearer Token from secret key & returns working environment and saves updated tokens in 'rp_tokens.rds'
Examples
## Not run: 
  # Request New Bearer Token that expires in 120 minutes
  rp_getAccToken(exp_in_mins=120)
## End(Not run)
Get Public Account Info
Description
Get Public Account Info
Usage
rp_getAccts()
Value
Returns a data.frame for the user's Public Brokerage Account
Examples
## Not run: 
  # Return Public Brokerage Account Information
    rp_getAccts()
## End(Not run)
Get Account Portfolio V2
Description
Get Account Portfolio V2
Usage
rp_getAcctsPort(accountId)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
Value
Returns a data.frame for the user's specific Public Brokerage Account
Examples
## Not run: 
  # Return Public Brokerage Account Information
     my_acc <- rp_getAccts()
    my_port <- rp_getAcctsPort(accountId = my_acc$accountId)
## End(Not run)
Get All Instruments
Description
Get All Instruments
Usage
rp_getAllInstruments(
  typeFilter = NULL,
  tradingFilter = NULL,
  fractionalTradingFilter = NULL,
  optionTradingFilter = NULL,
  optionSpreadTradingFilter = NULL
)
Arguments
typeFilter | 
 = (Optional) Ex. "BOND","EQUITY","CRYPTO","INDEX","ALT"  | 
tradingFilter | 
 = (Optional) Ex. "BUY_AND_SELL","DISABLED","LIQUIDATION_ONLY"  | 
fractionalTradingFilter | 
 = (Optional) Ex. "DISABLED","BUY_AND_SELL","LIQUIDATION_ONLY"  | 
optionTradingFilter | 
 = (Optional) Ex. "DISABLED","BUY_AND_SELL","LIQUIDATION_ONLY"  | 
optionSpreadTradingFilter | 
 = (Optional) Ex. "DISABLED","BUY_AND_SELL","LIQUIDATION_ONLY"  | 
Value
Retrieves all available trading instruments with optional filtering capabilities as a data.frame.
Examples
## Not run: 
  # Fetches All Instruments From Public
    all_inst <- rp_getAllInstruments()
    
    # Fetches All equities enabled for trading fractional shares
    all_frac <- rp_getAllInstruments(typeFilter = "EQUITY", 
                                     tradingFilter = 'BUY_AND_SELL',
                                     fractionalTradingFilter = 'BUY_AND_SELL')
## End(Not run)
Get Specific Instrument Information
Description
Get Specific Instrument Information
Usage
rp_getInstrument(symbol, type)
Arguments
symbol | 
 = Trading Symbol Type: Ex. "AAPL"  | 
type | 
 = Symbol Type Ex. "EQUITY", "OPTION", "MULTI_LEG_INSTRUMENT", "CRYPTO", "ALT", "TREASURY", "BOND", "INDEX"  | 
Value
Retrieves specific trading instrument with optional filtering capabilities as a data.frame.
Examples
## Not run: 
  # Fetches AAPL instrument trading information
    this_ins <- rp_getInstrument(symbol = "AAPL", type="EQUITY")
## End(Not run)
Get Option Chains
Description
Get Option Chains
Usage
rp_getOptChains(accountId, ticker, type, exp)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
ticker | 
 = Ticker symbol: Ex. "SPY"  | 
type | 
 = Ticker Type: Ex. 'EQUITY','OPTION','MULTI_LEG_INSTRUMENT', 'CRYPTO', 'ALT','TREASURY', 'BOND', 'INDEX'  | 
exp | 
 = Option Expiration Date: Ex. "2025-08-08"  | 
Value
Retrieve option chains by symbol and return as a data.frame.
Examples
## Not run: 
 # Fetches Option Chains for Ticker Symbol
 my_acc <- rp_getAccts()
 rp_getOptChains(accountId = my_acc$accountId, ticker = 'SPY', type = "EQUITY", exp="2025-08-15") 
## End(Not run)
Get Option Expiration Dates
Description
Get Option Expiration Dates
Usage
rp_getOptExp(accountId, ticker, type)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
ticker | 
 = Ticker symbol: Ex. "SPY"  | 
type | 
 = Ticker Type: Ex. 'EQUITY','OPTION','MULTI_LEG_INSTRUMENT', 'CRYPTO', 'ALT','TREASURY', 'BOND', 'INDEX'  | 
Value
Retrieve option expiration dates for a specific ticker symbol as a data.frame.
Examples
## Not run: 
 # Fetches Option Expiry Dates Available
 my_acc <- rp_getAccts()
 rp_getOptExp(accountId = my_acc$accountId, ticker = "TSLA", type="EQUITY")
## End(Not run)
Order ID
Description
Order ID
Usage
rp_getOrderId()
Value
An auto generated character string to use for placing orders
Examples
## Not run: 
  rp_getOrderId()
## End(Not run)
Get Trading Quotes
Description
Get Trading Quotes
Usage
rp_getQuote(accountId, ticker, type)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
ticker | 
 = Ticker symbol: Ex. "SPY"  | 
type | 
 = Ticker Type: Ex. 'EQUITY','OPTION','MULTI_LEG_INSTRUMENT', 'CRYPTO', 'ALT','TREASURY', 'BOND', 'INDEX'  | 
Value
Retrieve real-time quotes as a data.frame.
Examples
## Not run: 
 # Fetches Multiple Real-Time Quotes
 my_acc <- rp_getAccts()
 rp_getQuote(accountId = my_acc$accountId, ticker = "TSLA", type="EQUITY")
 rp_getQuote(accountId = my_acc$accountId, ticker = 'SPY250807C00633000', type = "OPTION") 
 rp_getQuote(accountId = my_acc$accountId, 
             ticker = c("AAPL", 'SPY250807C00633000'), 
             type = c("EQUITY", "OPTION"))
## End(Not run)
Get Option Greeks
Description
Get Option Greeks
Usage
rp_get_greeks(accountId, osiOptionSymbol)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
osiOptionSymbol | 
 = option symbol  | 
Value
Request order cancellation & return as a data.frame.
Examples
## Not run: 
 # get account number
 my_acc <- rp_getAccts()
 
 # build option symbol
 this_op = .rp_make_opt_symbol(under_sym = "SPY", exp = "2025-08-22", 
                               type = "P", strike = 600)
 
 # get greeks
 rp_get_greeks(accountId = my_acc$accountId, osiOptionSymbol = this_op) 
## End(Not run)
Get Order Details
Description
Get Order Details
Usage
rp_get_order(accountId, orderId)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
orderId | 
 = The order ID  | 
Value
Retrieve order details & return as a data.frame.
Examples
## Not run: 
 # Fetches Specific Order
 my_acc <- rp_getAccts()
 rp_get_order(accountId = my_acc$accountId, 
              orderId = "c99be1dd-bb87-4f7a-803f-ec47226bf64e") 
## End(Not run)
Multi-Leg Live Order
Description
Multi-Leg Live Order
Usage
rp_order_multi(
  accountId,
  orderType,
  orderId,
  qty,
  leg_symbols,
  leg_types,
  leg_sides,
  leg_indicator,
  leg_ratios,
  tif,
  mins = NULL,
  lmtPrc = NULL
)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
orderType | 
 = The Type of order: Ex. 'MARKET','LIMIT', 'STOP', 'STOP_LIMIT'  | 
orderId | 
 = The order ID: use rp_getOrderId()  | 
qty | 
 = leg_ratio multiple: ex. '2' multiples the leg_ratios by 2X  | 
leg_symbols | 
 = Symbols: ex. c("SPY250815C00631000", "SPY250815C00631000")  | 
leg_types | 
 = Symbol types: ex. c("OPTION", "OPTION")  | 
leg_sides | 
 = The side for each leg: ex. c("BUY", "SELL")  | 
leg_indicator | 
 = Indicates if this is BUY to OPEN/CLOSE ex. c("OPEN", "OPEN")  | 
leg_ratios | 
 = The number of contracts to BUY/SELL: ex. c('5','5')  | 
tif | 
 = The time in for the order: 'DAY' or 'GTD"  | 
mins | 
 = Minutes till order expires.  | 
lmtPrc | 
 = The limit price. Used when orderType = LIMIT or orderType = STOP_LIMIT  | 
Value
Place a new multi-leg order and returns order id as a data.frame.
Examples
## Not run: 
 # Fetches costs associated with the type of order being placed
 my_acc <- rp_getAccts()
 # open bull-call spread for 0.25  (buy 2, sell 2)
rp_order_multi(accountId = my_acc$accountId, orderType = "LIMIT", qty = 2,
               leg_symbols = c("SPY250815C00630000","SPY250815C00632000"),
               leg_types = c("OPTION", "OPTION"), leg_sides = c("BUY","SELL"),
               leg_indicator = c("OPEN", "OPEN"), leg_ratios = c(1, 1),
               tif = "DAY", lmtPrc = 0.25, orderId = rp_getOrderId())
 # open long butterfly for 0.05 
 rp_order_multi(accountId = my_acc$accountId, orderType = "LIMIT", qty = 1, 
                leg_symbols = c("SPY250815C00630000",
                                "SPY250815C00631000",
                                "SPY250815C00632000"), 
                leg_types = c("OPTION", "OPTION", "OPTION"), 
                leg_sides = c("BUY","SELL","BUY"), 
                leg_indicator = c("OPEN","OPEN","OPEN"), 
                leg_ratios = c(1, 2, 1), tif = "DAY", lmtPrc = 0.05, 
                orderId = rp_getOrderId())
# open iron-condor
 rp_order_multi(accountId = my_acc$accountId, orderType = "LIMIT", qty = 1, 
                leg_symbols = c("SPY250815C00631000","SPY250815C00630000",
                                "SPY250815C00625000","SPY250815C00624000"), 
                leg_types = c("OPTION", "OPTION", "OPTION","OPTION"), 
                leg_sides = c("SELL","BUY","SELL","BUY"), 
                leg_indicator = c("OPEN","OPEN","OPEN","OPEN"), 
                leg_ratios = c(1, 1, 1, 1), tif = "DAY", lmtPrc = 0.30, 
                orderId = rp_getOrderId())
                
# covered call
  rp_order_multi(accountId = my_acc$accountId, orderType = "LIMIT", qty = 1, 
                                leg_symbols = c("RIVN","RIVN250815C00012000"),
                                leg_types = c("EQUITY", "OPTION"), 
                                leg_sides = c("BUY","SELL"), 
                                leg_indicator = c("OPEN", "OPEN"), 
                                leg_ratios = c(100, 1), 
                                tif = "DAY", lmtPrc = 11.75, 
                                orderId = rp_getOrderId())
## End(Not run)
Single-Leg Live Order
Description
Single-Leg Live Order
Usage
rp_order_single(
  accountId,
  ticker,
  symType,
  orderId,
  side = NULL,
  ordType = NULL,
  timeInForce = NULL,
  expirationTime = NULL,
  qty = NULL,
  amt = NULL,
  lmtPrc = NULL,
  stopPrc = NULL,
  openCloseIndicator = NULL
)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
ticker | 
 = Ticker symbol: Ex. "SPY"  | 
symType | 
 = Ticker Type: Ex. 'EQUITY','OPTION','MULTI_LEG_INSTRUMENT', 'CRYPTO', 'ALT','TREASURY', 'BOND', 'INDEX'  | 
orderId | 
 = The order ID: use rp_getOrderId()  | 
side | 
 = The Order Side BUY/SELL. For Options also include the openCloseIndicator. Ex. 'BUY' OR 'SELL'  | 
ordType | 
 = The Type of order: Ex. 'MARKET','LIMIT', 'STOP', 'STOP_LIMIT'  | 
timeInForce | 
 = The time in for the order: Ex. 'DAY' OR 'GTD"  | 
expirationTime | 
 = The expiration date. Only used when timeInForce is GTD, cannot be more than 90 days in the future  | 
qty | 
 = The order quantity. Used when buying/selling whole shares and when selling fractional. Mutually exclusive with amount  | 
amt | 
 = The order amount. Used when buying/selling shares for a specific notional value  | 
lmtPrc | 
 = The limit price. Used when orderType = LIMIT or orderType = STOP_LIMIT  | 
stopPrc | 
 = The stop price. Used when orderType = STOP or orderType = STOP_LIMIT  | 
openCloseIndicator | 
 = Used for options only. Indicates if this is BUY to OPEN/CLOSE  | 
Value
Submit a live single-leg order and and returns the order ID as a data.frame.
Examples
## Not run: 
 # Submit a live single-leg order to your Public Brokerage Account
 my_acc <- rp_getAccts() 
 
 # Option Order
 rp_order_singleLeg(accountId = my_acc$accountId, ticker = "SPY250815C00633000", symType = "OPTION", 
                    orderId = rp_getOrderId(), side = "BUY", ordType = "LIMIT", lmtPrc = 1.50, 
                    timeInForce = "DAY", qty = 1, openCloseIndicator = "OPEN")
               
 # Equity Fraction Share Order                   
 rp_preOrder_singleLeg(accountId = my_acc$accountId, ticker = "TSLA", symType = "EQUITY", 
                       side = "BUY", ordType = "MARKET", timeInForce = "DAY", qty = 0.50,
                       openCloseIndicator = "OPEN")
## End(Not run)
Preflight Multiple-Leg
Description
Preflight Multiple-Leg
Usage
rp_preOrder_multiLeg(
  accountId,
  orderType,
  qty,
  leg_symbols,
  leg_types,
  leg_sides,
  leg_indicator,
  leg_ratios,
  tif,
  mins = NULL,
  lmtPrc = NULL
)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
orderType | 
 = The Type of order: Ex. 'MARKET','LIMIT', 'STOP', 'STOP_LIMIT'  | 
qty | 
 = leg_ratio multiple: ex. '2' multiples the leg_ratios by 2X  | 
leg_symbols | 
 = Symbols: ex. c("SPY250815C00631000", "SPY250815C00631000")  | 
leg_types | 
 = Symbol types: ex. c("OPTION", "OPTION")  | 
leg_sides | 
 = The side for each leg: ex. c("BUY", "SELL")  | 
leg_indicator | 
 = Indicates if this is BUY to OPEN/CLOSE ex. c("OPEN", "OPEN")  | 
leg_ratios | 
 = The number of contracts to BUY/SELL: ex. c('5','5')  | 
tif | 
 = The time in for the order: 'DAY' or 'GTD"  | 
mins | 
 = Minutes till order expires.  | 
lmtPrc | 
 = The limit price. Used when orderType = LIMIT or orderType = STOP_LIMIT  | 
Value
Calculates the estimated financial impact of a complex multi-leg trade before execution and returns as a data.frame.
Examples
## Not run: 
 # Fetches costs associated with the type of order being placed
 my_acc <- rp_getAccts()
 # open bull-call spread for 0.25 (buy 2, sell 2)
 rp_preOrder_multiLeg(accountId = my_acc$accountId, orderType = "LIMIT", qty = 2, 
                      leg_symbols = c("SPY250815C00630000","SPY250815C00632000"),
                      leg_types = c("OPTION", "OPTION"), leg_sides = c("BUY","SELL"), 
                      leg_indicator = c("OPEN", "OPEN"), leg_ratios = c(1, 1), 
                      tif = "DAY", lmtPrc = 0.25)
 # open long butterfly for 0.05 
 rp_preOrder_multiLeg(accountId = my_acc$accountId, orderType = "LIMIT", qty = 1, 
                      leg_symbols = c("SPY250815C00630000",
                                      "SPY250815C00631000",
                                      "SPY250815C00632000"), 
                      leg_types = c("OPTION", "OPTION", "OPTION"), 
                      leg_sides = c("BUY","SELL","BUY"), 
                      leg_indicator = c("OPEN","OPEN","OPEN"), 
                      leg_ratios = c(1, 2, 1), tif = "DAY", lmtPrc = 0.05)
# open iron-condor
 rp_preOrder_multiLeg(accountId = my_acc$accountId, orderType = "LIMIT", qty = 1, 
                      leg_symbols = c("SPY250815C00631000","SPY250815C00630000",
                                      "SPY250815C00625000","SPY250815C00624000"), 
                      leg_types = c("OPTION", "OPTION", "OPTION","OPTION"), 
                      leg_sides = c("SELL","BUY","SELL","BUY"), 
                      leg_indicator = c("OPEN","OPEN","OPEN","OPEN"), 
                      leg_ratios = c(1, 1, 1, 1), tif = "DAY", lmtPrc = 0.30)
## End(Not run)
Preflight Single-Leg
Description
Preflight Single-Leg
Usage
rp_preOrder_singleLeg(
  accountId,
  ticker,
  symType,
  side = NULL,
  ordType = NULL,
  timeInForce = NULL,
  expirationTime = NULL,
  qty = NULL,
  amt = NULL,
  lmtPrc = NULL,
  stopPrc = NULL,
  openCloseIndicator = NULL
)
Arguments
accountId | 
 = Public Brokerage Account Number  | 
ticker | 
 = Ticker symbol: Ex. "SPY"  | 
symType | 
 = Ticker Type: Ex. 'EQUITY','OPTION','MULTI_LEG_INSTRUMENT', 'CRYPTO', 'ALT','TREASURY', 'BOND', 'INDEX'  | 
side | 
 = The Order Side BUY/SELL. For Options also include the openCloseIndicator. Ex. 'BUY' OR 'SELL'  | 
ordType | 
 = The Type of order: Ex. 'MARKET','LIMIT', 'STOP', 'STOP_LIMIT'  | 
timeInForce | 
 = The time in for the order: Ex. 'DAY' OR 'GTD"  | 
expirationTime | 
 = The expiration date. Only used when timeInForce is GTD, cannot be more than 90 days in the future  | 
qty | 
 = The order quantity. Used when buying/selling whole shares and when selling fractional. Mutually exclusive with amount  | 
amt | 
 = The order amount. Used when buying/selling shares for a specific notional value  | 
lmtPrc | 
 = The limit price. Used when orderType = LIMIT or orderType = STOP_LIMIT  | 
stopPrc | 
 = The stop price. Used when orderType = STOP or orderType = STOP_LIMIT  | 
openCloseIndicator | 
 = Used for options only. Indicates if this is BUY to OPEN/CLOSE  | 
Value
Calculates the estimated financial impact of a potential trade before execution and returns as a data.frame.
Examples
## Not run: 
 # Fetches costs associated with the type of order being placed
 my_acc <- rp_getAccts()
 rp_preOrder_singleLeg(accountId = my_acc$accountId, ticker = "SPY250815C00633000", 
                       symType = "OPTION", side = "BUY", ordType = "MARKET", 
                       timeInForce = "DAY", qty = 1, openCloseIndicator = "OPEN")
 rp_preOrder_singleLeg(accountId = my_acc$accountId, ticker = "TSLA", 
                       symType = "EQUITY", side = "BUY", ordType = "MARKET",
                       timeInForce = "DAY", qty = 0.50, 
                       openCloseIndicator = "OPEN")
## End(Not run)