I'm getting an "Insufficient permission for that call" error when placing GTT orders via the API, despite following the official documentation exactly. I need confirmation on whether GTT requires separate permission enablement in the developer console.
Setup Details: - Kite Connect API Version: 3 - Client Library: pykiteconnect (latest version) - Language: Python 3 - App Type: Personal (Free) - API Key: (working fine for regular orders) - Access Token: Valid and working for place_order, holdings, ltp, etc.
Issue: Regular market orders work perfectly, but GTT placement fails consistently with: ``` Insufficient permission for that call ```
# Get current LTP for last_price parameter ltp_data = kite.ltp([f"{exchange}:{tradingsymbol}"]) last_price = ltp_data.get(f"{exchange}:{tradingsymbol}", {}).get('last_price', trigger_price)
Error: ``` Exception: Insufficient permission for that call. ```
What I've Verified: ✅ Regular orders (place_order) work fine ✅ Holdings and positions API work ✅ LTP data fetch works ✅ Access token is valid and not expired ✅ Code matches official GTT documentation exactly ✅ Using PRODUCT_CNC as required for equity GTT
Questions: 1. Does GTT require a separate permission to be enabled in the Kite Connect app settings on the developer console? 2. Is there a specific API scope/permission for GTT that needs to be activated? 3. Are there any account-level restrictions on GTT API access (like minimum account age, trading volume, etc.)? 4. Is GTT available for all Zerodha accounts or only specific account types? 5. 4. Is GTT available for Paid credit apps types only?
Additional Context: The app was created recently and has basic permissions enabled. I can place regular orders, fetch holdings, and access market data without issues. Only GTT placement fails.
Would appreciate guidance on whether I need to enable GTT permissions explicitly in the app settings or if there's another configuration step I'm missing.
With the Kite Connect Personal app, it's not possible to access real-time or historical market data. For more details, you might find this thread helpful.
The call ltp_data = kite.ltp([f"{exchange}:{tradingsymbol}"]) has triggered a permission issue. If you wish to fetch LTP and place GTT orders, you can opt for the paid version of the API, i.e., the Connect API.
ltp_data = kite.ltp([f"{exchange}:{tradingsymbol}"])has triggered a permission issue. If you wish to fetch LTP and place GTT orders, you can opt for the paid version of the API, i.e., the Connect API.