mirror of
https://github.com/captn3m0/kuvera-unofficial-api-specification.git
synced 2024-09-28 13:22:56 +00:00
923 lines
30 KiB
YAML
923 lines
30 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: Kuvera
|
|
version: ''
|
|
contact:
|
|
name: Nemo
|
|
url: 'https://captnemo.in/contact/'
|
|
email: kuvera.api@captnemo.in
|
|
termsOfService: 'https://github.com/captn3m0/kuvera-unofficial-api-specification'
|
|
description: Unofficial read API specification for Kuvera. See README on left to get started.
|
|
servers:
|
|
- url: 'https://api.kuvera.in'
|
|
paths:
|
|
/mf/api/v4/fund_schemes/list.json:
|
|
get:
|
|
summary: Get Mutual Funds
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: List of Mutual Fund Plans. Each key is a category
|
|
additionalProperties:
|
|
type: object
|
|
description: List of sub-categories. Each key is sub-category
|
|
additionalProperties:
|
|
type: object
|
|
description: List of AMCs in this sub-category. Each key is a Mutual Fund House
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Mutual-Fund'
|
|
operationId: fund_scheme_list
|
|
description: |
|
|
Get a list of Mutual Funds in Compressed Format. While it looks like this is not documented, it is documented using `additionalProperties` (OpenAPI v3.0) which doesn't render correctly.
|
|
tags:
|
|
- Mutual Funds
|
|
/api/v3/funds/amc_list.json:
|
|
get:
|
|
summary: List all AMCs
|
|
tags:
|
|
- Mutual Funds
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
description: List of AMCs
|
|
minItems: 1
|
|
uniqueItems: true
|
|
items:
|
|
type: object
|
|
description: AMC
|
|
properties:
|
|
AMC_code:
|
|
type: string
|
|
minLength: 1
|
|
description: AMC Code
|
|
available_for_purchase:
|
|
type: number
|
|
default: 2
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
example: 2
|
|
description: 'Whether the AMC has schemes available for purchase. 0=No, 1=Temporarily restricted, 2=Yes'
|
|
readOnly: true
|
|
amc_name:
|
|
type: string
|
|
minLength: 1
|
|
description: AMC Name
|
|
image:
|
|
type: string
|
|
minLength: 1
|
|
description: AMC Logo Image filename
|
|
short_code:
|
|
type: string
|
|
minLength: 1
|
|
description: AMC short code
|
|
rta_info:
|
|
type: string
|
|
minLength: 1
|
|
description: Registrar and Transfer Agent
|
|
example: Karvy
|
|
address:
|
|
type: string
|
|
minLength: 1
|
|
description: AMC Address
|
|
phone_number:
|
|
type: string
|
|
minLength: 1
|
|
description: AMC Phone number
|
|
website:
|
|
type: string
|
|
minLength: 1
|
|
description: AMC Website
|
|
login_url:
|
|
type: string
|
|
minLength: 1
|
|
description: Login URL for the AMC
|
|
contact_email:
|
|
type: string
|
|
minLength: 1
|
|
description: AMC email address
|
|
description:
|
|
type: string
|
|
minLength: 1
|
|
description: AMC Description
|
|
required:
|
|
- AMC_code
|
|
- available_for_purchase
|
|
- amc_name
|
|
- image
|
|
- short_code
|
|
- rta_info
|
|
- address
|
|
- phone_number
|
|
- website
|
|
- login_url
|
|
- contact_email
|
|
- description
|
|
operationId: amc_list
|
|
description: Get a list of AMCs
|
|
/api/v3/funds/tags/top_bought.json:
|
|
get:
|
|
summary: Top Bought Funds
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Mutual-Fund-Code'
|
|
operationId: top_bought_funds
|
|
description: List of top bought Mutual Funds
|
|
tags:
|
|
- Top Funds
|
|
parameters: []
|
|
/api/v3/funds/tags/top_sold.json:
|
|
get:
|
|
summary: Top Sold Funds
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Mutual-Fund-Code'
|
|
operationId: top_sold_funds
|
|
description: List of top sold Mutual Funds
|
|
tags:
|
|
- Top Funds
|
|
parameters: []
|
|
/api/v3/funds/tags/top_watchlist.json:
|
|
get:
|
|
summary: Top Watched Funds
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Mutual-Fund-Code'
|
|
operationId: top_watched_funds
|
|
description: List of top watched Mutual Funds
|
|
tags:
|
|
- Top Funds
|
|
parameters: []
|
|
/api/v3/funds/index_nav/NIFTY50.json:
|
|
get:
|
|
summary: NIFTY 50 Historical Value
|
|
tags:
|
|
- Index Data
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: array
|
|
minItems: 2
|
|
maxItems: 2
|
|
items:
|
|
allOf:
|
|
- properties: {}
|
|
description: Unix Epoch Timestamp
|
|
multipleOf: 86400
|
|
- properties: {}
|
|
description: NIFTY Value
|
|
minimum: 2500
|
|
maximum: 88888
|
|
multipleOf: 0.1
|
|
description: each array has 2 items
|
|
type: number
|
|
operationId: nifty_50_value
|
|
description: 'Returns historical value for NIFTY50, one value per day'
|
|
/mf/api/v4/fund_categories.json:
|
|
get:
|
|
summary: Get Fund Category Returns
|
|
tags:
|
|
- Mutual Funds
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
description: ''
|
|
minItems: 1
|
|
uniqueItems: true
|
|
items:
|
|
type: object
|
|
properties:
|
|
category_name:
|
|
type: string
|
|
minLength: 1
|
|
description: Category Name
|
|
report_date:
|
|
type: string
|
|
minLength: 1
|
|
description: Date last updated
|
|
week_1:
|
|
type: number
|
|
description: Returns in last 1 week
|
|
month_1:
|
|
type: number
|
|
description: Returns in last 1 month
|
|
month_3:
|
|
type: number
|
|
description: Returns in last 3 months
|
|
month_6:
|
|
type: number
|
|
description: Returns in last 6 months
|
|
year_1:
|
|
type: number
|
|
description: Returns in last 1 year
|
|
year_3:
|
|
type: number
|
|
description: Returns in last 3 years
|
|
year_5:
|
|
type: number
|
|
description: Returns in last 5 years
|
|
year_10:
|
|
type: number
|
|
description: 10 year returns for this category
|
|
inception:
|
|
type: number
|
|
description: Returns since inception
|
|
required:
|
|
- category_name
|
|
- report_date
|
|
- week_1
|
|
- month_1
|
|
- month_3
|
|
- month_6
|
|
- year_1
|
|
- year_3
|
|
- year_5
|
|
- year_10
|
|
- inception
|
|
operationId: get-mf-api-v4-fund_categories.json
|
|
description: Returns list of fund categories with their returns across a range of time periods.
|
|
'/mf/api/v4/fund_schemes/{codes}.json':
|
|
get:
|
|
summary: Mutual Fund Plan Details
|
|
tags:
|
|
- Mutual Funds
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
description: ''
|
|
minItems: 1
|
|
uniqueItems: true
|
|
items:
|
|
type: object
|
|
required:
|
|
- code
|
|
- name
|
|
- short_name
|
|
- lump_available
|
|
- sip_available
|
|
- lump_min
|
|
- lump_min_additional
|
|
- lump_max
|
|
- lump_multiplier
|
|
- sip_min
|
|
- sip_max
|
|
- sip_multiplier
|
|
- sip_dates
|
|
- redemption_allowed
|
|
- redemption_amount_multiple
|
|
- redemption_amount_minimum
|
|
- redemption_quantity_multiple
|
|
- redemption_quantity_minimum
|
|
- category
|
|
- lock_in_period
|
|
- upsizecode_sip_dates
|
|
- sip_maximum_gap
|
|
- fund_house
|
|
- fund_name
|
|
- short_code
|
|
- detail_info
|
|
- ISIN
|
|
- direct
|
|
- switch_allowed
|
|
- stp_flag
|
|
- swp_flag
|
|
- sips
|
|
- instant
|
|
- reinvestment
|
|
- tags
|
|
- slug
|
|
- channel_partner_code
|
|
- tax_period
|
|
- nav
|
|
- last_nav
|
|
- jan_31_nav
|
|
- volatility
|
|
- returns
|
|
- start_date
|
|
- fund_type
|
|
- fund_category
|
|
- plan
|
|
- expense_ratio
|
|
- expense_ratio_date
|
|
- fund_manager
|
|
- crisil_rating
|
|
- investment_objective
|
|
- maturity_type
|
|
- aum
|
|
properties:
|
|
code:
|
|
type: string
|
|
minLength: 1
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
short_name:
|
|
type: string
|
|
minLength: 1
|
|
lump_available:
|
|
type: string
|
|
minLength: 1
|
|
sip_available:
|
|
type: string
|
|
minLength: 1
|
|
lump_min:
|
|
type: number
|
|
lump_min_additional:
|
|
type: number
|
|
lump_max:
|
|
type: number
|
|
lump_multiplier:
|
|
type: number
|
|
sip_min:
|
|
type: number
|
|
sip_max:
|
|
type: number
|
|
sip_multiplier:
|
|
type: number
|
|
sip_dates:
|
|
type: array
|
|
items:
|
|
properties: {}
|
|
redemption_allowed:
|
|
type: string
|
|
minLength: 1
|
|
redemption_amount_multiple:
|
|
type: number
|
|
redemption_amount_minimum:
|
|
type: number
|
|
redemption_quantity_multiple:
|
|
type: number
|
|
redemption_quantity_minimum:
|
|
type: number
|
|
category:
|
|
type: string
|
|
minLength: 1
|
|
lock_in_period:
|
|
type: number
|
|
upsizecode_sip_dates:
|
|
type: array
|
|
items:
|
|
properties: {}
|
|
sip_maximum_gap:
|
|
type: number
|
|
fund_house:
|
|
type: string
|
|
minLength: 1
|
|
fund_name:
|
|
type: string
|
|
minLength: 1
|
|
short_code:
|
|
type: string
|
|
minLength: 1
|
|
detail_info:
|
|
type: string
|
|
minLength: 1
|
|
ISIN:
|
|
type: string
|
|
minLength: 1
|
|
direct:
|
|
type: string
|
|
minLength: 1
|
|
switch_allowed:
|
|
type: string
|
|
minLength: 1
|
|
stp_flag:
|
|
type: string
|
|
minLength: 1
|
|
swp_flag:
|
|
type: string
|
|
minLength: 1
|
|
sips:
|
|
type: array
|
|
uniqueItems: true
|
|
minItems: 1
|
|
items:
|
|
required:
|
|
- sip_frequency
|
|
- sip_minimum_gap
|
|
- sip_maximum_gap
|
|
properties:
|
|
sip_frequency:
|
|
type: string
|
|
minLength: 1
|
|
sip_dates:
|
|
type: array
|
|
items:
|
|
properties: {}
|
|
sip_minimum_gap:
|
|
type: string
|
|
minLength: 1
|
|
sip_maximum_gap:
|
|
type: string
|
|
minLength: 1
|
|
instant:
|
|
type: string
|
|
minLength: 1
|
|
reinvestment:
|
|
type: string
|
|
minLength: 1
|
|
tags:
|
|
type: array
|
|
items:
|
|
properties: {}
|
|
slug:
|
|
type: string
|
|
minLength: 1
|
|
channel_partner_code:
|
|
type: string
|
|
minLength: 1
|
|
tax_period:
|
|
type: number
|
|
nav:
|
|
type: object
|
|
properties:
|
|
nav:
|
|
type: number
|
|
date:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- nav
|
|
- date
|
|
last_nav:
|
|
type: object
|
|
properties:
|
|
nav:
|
|
type: number
|
|
date:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- nav
|
|
- date
|
|
jan_31_nav:
|
|
type: number
|
|
volatility:
|
|
type: number
|
|
returns:
|
|
type: object
|
|
properties:
|
|
week_1:
|
|
type: number
|
|
year_1:
|
|
type: number
|
|
year_3:
|
|
type: number
|
|
year_5:
|
|
type: number
|
|
inception:
|
|
type: number
|
|
date:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- week_1
|
|
- year_1
|
|
- year_3
|
|
- year_5
|
|
- inception
|
|
- date
|
|
start_date:
|
|
type: string
|
|
minLength: 1
|
|
face_value: {}
|
|
fund_type:
|
|
type: string
|
|
minLength: 1
|
|
fund_category:
|
|
type: string
|
|
minLength: 1
|
|
plan:
|
|
type: string
|
|
minLength: 1
|
|
expense_ratio:
|
|
type: string
|
|
minLength: 1
|
|
expense_ratio_date:
|
|
type: string
|
|
minLength: 1
|
|
fund_manager:
|
|
type: string
|
|
minLength: 1
|
|
crisil_rating:
|
|
type: string
|
|
minLength: 1
|
|
investment_objective:
|
|
type: string
|
|
minLength: 1
|
|
portfolio_turnover: {}
|
|
maturity_type:
|
|
type: string
|
|
minLength: 1
|
|
aum:
|
|
type: number
|
|
operationId: mutual_fund_details
|
|
description: Get details about a specific Mutual Fund Plans
|
|
parameters:
|
|
- $ref: '#/components/parameters/codes'
|
|
/fixed_deposit/api/v1/plans.json:
|
|
get:
|
|
summary: Fixed Deposit Plans
|
|
tags:
|
|
- Fixed Deposit
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: ''
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
uniqueItems: true
|
|
minItems: 1
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
description: Plan ID (Integer as String)
|
|
type:
|
|
type: string
|
|
minLength: 1
|
|
description: Usually just "plan"
|
|
attributes:
|
|
type: object
|
|
description: Attributes of the FD Plan
|
|
properties:
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
description: Name of the Lender
|
|
risk_level:
|
|
type: string
|
|
minLength: 1
|
|
description: Risk Level (as string)
|
|
example: lowest
|
|
partner_id:
|
|
type: string
|
|
minLength: 1
|
|
description: Lender ID (slug)
|
|
interest_rate:
|
|
type: number
|
|
description: Interst Rate offered on FD
|
|
senior_citizen_interest_rate:
|
|
type: number
|
|
description: Interest Rate for Senior Citizens
|
|
offer_code:
|
|
description: Always null
|
|
tenure_from:
|
|
type: number
|
|
description: Minimum FD Tenure in days
|
|
tenure_to:
|
|
type: number
|
|
description: Maximum FD Tenure in days
|
|
tenure_from_in_months:
|
|
type: number
|
|
description: Minimum FD Tenure in months
|
|
tenure_to_in_months:
|
|
type: number
|
|
description: Maximum FD Tenure in months
|
|
start_date:
|
|
description: null so far
|
|
end_date:
|
|
description: null so far
|
|
min_amount:
|
|
type: string
|
|
minLength: 1
|
|
description: Minimum Amount to open the FD as a string in INR. Can contain decimal.
|
|
pattern: '\d+[.\d{2}]?'
|
|
example: '2500.0'
|
|
compounding:
|
|
type: string
|
|
minLength: 1
|
|
description: Compounding Interval. Usually annually
|
|
enum:
|
|
- annually
|
|
- monthly
|
|
- daily
|
|
max_amount:
|
|
type: string
|
|
minLength: 1
|
|
description: Maximum amount for opening the FD. Amount in INR. Can contain decimal point
|
|
pattern: '\d+[.\d{2}]?'
|
|
status:
|
|
type: string
|
|
minLength: 1
|
|
description: Status of this FD Plan on Kuvera
|
|
enum:
|
|
- registered
|
|
- active
|
|
lockin_period:
|
|
type: string
|
|
minLength: 1
|
|
description: Locking period in days
|
|
pattern: \d+
|
|
maxLength: 3
|
|
example: '90'
|
|
required:
|
|
- name
|
|
- risk_level
|
|
- partner_id
|
|
- interest_rate
|
|
- senior_citizen_interest_rate
|
|
- tenure_from
|
|
- tenure_to
|
|
- tenure_from_in_months
|
|
- tenure_to_in_months
|
|
- min_amount
|
|
- compounding
|
|
- max_amount
|
|
- status
|
|
- lockin_period
|
|
required:
|
|
- id
|
|
- type
|
|
required:
|
|
- data
|
|
operationId: get_fixed_deposit_plans
|
|
description: 'Get Fixed Deposit Plans from various lenders. The data from this is used to render https://kuvera.in/explore/fixed-deposit/c/all'
|
|
/crypto/api/v1/coins.json:
|
|
get:
|
|
summary: Get Crypto Rates
|
|
tags:
|
|
- Crypto
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: ''
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
minLength: 1
|
|
description: Response status. Usually "success"
|
|
data:
|
|
type: array
|
|
uniqueItems: true
|
|
minItems: 1
|
|
items:
|
|
$ref: '#/components/schemas/Crypto-Token'
|
|
required:
|
|
- status
|
|
- data
|
|
operationId: get_crypto
|
|
description: 'Used to render https://kuvera.in/explore/crypto/c/all/others'
|
|
components:
|
|
schemas:
|
|
Mutual-Fund:
|
|
description: A compressed representation of a Mutual Fund Plan
|
|
type: object
|
|
title: Mutual Fund Mini
|
|
x-examples:
|
|
Sample Equity Plan:
|
|
c: PLPL56-GR
|
|
'n': Essel Large Cap Equity Growth Direct Plan
|
|
re: Z
|
|
r:
|
|
'1': 66.34
|
|
'3': 11.74
|
|
'5': 13.7
|
|
inception: 13
|
|
date: '2021-05-19'
|
|
v: 16.88
|
|
kc: Equity
|
|
Sample Debt Bond:
|
|
c: IDD298-DR
|
|
'n': IDFC All Seasons Bond Periodic IDCW Reinvest Direct Plan
|
|
re: 'Y'
|
|
r:
|
|
'1': 6.22
|
|
'3': 5.65
|
|
'5': 0
|
|
inception: 5.56
|
|
date: '2021-05-19'
|
|
v: 1.89
|
|
kc: Debt - Bonds
|
|
properties:
|
|
c:
|
|
$ref: '#/components/schemas/Mutual-Fund-Code'
|
|
'n':
|
|
type: string
|
|
minLength: 1
|
|
description: Scheme Name
|
|
re:
|
|
type: string
|
|
minLength: 0
|
|
description: Reinvestment
|
|
enum:
|
|
- Z
|
|
- 'N'
|
|
- 'Y'
|
|
maxLength: 1
|
|
r:
|
|
type: object
|
|
description: Returns
|
|
required:
|
|
- inception
|
|
- date
|
|
properties:
|
|
'1':
|
|
type: number
|
|
description: 1 Year returns
|
|
multipleOf: 0.01
|
|
exclusiveMinimum: false
|
|
'3':
|
|
type: number
|
|
description: 3 Year returns
|
|
multipleOf: 0.01
|
|
format: float
|
|
'5':
|
|
type: number
|
|
description: 5 Year returns
|
|
multipleOf: 0.01
|
|
inception:
|
|
type: number
|
|
description: Fund returns since inception
|
|
date:
|
|
type: string
|
|
minLength: 1
|
|
description: Date Last Updated
|
|
example: '2021-05-19'
|
|
format: date
|
|
v:
|
|
type: number
|
|
description: Volatility
|
|
kc:
|
|
type: string
|
|
minLength: 1
|
|
description: Category
|
|
required:
|
|
- c
|
|
- 'n'
|
|
- re
|
|
- r
|
|
- v
|
|
- kc
|
|
x-tags:
|
|
- Schemas
|
|
Mutual-Fund-Code:
|
|
type: string
|
|
title: Mutual-Fund-Code
|
|
example: LFAG-GR
|
|
pattern: '^[A-Z0-9-]+'
|
|
minLength: 4
|
|
description: Mutual Fund Code
|
|
x-examples:
|
|
Example 1: 418-GR
|
|
example-2: KO178D-DP
|
|
x-tags:
|
|
- Schemas
|
|
Crypto-Token:
|
|
title: Crypto-Token
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: number
|
|
description: Crypto Token ID
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
description: Crypto Token Name
|
|
ticker:
|
|
type: string
|
|
minLength: 1
|
|
description: Crypto Token Ticker
|
|
slug:
|
|
type: string
|
|
minLength: 1
|
|
description: Crypto Token Slug
|
|
icon:
|
|
type: string
|
|
minLength: 1
|
|
description: Absolute URL for Crypto Token Icon Image
|
|
hash_link:
|
|
type: string
|
|
minLength: 1
|
|
description: Official URL for the Crypto Token
|
|
min_trade_amount:
|
|
type: number
|
|
inr_tradeable:
|
|
type: boolean
|
|
usdt_tradeable:
|
|
type: boolean
|
|
created_at:
|
|
type: string
|
|
minLength: 1
|
|
format: date-time
|
|
updated_at:
|
|
type: string
|
|
minLength: 1
|
|
format: date-time
|
|
is_active:
|
|
type: boolean
|
|
highest_buy_bid:
|
|
type: number
|
|
lowest_sell_bid:
|
|
type: number
|
|
last_traded_price:
|
|
type: number
|
|
yes_price:
|
|
type: number
|
|
volume:
|
|
type: object
|
|
properties:
|
|
max:
|
|
type: string
|
|
minLength: 1
|
|
min:
|
|
type: string
|
|
minLength: 1
|
|
volume:
|
|
type: number
|
|
required:
|
|
- max
|
|
- min
|
|
- volume
|
|
last_updated:
|
|
type: string
|
|
minLength: 1
|
|
returns_1y:
|
|
type: number
|
|
required:
|
|
- id
|
|
- name
|
|
- ticker
|
|
- slug
|
|
- icon
|
|
- hash_link
|
|
- min_trade_amount
|
|
- inr_tradeable
|
|
- usdt_tradeable
|
|
- created_at
|
|
- updated_at
|
|
- is_active
|
|
- highest_buy_bid
|
|
- lowest_sell_bid
|
|
- last_traded_price
|
|
- yes_price
|
|
- last_updated
|
|
- returns_1y
|
|
securitySchemes: {}
|
|
parameters:
|
|
codes:
|
|
name: codes
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
pattern: '(([A-Z0-9-]+)\|?)'
|
|
minLength: 4
|
|
example: FRAG-GR|SBD028G-GR
|
|
description: 'Multiple Mutual Fund Codes, delimited by a pipe'
|
|
tags:
|
|
- name: kuvera
|