TradeKart API
TradeKart API is a Python wrapper around the official Groww SDK with a service-oriented design for trading workflows.
It provides custom service layers for common operations (Orders, Portfolio) with request models, response models, and consistent exception handling so teams can build reliable trading integrations faster.
Why TradeKart API
- Built on top of
growwapi, so you can continue to use Groww's official SDK. - Clean service abstraction for business use-cases instead of raw SDK calls everywhere.
- Typed request models for safer payload construction.
- Structured response handling for predictable downstream processing.
- Custom exceptions for easier debugging and application-level error handling.
System Design
Installation
pip install tradekartapi
Quick Start (Jupyter / Notebook)
from tradekartapi.client import TradeKartClient
from growwapi import GrowwAPI
access_token = "your_access_token"
client = TradeKartClient.from_access_token(access_token, GrowwAPI)
# Now client is ready to use the service
Service Architecture
TradeKart API uses:
- Groww SDK Adapter to initialize and hold the SDK client.
- Custom Services to expose trading operations as business-level methods.
- Models to keep request and response shapes explicit and reusable.
Available Services
- Order Service
- Place order
- Modify order
- Cancel order
- Get order status
- Get order list
- Get order detail
- Portfolio Service
- Get holdings
- Get positions
- Get positions by trading symbol
Margin Service
Margin-related service support is planned as part of upcoming releases.
Orders Example
from tradekartapi.models.orders import PlaceOrderRequest
from tradekartapi.models.annexures import (
Exchange, Segment, Product, OrderType, TransactionType, Validity
)
request = PlaceOrderRequest(
trading_symbol="SBIN",
quantity=1,
validity=Validity.DAY,
exchange=Exchange.NSE,
segment=Segment.CASH,
product=Product.CNC,
order_type=OrderType.MARKET,
transaction_type=TransactionType.BUY,
)
response = client.order_service.place_order(request)
print(response)
Portfolio Example
holdings = client.portfolio_service.get_holdings()
positions = client.portfolio_service.get_positions()
print([h.to_dict() for h in holdings])
print([p.to_dict() for p in positions])
Response Formats
Depending on the service method, you may receive:
- Native
dictfrom direct SDK passthrough methods. - Dataclass-based response objects from modeled service methods.
For dataclass responses, use:
to_dict()for Python dictionary output.to_json()for JSON string output.
Error Handling
TradeKart API raises structured custom exceptions for validation and service-level failures, making it easier to map failures to API responses or logs in production systems.
Compatibility
- Python
>=3.10 - Depends on
growwapi
Changelog
Full changelog: https://tradekartapi.readthedocs.io/en/latest/changelog.html
License
MIT
Metadata
Release files for tradekartapi 0.2.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tradekartapi-0.2.7.tar.gz | 28.3 kB | Without provenance | Details for tradekartapi-0.2.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tradekartapi-0.2.7-py3-none-any.whl | Python 3 | none | any | Details for tradekartapi-0.2.7-py3-none-any.whl |
Total release size: 70.1 kB
Release files / tradekartapi-0.2.7.tar.gz
| Download URL | tradekartapi-0.2.7.tar.gz |
|---|---|
| Size | 28.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
915b7404f7cbf5cd467c82cbe436f5a043443c7f5f23ffbb9525926e343ae234
|
|
BLAKE2b-256 checksum How to use checksums |
2c3e7578e963e887a9c66f64447df063c55ebb1c82176739b587e0ec5668c3fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / tradekartapi-0.2.7-py3-none-any.whl
| Download URL | tradekartapi-0.2.7-py3-none-any.whl |
|---|---|
| Size | 41.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
45351e6ccbfbd51e4a94e7f85fe744b3e96af748fa716855d298b68b9d9f64bc
|
|
BLAKE2b-256 checksum How to use checksums |
92790852a902e64fa723726291252cd28b96965b9b8963d031e2f1f154a9b1bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Security for tradekartapi 0.2.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.