Skip to main content

XTS-LAI

A simple Python SDK by LET'S ALGOIT for working with XTS Interactive and Market Data APIs.

The package provides easy methods for:

  • XTS login
  • Historical candle data
  • LTP and OHLC data
  • Bid and ask prices
  • ATM, ITM and OTM strike calculation
  • Option Greeks and indicators
  • Account information
  • Order placement and management
  • Expiry information
  • Instrument validation
  • Telegram alerts

Version

Current version:

1.1.3

Installation

Install version 1.1.3 directly with one command:

pip install XTS-LAI==1.1.3

To always install the latest available version:

pip install XTS-LAI

TA-Lib is optional. The SDK includes built-in pandas/numpy implementations for RSI and ATR, so Windows users do not need Microsoft C++ Build Tools. To use native TA-Lib separately:

pip install "XTS-LAI[talib]"

To upgrade later:

pip install --upgrade XTS-LAI

Import and Login

from XTS_LAI import LetsAlgoIt

xts_lai = login(
    interactive_api_key="YOUR_INTERACTIVE_API_KEY",
    interactive_api_secret="YOUR_INTERACTIVE_API_SECRET",
    market_api_key="YOUR_MARKET_API_KEY",
    market_api_secret="YOUR_MARKET_API_SECRET",
    clientID="YOUR_CLIENT_ID"
)

After successful login, all SDK functions are available through:

xts_lai

Market Data Functions

1. Historical Data

Fetch historical candle data for a trading symbol.

Function

get_historical_data(name, timeframe, interval)

Supported Timeframes

minute
2minute
3minute
4minute
5minute
10minute
15minute
30minute
60minute
day

Example

acc_df = xts_lai.get_historical_data(
    "ACC-EQ",
    "5minute",
    xts_lai.intervals_dict["5minute"]
)

print(acc_df)

2. Get LTP

Fetch the last traded price of a symbol.

Function

get_ltp(name)

Example

acc_ltp = xts_lai.get_ltp("ACC-EQ")
print(f"ACC LTP: {acc_ltp}")

3. Get OHLC Data

Fetch open, high, low and close values.

Function

get_ohlc_data(names)

Multiple Symbols

ohlc = xts_lai.get_ohlc_data(["ACC-EQ", "DMART-EQ"])
print(ohlc)

Single Symbol

open_price, high, low, close = xts_lai.get_ohlc_data("ACC-EQ")

print(f"OPEN: {open_price}")
print(f"HIGH: {high}")
print(f"LOW: {low}")
print(f"CLOSE: {close}")

4. Get Stock Data

Fetch LTP, open, high, low and close for multiple symbols.

Function

get_stock_data(names)

Example

stock_data = xts_lai.get_stock_data(["ACC-EQ", "DMART-EQ"])
print(stock_data)

5. Get Ask Price

Fetch the ask price of one or multiple symbols.

Function

get_askprice(names)

Example

askprice = xts_lai.get_askprice(["ACC-EQ"])
acc_askprice = askprice["ACC-EQ"]
print(f"ACC ASK PRICE: {acc_askprice}")

6. Get Bid Price

Fetch the bid price of one or multiple symbols.

Function

get_bidprice(names)

Example

bidprice = xts_lai.get_bidprice(["ACC-EQ"])
acc_bidprice = bidprice["ACC-EQ"]
print(f"ACC BID PRICE: {acc_bidprice}")

7. Get Quote

Fetch complete quote information.

Function

get_quote(names)

Example

quote = xts_lai.get_quote(["ACC-EQ"])
print(quote)

8. Get Open Interest

Fetch open interest values.

Function

open_interest_values(names)

Example

open_interest = xts_lai.open_interest_values(["BANKNIFTY"])
print(open_interest)

Option Functions

9. Get ATM, ITM or OTM Strike

Calculate the strike price using LTP, option type and multiplier.

Function

get_atm_itm_otm_strike(ltp, underlying, multiplier, script_type, expiry)

Multiplier Meaning

0   = ATM
1   = First OTM
2   = Second OTM
-1  = First ITM
-2  = Second ITM

Example

acc_ltp = xts_lai.get_ltp("ACC-EQ")

itm_strike = xts_lai.get_atm_itm_otm_strike(
    acc_ltp,
    "ACC-EQ",
    -1,
    "CE",
    0
)

print(f"ITM STRIKE: {itm_strike}")

10. Get ATM, ITM or OTM Option Script

Return the complete option trading symbol.

Function

get_atm_itm_otm_script(ltp, underlying, multiplier, script_type, expiry)

Example

option_script = xts_lai.get_atm_itm_otm_script(
    acc_ltp,
    "ACC-EQ",
    0,
    "CE",
    0
)

print(f"OPTION SCRIPT: {option_script}")

