Skip to main content

ICICI Direct Breeze

Project description

UAT Breeze Connect SDK

This is a package to integrate streaming stocks for subscribed users & call APIs through which you can fetch live/historical data, automate your trading strategies, and monitor your portfolio in real time.

Setup virtual environment

You must install the virtualenv package via pip

pip install virtualenv

You should create breeze virtual environment via virtualenv

virtualenv -p python3 breeze_venv

And then, You can activate virtual environment via source

source breeze_venv/bin/activate

Installing the client

You can install the latest release via pip

pip install --upgrade breeze-connect

Or, You can also install the specific release version via pip

pip install breeze-connect==1.0.12

Websocket Usage

from breeze_connect import BreezeConnect

# Initialize SDK
breeze = BreezeConnect(api_key="your_api_key")

# Obtain your session key from https://api.icicidirect.com/apiuser/login?api_key=YOUR_API_KEY
# Incase your api-key has special characters(like +,=,!) then encode the api key before using in the url as shown below.
import urllib
print("https://api.icicidirect.com/apiuser/login?api_key="+urllib.parse.quote_plus("your_api_key"))

# Generate Session
breeze.generate_session(api_secret="your_secret_key",
                      session_token="your_api_session")

# Connect to websocket
breeze.ws_connect()

# Callback to receive ticks.
def on_ticks(ticks):
    print("Ticks: {}".format(ticks))

# Assign the callbacks.
breeze.on_ticks = on_ticks

# subscribe stocks feeds
breeze.subscribe_feeds(exchange_code="NFO", stock_code="ZEEENT", product_type="options", expiry_date="31-Mar-2022", strike_price="350", right="Call", get_exchange_quotes=True, get_market_depth=False)

# subscribe stocks feeds by stock-token
breeze.subscribe_feeds(stock_token="1.1!500780")

# unsubscribe stocks feeds
breeze.unsubscribe_feeds(exchange_code="NFO", stock_code="ZEEENT", product_type="options", expiry_date="31-Mar-2022", strike_price="350", right="Call", get_exchange_quotes=True, get_market_depth=False)

# unsubscribe stocks feeds by stock-token
breeze.unsubscribe_feeds(stock_token="1.1!500780")

NOTE

Examples for stock_token are "4.1!38071" or "1.1!500780".

exchange_code must be 'BSE', 'NSE', 'NDX', 'MCX' or 'NFO'.

stock_code should not be an empty string. Examples for stock_token are "WIPRO" or "ZEEENT".

product_type can be either 'Futures', 'Options' or an empty string. product_type can not be an empty string for exchange_code 'NDX', 'MCX' and 'NFO'.

strike_date can be in DD-MMM-YYYY(Ex.: 01-Jan-2022) or an empty string. strike_date can not be an empty string for exchange_code 'NDX', 'MCX' and 'NFO'.

strike_price can be float-value in string or an empty string. strike_price can not be an empty string for product_type 'Options'.

right can be either 'Put', 'Call' or an empty string. right can not be an empty string for product_type 'Options'.

Either get_exchange_quotes must be True or get_market_depth must be True. Both get_exchange_quotes and get_market_depth can be True, But both must not be False.


API Usage

from breeze_connect import BreezeConnect

# Initialize SDK
breeze = BreezeConnect(api_key="your_api_key")

# Obtain your session key from https://api.icicidirect.com/apiuser/login?api_key=YOUR_API_KEY
# Incase your api-key has special characters(like +,=,!) then encode the api key before using in the url as shown below.
import urllib
print("https://api.icicidirect.com/apiuser/login?api_key="+urllib.parse.quote_plus("your_api_key"))

# Generate Session
breeze.generate_session(api_secret="your_secret_key",
                      session_token="your_api_session")

# Generate ISO8601 Date/DateTime String
import datetime
iso_date_string = datetime.datetime.strptime("28/02/2022","%d/%m/%Y").isoformat()[:10] + 'T05:30:00.000Z'
iso_date_time_string = datetime.datetime.strptime("28/02/2022 23:59:59","%d/%m/%Y %H:%M:%S").isoformat()[:19] + '.000Z'

# Following are the complete list of API method:

# Get Demat Holding details of your account.
breeze.get_demat_holdings()

# Get Funds details of your account.
breeze.get_funds()

# Set Funds of your account by transaction-type as "Credit" or "Debit" with amount in numeric string as rupees and segment-type as "Equity" or "FNO".
breeze.set_funds(transaction_type="debit", 
                    amount="200",
                    segment="Equity")

# Get Historical Data for specific stock-code by mentioned interval either as "minute", "5minute", "30minutes" or as "day".
breeze.get_historical_data(interval="1minute",
                            from_date= "2021-11-15T07:00:00.000Z",
                            to_date= "2021-11-17T07:00:00.000Z",
                            stock_code="AXIBAN",
                            exchange_code="NFO",
                            product_type="futures",
                            expiry_date="2021-11-25T07:00:00.000Z",
                            option_type="others",
                            strike_price="0")

