BSE India APIbond.bseindia.com ↗
Access BSE India debt market data: OTC bond trades, listed securities, bulk/block deals, corporate announcements, and daily gainers/losers via 7 endpoints.
What is the BSE India API?
The BSE India Bond API covers 7 endpoints for accessing debt market data from bond.bseindia.com, including OTC corporate bond trades, listed security details, bulk and block deals, and corporate announcements. The get_bond_market_activity endpoint returns per-security trade counts, weighted average prices, yields, and turnover across three reporting categories — corporate bond OTC trades, broker trade reporting, and buyback activity.
curl -X GET 'https://api.parse.bot/scraper/f64e9d0e-7477-4eda-b256-94a2ac8c2b6b/get_bond_market_activity?flag=1' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace bond-bseindia-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: BSE India Bond Market Data — bounded, re-runnable."""
from parse_apis.bond_bseindia_com_api import BseBond, DealType, SecurityType, BondNotFound
client = BseBond()
# Recent corporate bond OTC trades
for trade in client.trades.list(flag="1", limit=5):
print(trade.issuer_name, trade.last_traded_price, trade.weighted_avg_yield)
# Listed central government debt securities
for listing in client.listings.list(security_type=SecurityType.CENTRAL_GOVT, limit=5):
print(listing.scrip_name, listing.coupon_rate, listing.maturity_date)
# Drill into a listing's full bond details using the scrip_code from search
listing = client.listings.list(security_type=SecurityType.CENTRAL_GOVT, limit=1).first()
if listing is not None:
bond = client.bonds.get(scrip_code=listing.scrip_code)
print(bond.issuer_name, bond.face_value, bond.maturity_date)
# Bulk deals reported today
for deal in client.deals.list(deal_type=DealType.BULK, limit=5):
print(deal.scrip_name, deal.client_name, deal.transaction_type, deal.quantity)
# Recent announcements
ann = client.announcements.list(limit=1).first()
if ann is not None:
print(ann.company_name, ann.headline, ann.announcement_datetime)
# Point lookup by scrip code with error handling
try:
bond = client.bonds.get(scrip_code="977753")
print(bond.security_name, bond.coupon_rate, bond.sector)
except BondNotFound as e:
print(f"Bond not found: {e.message}")
print("exercised: trades.list / listings.list / bonds.get / deals.list / announcements.list")
Returns recent corporate bond OTC trades reported on BSE, including price, yield, turnover, and trade count per security. Data refreshes during market hours. The flag parameter selects the trade reporting category.
| Param | Type | Description |
|---|---|---|
| flag | string | Trade reporting category flag. 1=Corporate Bond OTC Trades, 3=Broker Trade Reporting, 4=Buy-Back in Corporate Bonds. |
{
"type": "object",
"fields": {
"count": "integer total number of trades returned",
"trades": "array of trade records with security_code, issuer_name, isin, coupon_rate, maturity_date, last_traded_price, weighted_avg_price, weighted_avg_yield, turnover_lacs, num_trades, trade_datetime"
},
"sample": {
"data": {
"count": 10,
"trades": [
{
"isin": "INE202B07II5",
"num_trades": 2,
"coupon_rate": 8.85,
"issuer_name": "DEWAN HOUSING FINANCE CORPORATION LIMITED",
"maturity_date": "8/6/2019 00:00:00",
"security_code": "8845DHFCL19",
"turnover_lacs": 20,
"trade_datetime": "8/22/2026 12:58:26",
"last_traded_price": 100,
"weighted_avg_price": 100,
"weighted_avg_yield": 10
}
]
},
"status": "success"
}
}About the BSE India API
Debt Market Data Coverage
The API surfaces debt market activity across several distinct data types. get_bond_market_activity accepts a flag parameter (1, 3, or 4) to select between corporate bond OTC trades, broker trade reporting, and buy-back in corporate bonds. Each trade record includes security_code, isin, issuer_name, coupon_rate, maturity_date, last_traded_price, weighted_avg_price, and turnover figures. Data refreshes during market hours.
get_bond_listings provides the full listed debt securities catalog with filters for security_type (C=Central Government, S=State Government, T=Treasury Bill, and others), scrip_code, scrip_name, coupon rate, and both issue and maturity date ranges in DD/MM/YYYY format. Each result carries scrip_code, scrip_name, coupon_rate, issue_date, maturity_date, and debt_type.
Security Details and Deals
get_bond_details accepts either a scrip_code (e.g. 977753) or an isin (e.g. INE572J07810) and returns a consolidated record covering face_value, sector, industry, group, category (Listed/Delisted), settlement_type, coupon_rate, issue_date, and debt_type. For F-group (privately placed) bonds, it includes market data fields alongside the listing metadata.
get_bond_deals returns bulk and block deals with deal_date, scrip_code, scrip_name, client_name, transaction_type (B=Buy, S=Sell), quantity, and price. get_bond_announcements supports pagination (50 results per page via the page param), date range filtering in YYYYMMDD format, and filtering by isin, scrip_code, category, and subcategory. Each announcement record includes news_id, subject, headline, category, subcategory, company_name, and announcement_datetime. get_bond_gainers and get_bond_losers return intraday movers for BSE market groups — use group code IF for debt/fixed income — with fields including open, high, low, last_traded_price, previous_close, and change.
The BSE India API is a managed, monitored endpoint for bond.bseindia.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bond.bseindia.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official bond.bseindia.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor intraday OTC corporate bond trade activity including weighted average prices and yields via get_bond_market_activity
- Screen listed debt securities by maturity date range and security type (Central Govt, State Govt, Treasury Bill) using get_bond_listings filters
- Track bulk and block deal activity in the debt segment including buyer/seller identity and transaction size from get_bond_deals
- Alert on corporate announcements for specific ISINs or scrip codes using get_bond_announcements with date range and category filters
- Identify top-gaining and top-losing F-group bonds intraday using get_bond_gainers and get_bond_losers with group=IF
- Retrieve consolidated bond metadata — face value, sector, settlement type, coupon rate — for a given ISIN using get_bond_details
- Build a BSE debt market dashboard combining OTC trade turnover data with daily price change and listing details
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.