11. Get Option Greeks

Calculate option price and Greek values.

Function

get_option_greek(strike, expiry_date, asset, interest_rate, flag, scrip_type)

Available Flags

price
delta
delta2
theta
rho
vega
gamma
all_val

Example

delta = xts_lai.get_option_greek(
    22100,
    "2026-07-30T15:30:00",
    "NIFTY",
    2,
    "delta",
    "CE"
)

print(f"NIFTY DELTA: {delta}")

12. Get Expiry Dates

Return all available expiry dates for an underlying.

Function

get_expiry(name)

Example

expiry_dates = xts_lai.get_expiry("BANKNIFTY")
print(expiry_dates)

13. ATM Strike Selection

Return ATM call and put option scripts.

Function

ATM_Strike_Selection(Underlying, Expiry)

Example

expiry_dates = xts_lai.get_expiry("NIFTY")

ce_script, pe_script, strike = xts_lai.ATM_Strike_Selection(
    "NIFTY",
    expiry_dates[0]
)

print(f"CE SCRIPT: {ce_script}")
print(f"PE SCRIPT: {pe_script}")
print(f"ATM STRIKE: {strike}")

Instrument Functions

14. Check Valid Instrument

result = xts_lai.check_valid_instrument("BANKNIFTY")
print(result)

15. Get Lot Size

lot_size = xts_lai.get_lot_size("NIFTY26JUL25000CE")
print(f"LOT SIZE: {lot_size}")

16. Get Freeze Quantity

freeze_quantity = xts_lai.get_freeze_quantity("NIFTY26JUL25000CE")
print(f"FREEZE QUANTITY: {freeze_quantity}")

17. Get Split Order Variables

quantity, freeze_quantity, split_count, remaining_quantity = (
    xts_lai.get_split_order_variables("NIFTY26JUL25000CE", 10)
)

print(f"TOTAL QUANTITY: {quantity}")
print(f"FREEZE QUANTITY: {freeze_quantity}")
print(f"SPLIT COUNT: {split_count}")
print(f"REMAINING QUANTITY: {remaining_quantity}")

Account Functions

18. Get Balance

balance = xts_lai.get_balance()
print(f"AVAILABLE BALANCE: {balance}")

19. Get Live PnL

live_pnl = xts_lai.get_pnl(complete_order={}, script_details={})
print(f"LIVE PNL: {live_pnl}")

Order Functions

Warning: The following functions may place, modify or cancel live orders. Verify all parameters before running them.

20. Place Order

Market Order

order_id = xts_lai.order_placement(
    "ACC-EQ",
    1,
    0,
    0,
    "MARKET",
    "BUY",
    "MIS"
)

print(f"ORDER ID: {order_id}")

Limit Order

order_id = xts_lai.order_placement(
    "ACC-EQ", 1, 2700, 0, "LIMIT", "BUY", "MIS"
)

Stop-Limit Order

order_id = xts_lai.order_placement(
    "ACC-EQ", 1, 2704, 2700, "STOPLIMIT", "BUY", "MIS"
)

Stop-Market Order

order_id = xts_lai.order_placement(
    "ACC-EQ", 1, 0, 2700, "STOPMARKET", "BUY", "MIS"
)

21. Get Order History

status = xts_lai.get_orderhistory(order_id)
print(f"ORDER STATUS: {status}")

22. Get Executed Price

executed_price = xts_lai.get_executed_price(order_id)
print(f"EXECUTED PRICE: {executed_price}")

23. Order Report

order_status, order_price = xts_lai.order_report()
print(order_status)
print(order_price)

24. Modify Order

modified_order_id = xts_lai.modify_order(
    order_id,
    "LIMIT",
    1,
    2705,
    0,
    "MIS"
)

print(f"MODIFIED ORDER ID: {modified_order_id}")

25. Cancel Order

xts_lai.cancel_order(order_id)

26. Cancel All Orders

order_details = xts_lai.cancel_all_orders()
print(order_details)

Indicator Functions

27. Calculate PCR

pcr_data = xts_lai.calculate_pcr(call_data, put_data)
print(pcr_data)

28. Calculate VWAP

historical_data = xts_lai.get_historical_data("ACC-EQ", "5minute", 5)
vwap_data = xts_lai.calculate_vwap(historical_data)
print(vwap_data)

29. Calculate ATR

atr_data = xts_lai.atr(historical_data, 14)
print(atr_data)

30. Add SuperTrend

supertrend_data = xts_lai.add_super_trend(
    historical_data,
    10,
    3,
    "SuperTrend"
)

print(supertrend_data)

31. Calculate RSI

rsi = xts_lai.calculate_rsi(historical_data["close"], 14)
print(rsi)

32. Calculate Moving Average

