Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/anurag-roy/kiteconnect-ts/llms.txt

Use this file to discover all available pages before exploring further.

KiteConnect supports direct mutual fund transactions through the BSE StarMF platform. You can place lump-sum buy and sell orders, set up recurring Systematic Investment Plans (SIPs) with configurable frequency and instalments, view your current MF holdings, and browse the available fund universe.

getMFOrders

Retrieve mutual fund orders. Pass an order_id to fetch a single order; omit it to retrieve all orders for the current day.
// All MF orders for today
const orders = await kc.getMFOrders();

// Single order
const order = await kc.getMFOrders('123456789');
Returns Promise<MFOrder | MFOrder[]>. Key fields on MFOrder:
order_id
string
Unique order ID assigned by Kite.
exchange_order_id
string | null
Exchange-assigned order ID. null if the order didn’t reach the exchange.
tradingsymbol
string
ISIN of the mutual fund.
fund
string
Full name of the mutual fund.
status
string | null
Current order status: COMPLETE, REJECTED, CANCELLED, OPEN, or other exchange-defined values.
status_message
string | null
Human-readable status description. Failed orders include a rejection reason.
transaction_type
string
BUY or SELL.
variety
string
Order variety: regular (lump-sum) or sip.
amount
number
Purchase amount in rupees (for BUY orders).
quantity
number
Number of units allotted or sold.
price
number
Order price.
average_price
number
Allotted or redeemed NAV price.
last_price
number
Most recent available NAV.
last_price_date
string
Date for which the last NAV is available.
folio
string | null
AMC-generated folio number for completed purchase orders.
purchase_type
string | null
FRESH or ADDITIONAL for BUY orders; null for SELL orders.
order_timestamp
Date
When the order was registered by the API.
exchange_timestamp
Date
When the exchange received the order.
settlement_id
string
Exchange settlement ID.
placed_by
string
ID of the user who placed the order.
tag
any
Optional tag supplied at order placement.

placeMFOrder

Place a lump-sum mutual fund purchase or redemption order.
// Buy ₹5,000 worth of a fund
const { order_id } = await kc.placeMFOrder({
  tradingsymbol: 'INF846K01DP8', // ISIN
  transaction_type: 'BUY',
  amount: 5000,
  tag: 'monthly-invest',
});

// Redeem 100 units
const { order_id: redeemId } = await kc.placeMFOrder({
  tradingsymbol: 'INF846K01DP8',
  transaction_type: 'SELL',
  quantity: 100,
});
Returns Promise<{ order_id: number }>.
tradingsymbol
string
required
ISIN of the mutual fund. Obtain it from getMFInstruments().
transaction_type
string
required
BUY or SELL.
amount
number
Amount in rupees to invest. Applicable for BUY orders only.
quantity
number
Number of units to redeem. Applicable for SELL orders only.
tag
string
Optional alphanumeric identifier tag (max 20 chars).

cancelMFOrder

Cancel an open mutual fund order.
const { order_id } = await kc.cancelMFOrder('123456789');
console.log('Cancelled order:', order_id);
Returns Promise<{ order_id: string }>.

getMFSIPS

Retrieve SIPs. Pass a sip_id to fetch a single SIP; omit it to retrieve all active and paused SIPs.
// All SIPs
const sips = await kc.getMFSIPS();

// Single SIP
const sip = await kc.getMFSIPS('987654321');
Returns Promise<MFSIP | MFSIP[]>. Key fields on MFSIP:
sip_id
string
Unique SIP identifier.
tradingsymbol
string
ISIN of the fund.
fund
string
Full fund name.
dividend_type
string
growth or payout.
transaction_type
string
Always BUY for SIPs.
status
string
ACTIVE, PAUSED, or CANCELLED.
frequency
string
Trigger frequency: weekly, monthly, or quarterly.
instalment_amount
number
Amount invested per instalment.
instalments
number
Total configured instalments. -1 means active until cancelled.
pending_instalments
number
Remaining instalments. -1 for open-ended SIPs.
completed_instalments
number
Number of instalments already executed.
instalment_day
number
Day of the month on which monthly SIP orders trigger (0 for non-monthly).
next_instalment
string
Date of the next scheduled instalment.
last_instalment
Date
Date on which the last instalment was triggered.
created
Date
Date on which the SIP was registered.
tag
string
Optional identification tag.

