Generated by API Evangelist
Written by API Evangelist tooling for Upstox's API. It is a proposal applied on top of the contract, not a document Upstox publishes.
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for OpenAPI definition Login API
version: 1.0.0
extends: openapi/upstox-login-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 4
- target: $.paths['/v3/login/auth/token/request/{client_id}'].post
update:
x-apievangelist-phrasing:
intent: Start an access token request for an indie app
effect: write
questions:
- How do I kick off token generation as an individual developer without a redirect flow?
- Can I turn off OTP verification when requesting a token for my own app?
instructions:
- text: Start a token request for app {client_id}.
slots:
client_id: path.client_id
- text: Initiate an indie-user token for {client_id} with secret {client_secret}.
slots:
client_id: path.client_id
client_secret: requestBody.client_secret
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/login/authorization/token'].post
update:
x-apievangelist-phrasing:
intent: Exchange an authorization code for an access token
effect: write
questions:
- How do I exchange the auth code from the redirect for an access token?
- Can I regenerate the extended access token when exchanging a code?
- What do I need to send to get an access token after the user logs in?
instructions:
- text: Exchange code {code} for an access token using app {client_id}, secret {client_secret}, redirect {redirect_uri}, grant {grant_type}.
slots:
code: requestBody.code
client_id: requestBody.client_id
client_secret: requestBody.client_secret
redirect_uri: requestBody.redirect_uri
grant_type: requestBody.grant_type
- text: Get a token from code {code} for {client_id} and set refresh_extended_token to {refresh_extended_token}.
slots:
code: requestBody.code
client_id: requestBody.client_id
refresh_extended_token: requestBody.refresh_extended_token
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/login/authorization/dialog'].get
update:
x-apievangelist-phrasing:
intent: Open the login dialog for user authorization
effect: read
questions:
- Where do I send a user to log in and authorize my trading app?
- How do I start the OAuth login flow with a state value?
instructions:
- text: Build the login dialog URL for {client_id} redirecting to {redirect_uri}.
slots:
client_id: query.client_id
redirect_uri: query.redirect_uri
- text: Send the user to authorize {client_id} with state {state}, returning to {redirect_uri}.
slots:
client_id: query.client_id
state: query.state
redirect_uri: query.redirect_uri
method: generated
generated: '2026-09-26'
- target: $.paths['/v2/logout'].delete
update:
x-apievangelist-phrasing:
intent: Log out and end the session
effect: destructive
questions:
- How do I invalidate my current access token?
- Can I log out of the trading session from my app?
instructions:
- text: Log me out of Upstox.
- text: End my current session and revoke this access token.
method: generated
generated: '2026-09-26'
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.