# Add Margin to your account.
breeze.add_margin(exchange_code="BSE",
                    product_type="margin",
                    stock_code="TCS",
                    order_settlement="2021220",
                    add_amount="100",
                    margin_amount="3817.10",
                    open_quantity="10",
                    cover_quantity="0",
                    category_INDSTK="",
                    add_margin_amount="",
                    expiry_date="",
                    option_type="")

# Get Margin of your account.
breeze.get_margin(exchange_code="NSE")

# Place an order from your account.
breeze.place_order(stock_code="ITC",
                    exchange_code="NFO",
                    product="futures",
                    action="buy",
                    order_type="limit",
                    stoploss="0",
                    quantity="3200",
                    price="200",
                    validity="day",
                    validity_date="2022-03-24T06:00:00.000Z",
                    disclosed_quantity="0",
                    expiry_date="2022-03-31T06:00:00.000Z",
                    right="others",
                    strike_price="0",
                    user_remark="Test")

# Get an order details by exchange-code and order-id from your account.
breeze.get_order_detail(exchange_code="NSE",
                            order_id="20220228N100000001")

# Get order list of your account.
breeze.get_order_list(exchange_code="NSE",
                          from_date="2022-02-01T10:00:00.000Z",
                          to_date="2022-02-30T10:00:00.000Z")

# Cancel an order from your account whose status are not Executed. 
breeze.cancel_order(exchange_code="NSE",
                              order_id="20220228N100000001")

# Modify an order from your account whose status are not Executed. 
breeze.modify_order(order_id="202202251300000001",
                              exchange_code="NFO",
                              order_type="limit",
                              stoploss="0",
                              quantity="250",
                              price="290100",
                              validity="day",
                              disclosed_quantity="0",
                              validity_date="2022-02-30T10:00:00.000Z")

# Get Portfolio Holdings of your account.
breeze.get_portfolio_holdings(exchange_code="NFO",
                                  from_date="2022-02-01T06:00:00.000Z",
                                  to_date="2022-02-30T10:00:00.000Z",
                                  underlying="",
                                  portfolio_type="")

# Get Portfolio Positions from your account.
breeze.get_portfolio_positions()

# Get quotes of mentioned stock-code
breeze.get_quotes(stock_code="AXIBAN",
                      exchange_code="NFO",
                      expiry_date="2022-03-31T06:00:00.000Z",
                      product_type="futures",
                      right="others",
                      strike_price="0")

# Sqauare off an order
breeze.square_off(source_flag="",
                 stock_code="NIFTY",
                 exchange_code="NFO",
                 quantity="50",
                 price="0",
                 order_flow="sell",
                 order_type="market",
                 validity="day",
                 stoploss="0",
                 disclosed_quantity="0",
                 protection_percentage="",
                 segment_code="",
                 order_settlement="",
                 margin_amount="",
                 open_quantity="",
                 cover_quantity="",
                 product="futures",
                 expiry_date="2022-03-31T06:00:00.000Z",
                 exercise_type="",
                 option_type="",
                 strike_price="0",
                 trade_date="2022-03-16T06:00:00.000Z",
                 trade_password="",
                 option_exercise_type="*E")

# Get trade list of your account.
breeze.get_trade_list(from_date="2022-01-28T06:00:00.000Z",
                          to_date="2022-02-15T06:00:00.000Z",
                          exchange_code="NSE",
                          product_type="",
                          action="",
                          stock_code="")

# Get trade detail of your account.
breeze.get_trade_detail(exchange_code="NSE",
                            order_id="20220228N100000001")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

breeze_connect-1.0.12.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

breeze_connect-1.0.12-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file breeze_connect-1.0.12.tar.gz.

File metadata

  • Download URL: breeze_connect-1.0.12.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for breeze_connect-1.0.12.tar.gz
Algorithm Hash digest
SHA256 58bcefcaf7890dc8bf91837fbf2cba2189a2f1a7fa66d4b75b5fb130aa9ecde9
MD5 8dad1597ad2a5a7fffec34e5e0536527
BLAKE2b-256 d39e6dd6c123c97e7166bc19cf05c466cdebedb9f005a1a50d17bcf71384fbaf

See more details on using hashes here.

File details

Details for the file breeze_connect-1.0.12-py3-none-any.whl.

File metadata

  • Download URL: breeze_connect-1.0.12-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for breeze_connect-1.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 432c3dfc87bd12f301b7a36dc8216dce2cc412499ef8864e2e94ed66e354c942
MD5 d66dddd5c371d581bd04fcd8dc08a9f6
BLAKE2b-256 c3a76a1058fcdbc7a0b06790d091bbae0014965dd4b4016d088a350e732b3635

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page