placeMFSIP

Create a new Systematic Investment Plan.
const { sip_id } = await kc.placeMFSIP({
  tradingsymbol: 'INF846K01DP8',
  amount: 2000,
  instalments: 12,
  frequency: 'monthly',
  instalment_day: '5',
  initial_amount: 2000,
  tag: 'retirement-sip',
});
console.log('SIP created:', sip_id);
Returns Promise<{ sip_id: number }>.
tradingsymbol
string
required
ISIN of the mutual fund.
amount
number
required
Amount in rupees to invest per instalment.
instalments
number
required
Number of instalments to trigger. Pass -1 to continue until you explicitly cancel the SIP.
frequency
string
required
Trigger frequency: weekly, monthly, or quarterly.
initial_amount
number
Amount to invest immediately before the SIP schedule begins.
instalment_day
string
Day of the month to trigger the order when frequency is monthly. Allowed values: 1, 5, 10, 15, 20, 25.
tag
string
Optional alphanumeric tag (max 20 chars).

modifyMFSIP

Modify an existing SIP’s schedule, instalment count, or status.
// Pause a SIP
await kc.modifyMFSIP('987654321', { status: 'paused' });

// Change frequency and instalment count
await kc.modifyMFSIP('987654321', {
  frequency: 'quarterly',
  instalments: -1,
  instalment_day: '1',
});
Returns Promise<{ sip_id: number }>.
sip_id
string
required
ID of the SIP to modify.
instalments
number
New instalment count. -1 for open-ended.
frequency
string
New frequency: weekly, monthly, or quarterly.
instalment_day
string
New day-of-month for monthly SIPs.
status
string
active to resume a paused SIP, or paused to pause an active SIP.

cancelMFSIP

Cancel an active SIP permanently.
const { sip_id } = await kc.cancelMFSIP('987654321');
console.log('Cancelled SIP:', sip_id);
Returns Promise<{ sip_id: string }>.

getMFHoldings

Retrieve all mutual fund units currently held in your account.
const holdings = await kc.getMFHoldings();
holdings.forEach((h) => console.log(h.fund, h.quantity, h.pnl));
Returns Promise<MFHolding[]>.
tradingsymbol
string
ISIN of the fund.
fund
string
Full name of the fund.
folio
string | null
AMC-generated folio number. null for pending orders.
quantity
number
Units available in the holding.
pledged_quantity
number
Units pledged as collateral.
average_price
number
NAV price at which the units were acquired (BUY) or sold (SELL).
last_price
number
Most recent NAV price.
last_price_date
string
Date for which the last NAV is available.
pnl
number
Net returns on the holding based on the latest NAV.

getMFInstruments

Retrieve the full mutual fund instruments master — all funds available for purchase or redemption.
const instruments = await kc.getMFInstruments();
const debtFunds = instruments.filter((i) => i.scheme_type === 'debt');
Returns Promise<MFInstrument[]>.
tradingsymbol
string
ISIN of the fund (use this as tradingsymbol when placing orders).
amc
string
AMC code as assigned by the exchange.
name
string
Full fund name.
purchase_allowed
boolean
Whether you can currently place a BUY order for this fund.
redemption_allowed
boolean
Whether you can currently place a SELL order for this fund.
minimum_purchase_amount
number
Minimum investment amount for the first purchase.
purchase_amount_multiplier
number
Purchase amounts must be a multiple of this value.
minimum_additional_purchase_amount
number
Minimum additional investment amount after the first purchase.
minimum_redemption_quantity
number
Minimum units that must be redeemed in a single order.
redemption_quantity_multiplier
number
Redemption quantities must be a multiple of this value.
dividend_type
string
growth or payout.
scheme_type
string
equity, debt, or elss.
plan
string
direct or regular.
settlement_type
string
Settlement cycle of the fund: T1, T2, etc.
last_price
number
Most recent NAV price.
last_price_date
Date
Date of the most recent NAV.

Build docs developers (and LLMs) love