Skip to main content

Firstock Developer SDK for Python

Project description

Firstock Connect API Python Client

The official Python library for the Firstock Connect API, providing a seamless interaction with Firstock's trading and financial data services. This library has been designed for developers to easily integrate Firstock's advanced trading capabilities into their Python applications.

Features

  • HTTP calls are converted to methods.
  • JSON responses are wrapped into Python-compatible objects.
  • The handling of WebSocket connections is automated.

Installation

This module is installed via pip:

pip install firstock

Getting started with API

The API consists of five major section

  • Login & Profile
  • Orders & Report
  • Market Connect

Login

For the Login process we require to generate the appkey and vendor code by logging in with the firstock credentials in the give link Key Generation.

from firstock import firstock

login = firstock.login(
    userId="{{userID}}",
    password="{{Password}}",
    TOTP="{{TOTP}}",
    vendorCode="{{vendorCode}}",
    apiKey="{{apiKey}}",
  )

Logout

from firstock import firstock

logout = firstock.logout(userId="{{userId}}")

User Details

from firstock import firstock

userDetails = firstock.userDetails(userId="{{userId}}")

Place Order

from firstock import firstock

placeOrder = firstock.placeOrder(
    userId="{{userId}}",
    exchange="NSE",
    tradingSymbol="ITC-EQ",
    quantity="1",
    price="300",
    product="I",
    transactionType="B",
    priceType="LMT",
    retention="DAY",
    triggerPrice="0",
    remarks="Python Package Order"
)

Order Margin

from firstock import firstock

orderMargin = firstock.orderMargin(
    userId="{{userId}}",
    exchange="NSE",
    tradingSymbol="ITC-EQ",
    quantity="1",
    priceType="LMT",
    product="C",
    price="350",
    transactionType="B"
)

Order Book

from firstock import firstock

orderBook = firstock.orderBook(userId="{{userId}}")

Cancel Order

from firstock import firstock

cancelOrder = firstock.cancelOrder(
    userId="{{userId}}",
    orderNumber="25063000011862"
)

Modify Order

from firstock import firstock

modifyOrder = firstock.modifyOrder(
    userId="{{userId}}",
    orderNumber="25070100015934",
    quantity="1",
    price="418",
    triggerPrice="0",
    tradingSymbol="IDEA-EQ",
    priceType="LMT",
    retention="DAY",
    mkt_protection="0.5",
    product="C"
)

Single Order History

from firstock import firstock

singleOrderHistory = firstock.singleOrderHistory(
    userId="{{userId}}",
    orderNumber="25063000011911"
)

Trade Book

from firstock import firstock

tradeBook = firstock.tradeBook(userId="{{userId}}")

Position Book

from firstock import firstock

positionBook = firstock.positionBook(userId="{{userId}}")

Convert Product

from firstock import firstock

convertProduct = firstock.productConversion(
    userId="{{userId}}",
    transactionType="B",
    tradingSymbol="ITC-EQ",
    quantity="1",
    product="C",
    previousProduct="I",
    positionType="DAY",
    exchange="NSE"
)

Holdings

from firstock import firstock

holdings = firstock.holdings(userId="{{userId}}")

Limits

from firstock import firstock

limits = firstock.limit(userId="{{userId}}")

Basket Margin

from firstock import firstock

basketMargin = firstock.basketMargin(
    userId="{{userId}}",
    exchange="NSE",
    transactionType="B",
    product="C",
    tradingSymbol="RELIANCE-EQ",
    quantity="1",
    priceType="MKT",
    price="0",
    BasketList_Params=[
        {
            "exchange": "NSE",
            "tradingSymbol": "IDEA-EQ",
            "quantity": "1",
            "transactionType": "B",
            "price": "0",
            "product": "C",
            "priceType": "MKT"
        }
    ]
)

Get Security Info

from firstock import firstock

getSecurityInfo = firstock.securityInfo(
    userId="{{userId}}",
    exchange="NSE",
    tradingSymbol="NIFTY"
)

Get Quote

from firstock import firstock

getQuotes = firstock.getQuote(
    userId="{{userId}}",
    exchange="NSE",
    tradingSymbol="NIFTY"
)

Get Index List

from firstock import firstock

getIndexList = firstock.indexList(userId="{{userId}}")

Option Chain

from firstock import firstock

