Skip to content
The official Python client library for the Kite Connect trading APIs
Branch: master
Clone or download
vividvilla Merge pull request #69 from zerodhatech/feat-travis-release
feat: release pypi package via travis
Latest commit 1a2286c Jan 6, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Update docs Feb 24, 2018
examples fix(example): Add missing variety param May 22, 2018
kiteconnect chore: bump version to 3.8.1 Jan 6, 2020
tests feat: Add GTT status consts Nov 6, 2019
.gitignore Add coverage files to gitignore Jan 2, 2018
.travis.yml feat: release pypi package via travis Jan 6, 2020 chore: upgrade version to v3.8.0 Nov 20, 2019
LICENSE Fix api documentation link Feb 24, 2018 Update pip installation command May 20, 2018
appveyor.yml chore: Quiet pip python2 Oct 14, 2019
dev_requirements.txt feat: Add GTT APIs Oct 14, 2019
pytest.ini Alias python test method to pytest Nov 23, 2017
setup.cfg fix: Use pywin32 instead of pypiwin32 Dec 7, 2018 chore: Update twisted dep May 3, 2019

The Kite Connect API Python client - v3

PyPI Build Status Windows Build Status

The official Python client for communicating with the Kite Connect API.

Kite Connect is a set of REST-like APIs that expose many capabilities required to build a complete investment and trading platform. Execute orders in real time, manage user portfolio, stream live market data (WebSockets), and more, with the simple HTTP API collection.

Zerodha Technology (c) 2018. Licensed under the MIT License.


Installing the client

You can install the pre release via pip

pip install --upgrade kiteconnect

Its recommended to update setuptools to latest if you are facing any issue while installing

pip install -U pip setuptools

Since some of the dependencies uses C extensions it has to compiled before installing the package.

Linux, BSD and macOS

  • On Linux, and BSDs, you will need a C compiler (such as GCC).


apt-get install libffi-dev python-dev python3-dev


yum install libffi-devel python3-devel python-devel


xcode-select --install

Microsoft Windows

Each Python version uses a specific compiler version (e.g. CPython 2.7 uses Visual C++ 9.0, CPython 3.3 uses Visual C++ 10.0, etc). So, you need to install the compiler version that corresponds to your Python version

For more details check official Python documentation.

API usage

import logging
from kiteconnect import KiteConnect


kite = KiteConnect(api_key="your_api_key")

# Redirect the user to the login url obtained
# from kite.login_url(), and receive the request_token
# from the registered redirect url after the login flow.
# Once you have the request_token, obtain the access_token
# as follows.

data = kite.generate_session("request_token_here", api_secret="your_secret")

# Place an order
    order_id = kite.place_order(tradingsymbol="INFY",
                                product=kite.PRODUCT_NRML)"Order placed. ID is: {}".format(order_id))
except Exception as e:"Order placement failed: {}".format(e.message))

# Fetch all orders

# Get instruments

# Place an mutual fund order

# Cancel a mutual fund order

# Get mutual fund instruments

Refer to the Python client documentation for the complete list of supported methods.

WebSocket usage

import logging
from kiteconnect import KiteTicker


# Initialise
kws = KiteTicker("your_api_key", "your_access_token")

def on_ticks(ws, ticks):
    # Callback to receive ticks.
    logging.debug("Ticks: {}".format(ticks))

def on_connect(ws, response):
    # Callback on successful connect.
    # Subscribe to a list of instrument_tokens (RELIANCE and ACC here).
    ws.subscribe([738561, 5633])

    # Set RELIANCE to tick in `full` mode.
    ws.set_mode(ws.MODE_FULL, [738561])

def on_close(ws, code, reason):
    # On connection close stop the main loop
    # Reconnection will not happen after executing `ws.stop()`

# Assign the callbacks.
kws.on_ticks = on_ticks
kws.on_connect = on_connect
kws.on_close = on_close

# Infinite loop on the main thread. Nothing after this will run.
# You have to use the pre-defined callbacks to manage subscriptions.

Run unit tests

python test


pytest -s tests/unit --cov-report html:cov_html --cov=./

Run integration tests

pytest -s tests/integration/ --cov-report html:cov_html --cov=./  --api-key api_key --access-token access_token

Generate documentation

pip install pdoc

pdoc --html --html-dir docs kiteconnect



You can’t perform that action at this time.