kuvera-unofficial-api-speci.../reference/Kuvera.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