optionChain = firstock.optionChain(
    userId="{{userId}}",
    exchange="NFO",
    symbol="NIFTY",
    strikePrice="23150",
    expiry="03JUL25",
    count="5"
)

Search Scrips

from firstock import firstock

searchScrips = firstock.searchScrips(
    userId="{{userId}}",
    stext="ITC"
)

Get Quote LTP

from firstock import firstock

getQuoteLtp = firstock.getQuoteltp(
    userId="{{userId}}",
    exchange="NSE",
    tradingSymbol="RELIANCE-EQ"
)

Get Multi Quote

from firstock import firstock

multiQuote = firstock.getMultiQuotes(
    userId="{{userId}}",
    dataToken=[
        {
            "exchange": "NSE",
            "tradingSymbol": "Nifty 50"
        },
        {
            "exchange": "NFO",
            "tradingSymbol": "NIFTY03APR25C23500"
        }
    ]
)

Get Multi Quote LTP

from firstock import firstock

multiQuoteLtp = firstock.getMultiQuotesltp(
    userId="{{userId}}",
    dataToken=[
        {
            "exchange": "NSE",
            "tradingSymbol": "Nifty 50"
        },
        {
            "exchange": "NSE",
            "tradingSymbol": "Nifty Bank"
        }
    ]
)

Brokerage Calculator

from firstock import firstock

brokerageCalc = firstock.brokerageCalculator(
    userId="{{userId}}",
    exchange="NFO",
    tradingSymbol="RELIANCE27FEB25F",
    transactionType="B",
    product="M",
    quantity="500",
    price="125930",
    strike_price="0",
    inst_name="FUTSTK",
    lot_size="1"
)

Get Expiry

from firstock import firstock

getExpiry = firstock.getExpiry(
    userId="{{userId}}",
    exchange="NSE",
    tradingSymbol="NIFTY"
)

Time Price Series

from firstock import firstock

timePriceSeries = firstock.TimePriceSeries(
    userId="{{userId}}",
    exchange="NSE",
    tradingSymbol="Nifty 50",
    startTime="13/02/2023 09:45:45",
    endTime="13/12/2023 13:56:34",
    interval="30"
)

Get Holdings Details

from firstock import firstock

holdings_details = firstock.getHoldingsDetails(
    userId="{{userId}}"
)

Refer to the Firstock Connect Documentation for the complete list of supported methods.

Changelog

  • The Python package has been updated to automatically convert passwords into SHA256 hashes prior to submission to the login URL.

  • The package now includes a multi-login feature, enabling simultaneous login for multiple users, with each user's session being individually stored.

  • For all APIs, it is now required to pass the userId. The corresponding jKey session linked to the userId will be utilized for executing the API.

  • The following methods have been updated to require trading symbols instead of tokens:

    • Get Multi Quotes LTP
    • Get Multi Quotes
    • Day Interval Time Price Series
    • Time Price Series
    • Security Info
    • Get Quotes
  • The method for accessing the websocket has been entirely revamped. Detailed information will be available in an upcoming blog post. Additionally, sample code illustrating the new method can be found in the examples section.

[1.1.0] - 2026-01-31

Changed

  • Minor version bump for compatibility updates.

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

firstock-1.1.0.tar.gz (38.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

firstock-1.1.0-py3-none-any.whl (94.6 kB view details)

Uploaded Python 3

File details

Details for the file firstock-1.1.0.tar.gz.

File metadata

  • Download URL: firstock-1.1.0.tar.gz
  • Upload date:
  • Size: 38.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for firstock-1.1.0.tar.gz
Algorithm Hash digest
SHA256 47bc080f3aaf823ef0cf4f5e5c1fd0dd73179caf83643f214cb6a9a3a91c0008
MD5 3ed98d07e13f91791ddd59c699fdcc0d
BLAKE2b-256 14e36053b069243356829e26f99da14b8e51fff31f884796c02834ba59fb76cc

See more details on using hashes here.

File details

Details for the file firstock-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: firstock-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 94.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for firstock-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 790da32a51ef5ce7e7bbb0ccc83592ff8d831464243e5359bc8c2fcd5ac6b428
MD5 d605a79be24696cfcae6d9f207e71d6d
BLAKE2b-256 1dd5160e7749f5bc722e260977811afdae77003077fca6a316fc83822dfcb0a5

See more details on using hashes here.

Supported by

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