loader2
Login Open ICICI 3-in-1 Account

How can we help you ?

Choose the category to find the help you need

    Announcements

    All you need to know about Buy Now Pay Later (MTF) while investing in Stocks...
    Read More
    Fno Back

    Breeze API

    Can family members share a static IP?

    Yes, if they fall under SEBI-defined family relationships (e.g., parent/child, spouses).

    Steps to share an IP within family:

    Email breezeapi@icicisecurities.com with:

    Primary Account Match ID – Client who has the Static IP

    Secondary Account Match ID – Account in which Static IP needs to be mapped

    Relationship (e.g., Father/Son)

    Static IP Address

    Primary Account Match ID Secondary Account Match ID

    Relation of Primary Account holder with Secondary A/c holder

    For ex – Primary A/c holder/Secondary A/c holder

    Static IP Address
    8510880000 85108790000 Father/Son 10.23.44.55
    8510880000 85108790000 Husband/Wife 10.23.44.55

    ISEC will verify whether the accounts qualify as family accounts. The customer will also need to provide a declaration, and family members must give two-factor authentication consent for linkage.

     

    How often do I need to renew a static IP?

    Typically, static IPs are renewed annually (subscription based) or as per the terms set by your ISP or cloud provider.

    Does ICICI Direct log my static IP during trading?

    Yes. For compliance, traceability and audit purposes, we are required to log your static IP.

    These logs are retained for up to 5 years.

    Is it mandatory to provide a static IP for API-based trading?

    Yes. If you wish to access the broker’s trading systems via API using your own setup, in this case if you want to access Breeze API, providing a static IP is mandatory.

    How many static IPs can I provide?

    You can provide:

    • One Primary Static IP (mandatory)
    • One or more Secondary Static IPs (optional, for backup)

     

    Can I update (change) my static IP if needed?

    Yes, you can update your static IP once per calendar week.

    For urgent exceptions, email breezeapi@icicisecurities.com.

    Can a static IP be assigned to more than one client?

    No. A static IP can be mapped to only one client, unless it is being shared within a SEBI-defined family group.

    What is a Secondary IP and how does it help?

    A Secondary IP acts as a backup.

    If your Primary IP fails, the Secondary IP ensures uninterrupted access to Breeze API.

    It is optional but recommended.

    What happens if I try to place more than 10 orders per second (OPS)?

    Your orders will be rejected, and you will receive the relevant rejection message.

    How do I update my static IP (while retaining my newly generated API Key) on the website?

    Go to the ‘View Apps’ section in your dashboard and click the edit icon next to the IP entry field. Please note, a static IP can only be updated once a week. 

    How many orders per second are allowed before a strategy has to be classified as an algo?

    If your API usage stays within 10 orders per second (OPS) per exchange, you don’t need to register your strategy as an algo.

    Please Note: Breeze API does not allow you to place more than 10 order per second.

    If I change my Internet Service Provider, will my Static IP, which is registered with the previous ISP still work?

    No. If you change your ISP or switch to a plan that affects your IP, you will need to update your static IP.

    Can we use the unique Static IP from any location/ device?

    If it is obtained through an ISP, you can only access the Static IP through a device connected to the network provided by the ISP

    If it's obtained through a cloud provider, you can access it from any location/ device.

    Do I need different IPs for multiple strategies?

    No. One static IP is sufficient to run multiple strategies from the same server. You may add a secondary IP address as a backup, if required.

    What happens if my algo exceeds the threshold?

    If your algo tries to place more than 10 orders per second, Breeze API will automatically reject the orders. 

    What are the changes mentioned in the SEBI circular on API trading?

    As per the SEBI circular certain changes will come into effect that impact how you use APIs for trading.

    1. Static IP Address Is Mandatory from 01 October, 2025

    You must provide a static IP address which can be obtained from your cloud or telecom provider. You may also add a secondary IP address as a backup, if required.

    2. Existing API Keys Will Be Deleted

    All existing Breeze API keys will be deleted. You will need to generate a new API key to continue trading.

    3. New Guidelines on Algo vs Non-Algo Orders

    If your strategy sends 10 or fewer orders per second, it need not be registered as an algo order, and you may continue using APIs as is.

    4. Only One API Key Allowed for Non-Algo Orders

    As per SEBI, only one active API key can be linked to a static IP for API usage.

    How do you obtain a Static IP via Google Cloud?

    Please find a stepwise guide on How to obtain Static IP from Google Cloud

    Please note, ICICI Direct does not recommend any particular provider, you can obtain a Static IP from the Internet service provider or Cloud service provider of your choice

    Where do I find the SEBI circular stating the regulatory update on API trading?

    Please find the SEBI circular which mentions about the regulatory update: SEBI/HO/MIRSD/MIRSD-PoD/P/2025/0000013

    Do the changes in this SEBI Circular W.R.T Static IP apply to other Tools and Features offered by ICICI Direct?

    No, the changes explained in the SEBI Circular (SEBI/HO/MIRSD/MIRSD-PoD/P/2025/0000013) are only applicable while trading via Breeze API and does not apply to other trading tools and features.

    Can I create multiple API keys?

    No. As per SEBI’s new guidelines, you are allowed to generate only one API key per client.

    How do I create an API key after the implementation of the new protocols mentioned in the circular?

    As per the circular, from 01st October, 2025, a Static IP is needed to continue trading via APIs. All existing API keys will be deleted. To continue using Breeze API, you must generate a new API key and link it to your static IP.

    There are no major changes to the API key creation process. You simply need to provide your Primary Static IP and, optionally, a Secondary Static IP (as a backup) during setup.

    What is a Static IP?

     A static IP is a fixed, non-changing IP address assigned to your internet connection.

    What is the difference between Static and Dynamic IP?

    A Static IP is a fixed IP address assigned to your internet connection that doesn’t change.

    A dynamic IP, on the other hand, is an IP address that changes each time you connect to the internet.

    Who provides a Static IP?

    Your Internet Service Provider (ISP), such as Hathway, or a cloud service provider like AWS, Google Cloud, or Microsoft Azure.

    For detailed steps, refer to the Breeze API manual available on the ICICI Direct website: https://api.icicidirect.com/apiuser/home.

    What is the purpose of a Static IP address in algo trading?

    A static IP ensures secure and traceable API access between the client and the broker’s systems.

    It allows brokers to whitelist the IP and manage authorised use of API access.

    Can I use a VPN to generate a static IP?

    The use of a VPN to obtain a static IP is entirely based on the client’s discretion, depending on their requirements and the services offered by their VPN provider.

    While some VPNs offer static IPs, ICICI Direct does not recommend or endorse any specific provider or method, clients can obtain a static IP from their ISP or a cloud service provider

    What’s the cost of a static IP in India?

    It depends on your ISP or cloud provider. You can view these charges on the respective provider’s website.

    Do I need to update the IP if I change the router?

    If your static IP is obtained through your ISP, changing the router, network, or location may cause the IP to stop working. However, in the case where your ISP provides the feature to migrate your existing static IP to the new router, you may continue using the same static IP 

    Can I use a static IP with Wi-Fi?

    Yes. Static IPs work on both wired and wireless connections via your ISP or cloud provider.

    What happens if I change networks? How does a static IP work?

    If your static IP is obtained through your ISP, changing the router, network, or location may cause the IP to stop working.

    If it's obtained through a cloud provider, you can access it from any location.

    Is there any change to the Breeze API code?

    No, there are no changes required in your Breeze API code.

    You will only need to generate and apply the following according to the circular, applicable from 01, October, 2025

    • a new API Key

    • a new Secret Key

    • a new Session Token

    Do I need to include the static IP in the Breeze API header?

    No. IP verification is handled by us - you don’t need to explicitly pass it through  the API header.

    Who can I contact for queries or support?

    You can email breezeapi@icicisecurities.com for any assistance.

    Do I need a technical person to set it up?

    Not necessarily. Your ISP can assist you, or you can follow the setup guide from your cloud provider.

    For additional help, you can also reach out to breezeapi@icicisecurities.com.

    Who will be covered under the new API regulations?

    These changes will affect all algorithmic traders, including existing users of Breeze API.

    What are the objectives of the new API regulations?

    The main objectives are to:

    • Promote safer participation of retail investors in algorithmic trading
    • Set clear operational norms for API-based trading
    • Mandate static IP usage for secure, traceable connections
    • Introduce risk controls on order flow and algorithmic behaviour
    • Prevent unauthorised or unregulated access to broker APIs
    • Ensure compliance and auditability of algo trades
    Is a static IP mandatory for retail clients?

    Yes.

    • A primary static IP is mandatory
    • A secondary static IP (optional) can be added as a backup
    • You can update static IPs once per week

     

    What is Trading APIs?

    APIs (Application Programming interface), is a software intermediary that allows two applications to talk to each other. In the case of a typical Trading API, on one end would be an application of your market broker (ICICI Securities for example) and on the other end would be your code or application.

    Why use Trading APIs?

    There are numerous ways a Trading API can help you better your trading experience in not just stock markets, but other markets like commodities or forex as well. Trading APIs allow you to get live market prices, execute orders in real time, and help manage your orders and positions. Built especially for market participants with technical knowledge looking for personalised trading experience using innovative logic, Trading APIs can help one build a complete investment and trading platform in no time.

    What is Breeze API? What are the benefits of Breeze API for me?

    The Breeze API is a powerful Indian stock market API through which you can fetch live/historical stock market data, real-time OHLC and Options Chain data, order status over Websockets, automate your trading strategies and monitor your portfolio in real-time.

    What is the rate limit for Breeze API?

    Breeze API allows up to 100 calls per minute and 5,000 calls per day, enabling you to fetch real-time data, automate trades, and monitor your portfolio with no additional charges.

    These limits apply across all endpoints—whether you're pulling stock quotes, option chain data, or placing orders.

    How many SDKs does Breeze API have?

    SDK stands for software development kit. Also known as a devkit, the SDK is a set of software-building tools for a specific platform, including the building blocks, debuggers, and, often, a framework or group of code libraries such as a set of routines specific to an operating system (OS). You can find three SDKs in Breeze API:

    Can you use Options Chain on Breeze API platform?

    Option Chain API allows you to get option chain data for equities or indices within a given maturity period. To access the data, simply specify the instrument, the month the option expires, and whether you are interested in calls, puts, or both. Yes, Breeze allows you to use Options Chain API, where in a single API call you can get the entire chain with OHLC prices, Open Interest, Volume, and much more, and lets you filter the chain by the expiry date, right or strike price

    What is the cost or fees for using Breeze API?

    There is no cost or fees which customer needs to pay to access Breeze API or the data which we provide. All ICICIdirect customers can use Breeze API and create Apps free of all charges. 

    How can I use the API credentials and keys generated with Breeze API?

    After successfully registering your App on Breeze login page, the API key and Secret Key should be available in the view Apps section in the homepage. Generate a session token for the respective App. Plug all 3 App credentials (API key, Secret Key and Session Token) in the Breeze API endpoint and start using the API. Please refer to our articles to see the step wise process

    Which segments can I use Breeze API for? What kind of orders be placed?

    Breeze API currently supports trading in the following segments:

    1) Stocks (Cash/Equity)

    2) Derivatives (Futures & Options)

    Some examples of order types that can be placed using the Breeze API include:

    - Market orders

    - Limit orders

    - Stop Loss orders

    What is the rate limit on order placements?

    Currently, the rate limit for API is 75 per minute and 5000 calls in a day per user

    Is Breeze API available for all customer segments?

    At present, Breeze API is only available for Resident Indians and not for NRI customers.

    What kind of an API is Breeze and what languages does it support?

    Breeze is a Rest API and it supports various languages such as Javascript, Python, Csharp, Java etc

    Is there availability of F&O historical data with Breeze API?

    One of the main benefits of using a Trading API to formulate your trading strategies is that it provides a way to test your strategy on historical data. Historical data helps traders do a scenario analysis for their strategies and backtest them, which is one of the most important steps in creating an automated trading system. Backtesting gives the traders a chance to optimise their portfolio and also indicate how their strategy might perform in the future, assuming market conditions do not change a lot. Breeze API has historical data for Futures and Options trading and at present support 3 years of data which can be used free of cost.

    Can we use live streaming of prices with Breeze API?

    Yes, you may. We have websockets available for live data feed of markets. Please refer to our SDK page to know more.

    Is an SDK available for Breeze API?

    Yes, it is available. Please click on https://pypi.org/project/breeze-connect/ to see the complete list of Python SDK methods available and how to use them

    Do I need to learn programming/coding to use Breeze API?

    A basic level of programming knowledge is required to create strategies and use Breeze API.

    How do I connect my trading platform to the live prices Breeze?

    You will have to use websockets to subscribe to live feeds of markets. Please click on

    to see the complete list of Python SDK methods available, including websockets and how to use them.

    How does Breeze API keep my personal data secure?

    Breeze has SSL + (App Key, Secret Key) encryption + Checksum encryption of the whole data package so no amount of sniffing or hacking can reveal client data to the wannabe hacker.

    What is the process to use to the live streaming OHLC with Breeze API?

    Please refer to our SDK page which lists all the SDK methods including websockets for usage. Please click on https://pypi.org/project/breeze-connect/ to see the complete list of Python SDK methods available and how to use them. OHLC stands for Open, High, Low, and Close. It is a commonly used concept in trading and investing, especially in technical analysis. These four points of data, recorded for each trading period, form the foundation of many trading strategies and help investors assess market sentiment.

    Can you provide a step-by-step process to create and connect an App? What is a session key and why is it important?

    A session key is a temporary key that is only used once, during one stretch of time, for encrypting and decrypting data. This is similar to One Time Passwords (OTP) that have to be generated once in the morning to login, and help in encrypting a communication session for each app separately. This key or token expires in 24 hours after generation or at midnight

    Do I have to generate a session key everyday?

    Yes, it is required as per SEBI regulations

    How can I create and deploy strategies with Breeze API?

    You will have to create a strategy by writing a programming code using Breeze API endpoints and open source libraries. You can then deploy them in your personal laptop/desktop in a IDE (like Jupyter, Spyder). Where can I deploy strategies I have created? Strategies should be deployed in your personal desktop/laptop in an IDE (like Jupyter, Spyder, VS) using Breeze API endpoint.

    Can we use existing positions through Breeze API?

    Yes, you can check the live positions through get_postions() function of Breeze.

    How can I get access to Breeze API? What are the steps involved?

    To use Breeze API and code your strategy  follow these easy steps:

    Process to Get Breeze API Access:

    It is must to have a trading account with ICICI Direct - Breeze API is available only to registered ICICI Direct customers.

    1. Visit the Official Breeze API Portal: 

    Go to https://api.icicidirect.com/apiuser/home and login using your ICICI Direct credentials.

    2. Generate API Keys: 

    On the Breeze API dashboard, enter requisite details to generate your API Key and Secret Key.

    3. Generate a Session Token: 

    Navigate to the "View Apps" section to find your credentials and follow the instructions to generate your Session Token - required for authentication.

     

    Does Breeze API allows fetching of 1sec data?

    Yes, with Breeze API users can easily fetch 1sec, 1min data for historical backtesting purposes.

    Code:

    breeze.get_historical_data_v2(interval="1second", from_date= "2023-01-02T07:00:00.000Z", to_date= "2023-01-03T07:00:15.000Z", stock_code="ITC", exchange_code="NSE", product_type="cash")

    Is TOTP option available in ICICI Direct API?

    The TOTP option is live in ICICIdirect API login page. Users can enable it by visiting the settings option at homepage:

    https://www.icicidirect.com

    Is there any way to automate Session key generation?

    No, Session key needs to be generated everyday manually according to SEBI guidelines. It is valid for 24 hours or until midnight.

    Is there any go-to document to find python codes for beginners for Breeze API? How to fetch Option chain of any stock code using Breeze API?

    With Breeze API, get a snapshot of the entire Option Chain of any stock code by just customizing the code below:

    breeze.get_option_chain_quotes(stock_code="NIFTY", exchange_code="NFO", product_type="options", expiry_date="2022-12-25T06:00:00.000Z", right="call", strike_price="")

    Are there any charges for accessing historical data and using other features of Breeze API?

    No, with Breeze API you get access to all the features like backtesting historical data, fetching live data via websockets etc absolutely free of cost

    What is best way to call breeze.unsubscribe_feeds() function?

    On subscribing to feeds, the callback is supposed to listen to any incoming data packets until the websocket is disconnected.

    If we wish to stop feeds after a certain time , we can use time.sleep and then call unsubscribe_feeds .

    #Connect to websocket

    api.ws_connect()

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

    api.on_ticks = on_ticks

    api.subscribe_feeds(stock_token="13.1!1050")

    time.sleep(500)

    api.unsubscribe_feeds(stock_token="13.1!1050")

    How to get quotes of mentioned stock-code?

    To get the quotes of the mentioned stock code the following code can be customized:

    breeze.get_quotes(stock_code="ICIBAN",

    exchange_code="NFO",

    expiry_date="2022-08-25T06:00:00.000Z",

    product_type="futures",

    right="others",

    strike_price="0") Note: Please change exchange_code=“NFO” to get details about F&O

    How to get trade list of your account?

    To get trade list of your account use the below code:

    breeze.get_trade_list(from_date="2022-08-01T06:00:00.000Z",

    to_date="2022-08-19T06:00:00.000Z",

    exchange_code="NSE",

    product_type="",

    action="",

    stock_code="")

    Note: Please change exchange_code=“NFO” to get details about F&O

    How to use web sockets for fetching live data?

    Sample code for using websockets:

    from breeze_connect import BreezeConnect

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

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

    # Connect to websocket (it will connect to rate refresh server) breeze.ws_connect()

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

    # Assign the callbacks. breeze.on_ticks = on_ticks

    # subscribe stocksfeeds 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

    How to modify an order using Breeze API?

    Sample code for modifying order:

    breeze.modify_order(order_id="202208191100000001", exchange_code="NFO", order_type="limit", stoploss="0", quantity="250", price="290100", validity="day", disclosed_quantity="0", validity_date="2022-08-22T06:00:00.000Z")

    How to square off an order?

    Sample code for Squaring of Order:

    breeze.square_off(exchange_code="NSE",

    product="margin", stock_code="NIFTY", quantity="10", price="0", action="sell", order_type="market", validity="day", stoploss="0", disclosed_quantity="0", protection_percentage="", settlement_id="", cover_quantity="", open_quantity="", margin_amount="")

    Sample code for fetching portfolio details: breeze.get_portfolio_holdings(exchange_code="NFO", from_date="2022-08-01T06:00:00.000Z", to_date="2022-08-19T06:00:00.000Z", stock_code="", portfolio_type="")

    How can we allocate funds and know about the status while trading via Breeze API?

    For setting funds:

    breeze.set_funds(transaction_type="debit", amount="200", segment="Equity")

    For getting funds: breeze.get_funds()