One-click ordering

Optional setup · about 5 minutes

Without this you type the orders into your broker by hand. With it, one button hands the whole basket to Kite pre-filled, and you review and confirm. Free — Zerodha's Personal plan covers it — pick the Publisher app type.

Setup

1
Open the Kite developer console

Go to developers.kite.trade and sign in with the same Zerodha account you trade from.

2
Create an app

Pick Publisher — free, and its description is literally "HTML/JS buttons for order and basket placement", which is this. Name it anything.

Publisher is the recommendation because it has no API access at all, making it the least-privileged option that does the job. It is not a requirement: Kite's own offsite orders spec names no app type, and a Personal key works at the same endpoint. So if one is refused with Invalid api_key, try the other before assuming you copied the wrong string.

Copy the field labelled API key. The API secret sits right beside it and looks identical — a long run of letters and numbers — and pasting it here produces exactly that same Invalid api_key error from Kite.

3
Zerodha Client ID

Your Kite login ID — the one you type to log in, shaped like AB1234. Find it in Kite under Profile, or on any Zerodha statement or contract note.

4
Set the redirect URL

Paste this exactly:

https://sharecase-mu.vercel.app/

Kite sends you back here after you confirm the basket. It must match what you register, or the handoff is rejected — so if you run your own copy at a different address, register that address instead of this one.

5
Copy the API key

The app page shows an api_key — a short string like abcd1234efgh5678. Copy it. Ignore the API secret — this never needs it.

6
Paste it below

It's saved only in this browser and used only to build the handoff form. Nothing is transmitted to me, to GitHub, or anywhere else.

Your API key

← back to the workbench
Your key never leaves this device. This is a plain HTML + JavaScript page with no server and no backend — there is nowhere for it to be sent. It is written to your browser's own storage, read only to build the Kite handoff form, and removed the moment you clear site data or press Remove key. Nobody else — including me — can see it.
If the button later errors about the API key, check that the redirect URL matches exactly.

Is this safe?

An api_key only identifies the app — it can't touch your account. Orders still need your Zerodha login and 2FA on Kite's own site, and you approve every order there. The sensitive half is the API secret, which this never asks for.

Live prices

A sheet carries the prices it was built with, and those go stale — a stock that moved 20% since makes the whole basket's weights wrong. In the workbench, press Refresh prices from the market and it works out your share counts from today's prices instead.

Nothing to set up. No key, no signup, no account. Press the button and it fetches.

The one thing worth knowing: to learn a price, something has to be asked. The request goes to this app's own price endpoint, which looks the stocks up on Yahoo Finance. It sees the stock names and nothing else — not how much you hold, not who you are. It never happens on its own: you press the button and confirm the list. And if you skip it, every other feature still works on the sheet's own prices.