moving_average = xts_lai.calculate_ma(
    historical_data["close"],
    20,
    "EMA"
)

print(moving_average)

33. Calculate Linear Regression

linear_regression = xts_lai.calculate_linreg(
    historical_data["close"],
    36
)

print(linear_regression)

34. Calculate Indicators

indicator_data = xts_lai.calculate_indicators(
    historical_data,
    rsi_length=14,
    ma_length=14,
    ma_type="SMA",
    linreg_length=36
)

print(indicator_data)

35. Detect RSI Tops and Bottoms

result = xts_lai.detect_rsi_tops_bottoms(
    indicator_data,
    rsi_col="RSI",
    upper_band=70,
    lower_band=30,
    prd=10,
    min_bars=5,
    max_dis=100
)

print(result)

Additional Functions

36. Get Spot Value

spot_value = xts_lai.get_spot_value("CRUDEOIL", "FUTCOM")
print(spot_value)

37. Check Expiry Date

expiry_dates = xts_lai.get_expiry("NIFTY")
is_available = xts_lai.check_expiry_date("NIFTY", expiry_dates[0])
print(is_available)

38. Get Bid and Ask

ask, bid = xts_lai.get_bid_ask("ACC-EQ")
print(f"ASK: {ask}")
print(f"BID: {bid}")

39. Get Combined Data

combined_data = xts_lai.get_combined_data(
    instrument_id=12345,
    start="Jul 01 2026 091500",
    end="Jul 16 2026 153000"
)

print(combined_data)

40. Get Raw Script Data

raw_data = xts_lai.get_data_for_single_script(["ACC-EQ"])
print(raw_data)

41. Send Telegram Alert

xts_lai.send_telegram_alert(
    message="XTS-LAI alert",
    receiver_chat_id="YOUR_CHAT_ID",
    bot_token="YOUR_BOT_TOKEN"
)

Complete Basic Usage

from XTS_LAI import LetsAlgoIt

xts_lai = login(
    interactive_api_key="YOUR_INTERACTIVE_API_KEY",
    interactive_api_secret="YOUR_INTERACTIVE_API_SECRET",
    market_api_key="YOUR_MARKET_API_KEY",
    market_api_secret="YOUR_MARKET_API_SECRET",
    clientID="YOUR_CLIENT_ID"
)

acc_df = xts_lai.get_historical_data(
    "ACC-EQ",
    "5minute",
    xts_lai.intervals_dict["5minute"]
)
print(acc_df)

acc_ltp = xts_lai.get_ltp("ACC-EQ")
print(f"ACC LTP: {acc_ltp}")

ohlc = xts_lai.get_ohlc_data(["ACC-EQ"])
print(ohlc)

askprice = xts_lai.get_askprice(["ACC-EQ"])
print(askprice)

bidprice = xts_lai.get_bidprice(["ACC-EQ"])
print(bidprice)

expiry_dates = xts_lai.get_expiry("BANKNIFTY")
print(expiry_dates)

is_valid = xts_lai.check_valid_instrument("BANKNIFTY")
print(is_valid)

Important Notes

  • Valid XTS API credentials are required.
  • Your public IP may need to be added to the XTS trusted-IP list.
  • Interactive API credentials are required for order functions.
  • Market Data credentials are required for LTP, OHLC and historical-data functions.
  • Check all order parameters before sending live orders.
  • Never place API credentials directly inside publicly shared source code.

About LET'S ALGOIT

XTS-LAI is maintained by LET'S ALGOIT to provide a simple Python interface for XTS trading and market-data operations.

Metadata

Release files for XTS-LAI 1.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for XTS-LAI 1.1.3
File Size Uploaded
xts_lai-1.1.3.tar.gz 33.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for XTS-LAI 1.1.3
File Interpreter ABI Platform
xts_lai-1.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 61.2 kB

Release files / xts_lai-1.1.3.tar.gz

Download URL xts_lai-1.1.3.tar.gz
Size 33.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9e5ee5345c7126b1d39c3c793eea9380ad7f5a5e78ce13572ab3a8aaf5ff7251
BLAKE2b-256 checksum
How to use checksums
f1871ed68981b4f70a3d4ce9f08c5015281d085243f937ef18fb8cde5e6cd3a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.0

Release files / xts_lai-1.1.3-py3-none-any.whl

Download URL xts_lai-1.1.3-py3-none-any.whl
Size 28.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2486ba99a228c78c4911283c045db59788b963a8d5722508eaf65dd2341ad8f8
BLAKE2b-256 checksum
How to use checksums
2a4396c3dec4c15aa83bff8beca7cf6c925ac7b33ee00af02f2b34fb38020e1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.0

Release history Release notifications | RSS feed

This release

1.1.3 This release

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page