BSE Corporate Announcements API – Filings, Actions & Bulk Deals
Pricing
from $2.10 / 1,000 filing rows
BSE Corporate Announcements API – Filings, Actions & Bulk Deals
BSE India corporate filings as JSON: announcements with category, subject, summary and PDF link, corporate actions (dividend, bonus, split ex-dates), board meetings, results calendar, bulk and block deals. Scrip code, symbol and ISIN (equities) per row. Category filters, only-new feed. $3 per 1,000.
Pricing
from $2.10 / 1,000 filing rows
Rating
0.0
(0)
Developer
Daemon Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
25 minutes ago
Last modified
Categories
Security
Limited permissionsShare
BSE India corporate filings as a JSON feed: announcements, corporate actions, board meetings, the results calendar, and bulk and block deals. Every filing listed companies submit to BSE (Bombay Stock Exchange), with scrip code, symbol, company, BSE's category and subcategory, the ISIN where BSE lists one, the subject line, the summary text, the attached PDF link and the broadcast time in India time. Built for brokers' apps, fintech dashboards, alert and newsletter builders, analysts and AI agents that need the filings as rows instead of a web page. Filter by company, category or keyword, pull a date range, or schedule it with onlyNew and receive each filing once.
curl -X POST "https://api.apify.com/v2/acts/data_daemon~bse-corporate-announcements/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \-d '{"reports": ["announcements"], "daysBack": 0, "maxItems": 0}'
Checked on 10 November 2026: BSE carried 13,616 equity announcements for 2-9 November (1,733 to 3,114 on each weekday of 2-6 November) and 26,652 for October; 2,456 corporate actions with a 2026 ex-date; 1,745 forthcoming result dates; 11,195 board meetings for January-June; 14,279 bulk-deal rows for 1 January-10 November; announcements go back to at least 2005. Read live from BSE on every run.
$3 per 1,000 rows ($0.003 per row). No start fee, no subscription.
What teams run, and what it costs
| You are | You run | Cost |
|---|---|---|
| Alert or newsletter builder | Daily: reports: ["announcements"], categories: ["Dividend", "Bonus", "Award of Order", "Acquisition"], onlyNew: true | cents a day (a few dozen rows) |
| Portfolio or watchlist app | symbols: ["RELIANCE", "TCS", "500180"], reports: ["announcements", "corporateActions", "boardMeetings"], onlyNew: true | a large company files about 15 announcements a month: 20 companies, about $1 per month |
| Fintech dashboard / broker app | The whole market every day: daysBack: 2, onlyNew: true, maxItems: 0 | October 2026 had 26,652 announcements: $79.96 |
| Dividend and ex-date calendar | reports: ["corporateActions"], daysAhead: 30 | 88 rows on 10 November 2026: $0.26 per pull |
| Results-season tracker | reports: ["resultsCalendar", "boardMeetings"], onlyNew: true | 1,745 result dates on 10 November 2026: $5.24 once, then only new dates |
| Deal tracker (who bought, who sold) | reports: ["deals"], onlyNew: true | October 2026: 1,113 bulk and 46 block rows, $3.48 |
| Analyst backfill | fromDate / toDate, maxItems: 0 | one busy day (5 November 2026, 3,114 rows): $9.34 |
| Developer / AI agent | A sample: the default input returns the 50 newest announcements | $0.15 |
Export JSON, CSV or Excel, connect by API, webhook, Google Sheets, Make or n8n, or ask an AI agent through the Apify MCP server.
What does the BSE announcements API return?
Five reports, chosen with reports. Each row carries its reportType.
| Report | What it is | Window |
|---|---|---|
announcements (default) | Every corporate announcement: financial results, board meeting intimations and outcomes, press releases, investor presentations, earnings-call transcripts, order wins, dividends and record dates, management changes, credit ratings, insider-trading and takeover disclosures. Category, subcategory, subject, summary, PDF link and size, broadcast time, BSE's "critical" flag. | last daysBack days, newest first |
corporateActions | Dividends, bonus issues, splits, rights, buybacks and InvIT/REIT distributions with ex-date, record date and no-delivery period. The purpose text is also parsed into actionType, amountPerShare, ratio, faceValueFrom / faceValueTo. | next daysAhead days by ex-date, soonest first |
boardMeetings | Meeting date, purpose (quarterly results, dividend, preferential issue, buyback), industry and when the meeting was announced. | next daysAhead days, soonest first |
resultsCalendar | BSE's list of forthcoming financial results: company and result date. | from today, next daysAhead days |
deals | Bulk deals and block deals: client, buy or sell, quantity, price, value. | last daysBack days, newest first |
fromDate and toDate replace the windows for every report.
Why use this instead of the BSE website
- Rows, not pages. BSE shows filings in browser tables, 50 to a page, and the whole market only one day at a time. This Actor walks the pages and returns the same public data as clean JSON with ISO dates in India time, numbers as numbers and stable field names.
- Symbol and ISIN on the row. BSE's filing tables identify a company by scrip code. Each row here also carries the BSE symbol and, for securities in BSE's list of active equity securities, the ISIN and the BSE group (A, B, X, T, M for SME ...), so the feed joins to prices, holdings or an NSE feed without a mapping table. Of the 3,114 equity announcements of 5 November 2026, all carried a symbol and 3,035 an ISIN.
- A feed that delivers each filing once. With
onlyNewthe Actor remembers what it delivered. Schedule it withdaysBack: 2: a filing broadcast late at night is still picked up next morning, and nothing is delivered or charged twice. - Filter before you pay.
symbols,categoriesandkeywordsare applied before rows are saved, so a watchlist or a "dividends only" feed costs cents. - Parsed corporate actions. "Interim Dividend - Rs. - 24.0000" becomes
actionType: "dividend",amountPerShare: 24; "Bonus issue 1:1" becomesratio: "1:1"; a split carries the old and new face value.
NSE and BSE: which one?
Most large Indian companies are listed on both exchanges and file the same announcement with each, so for a large-cap watchlist either feed works. They differ at the edges:
- Coverage. BSE lists more companies. On 10 November 2026 its list of securities had 5,269 active equity scrips, and on 5 November BSE carried 3,114 equity announcements against 1,530 on NSE (13,616 against 6,933 for 2-9 November). Small caps listed only on BSE and the companies of the BSE SME platform appear only here.
- Reports. This Actor has announcements, corporate actions, board meetings, the results calendar and bulk/block deals. The NSE Corporate Announcements API also has credit ratings, shareholding patterns, IPO offer documents and short-selling quantities, which this one does not.
- Detail per row. BSE files each announcement under a category and a subcategory and gives a subject line; NSE gives one subject and, for some filings, a longer summary and an XBRL flag.
- Speed of a backfill. NSE returns a date range of the whole market in one request (6,933 rows for 2-9 November 2026). BSE serves the whole market one day per query and 50 rows per request, so the same backfill takes longer here (a single company's year is quick on both).
Both Actors take the same input names (reports, symbols, categories, keywords, daysBack, daysAhead, fromDate, toDate, maxItems, onlyNew, stateName) and share output field names where the meaning is the same, so one saved input can drive both and the two datasets stack. Join them on isin; a company's BSE and NSE symbols are usually, not always, the same.
How to use it
- Click Try for free. The default input returns the 50 newest BSE announcements (about $0.15).
- Pick the Reports you need and, if you follow specific companies, add their BSE scrip codes, symbols or ISINs.
- Narrow announcements with Categories (BSE's category or subcategory, for example
Result,Board Meeting,Dividend,Credit Rating,Press Release) or Keywords found in the subject and summary text. - Choose the dates: Days back for announcements and deals, Days ahead for ex-dates, meetings and result dates, or From date / To date for a backfill. Set Maximum rows per report to
0for everything. - For a daily feed, schedule the run with Only new rows on. The first run delivers the window, later runs only what is new.
Input
{"reports": ["announcements", "corporateActions"],"symbols": ["RELIANCE", "TCS", "500180"],"categories": [],"keywords": [],"daysBack": 2,"daysAhead": 30,"maxItems": 0,"onlyNew": true,"stateName": "watchlist-1"}
| Field | What it does |
|---|---|
reports | One or more of announcements, corporateActions, boardMeetings, resultsCalendar, deals. Default ["announcements"]. eventCalendar is accepted as another name for resultsCalendar. |
symbols | BSE scrip codes (500325), BSE symbols (RELIANCE) or ISINs to keep. Empty = the whole market. With up to 25 companies, announcements and corporate actions are read per company, so a long history for a watchlist is a small run. |
categories | Keep rows whose category, subcategory or purpose contains one of these words (case-insensitive). |
keywords | Keep rows whose company, symbol, scrip code, category, subject or summary text contains one of these words. |
daysBack | Announcements and deals: days before today (India time) to read, today included. Default 2. |
daysAhead | Corporate actions, board meetings, results calendar: days after today to read. Default 30. |
fromDate, toDate | YYYY-MM-DD range for every selected report. |
segments | For announcements: equities (default; includes the SME platform and InvITs/REITs), debt, mf (mutual funds and ETFs). |
dealTypes | bulk, block (default: both). |
maxItems | Maximum rows per report. Default 50; 0 = no limit. |
onlyNew, stateName | Deliver only rows not delivered before under this state name. |
proxyConfiguration | Optional; BSE answers Apify datacenter IPs without a proxy. |
Unknown values never fail a run: they are skipped and listed in the run's status message.
Output
An announcement:
{"reportType": "announcements","exchange": "BSE","id": "72b7099e-aceb-4bdf-a0e9-7ebd882429c7","segment": "equities","scripCode": "544336","symbol": "QUADFUTURE","company": "Quadrant Future Tek Ltd","isin": "INE0LRY01011","group": "B","category": "Board Meeting","subcategory": "Outcome of Board Meeting","subject": "Board Meeting Outcome for Outcome Of The Board Meeting Held On November 10, 2026","summary": "Outcome of the Board meeting held on November 10, 2026 for consideration and approval of unaudited financial results for the Quarter and Half year ended September 30, 2026","attachmentUrl": "https://www.bseindia.com/xml-data/corpfiling/AttachLive/0fcd380f-0940-4734-9a4c-5943b741b4d3.pdf","attachmentSize": "3.36 MB","attachmentSizeKb": 3440.55,"date": "2026-11-10","broadcastAt": "2026-11-10T17:33:01+05:30","submittedAt": "2026-11-10T17:32:59+05:30","disseminatedAt": "2026-11-10T17:33:01+05:30","companyUrl": "https://www.bseindia.com/stock-share-price/quadrant-future-tek-ltd/quadfuture/544336/","source": "BSE Ltd (bseindia.com corporate filings)","scrapedAt": "2026-11-10T12:04:07.367Z"}
A corporate action and a block deal:
[{"reportType": "corporateActions","exchange": "BSE","scripCode": "519183","symbol": "ADFFOODS","company": "Adf Foods Ltd","isin": "INE982B01027","group": "B","purpose": "Interim Dividend - Rs. - 0.6000","actionType": "dividend","amountPerShare": 0.6,"exDate": "2026-11-11","recordDate": "2026-11-11","noDeliveryStart": "2026-11-11","noDeliveryEnd": "2026-11-11","daysToExDate": 1,"companyUrl": "https://www.bseindia.com/stock-share-price/adf-foods-ltd/adffoods/519183/"},{"reportType": "deals","exchange": "BSE","dealType": "block","date": "2026-11-06","scripCode": "544600","symbol": "LENSKART","company": "Lenskart Solutions Ltd","isin": "INE956O01016","group": "B","clientName": "SVF II LIGHTBULB (CAYMAN) LIMITED","side": "SELL","quantity": 4744000,"price": 697.15,"valueInr": 3307279600}]
Main fields by report:
| Report | Fields |
|---|---|
announcements | id, segment, scripCode, symbol, company, isin, group, category, subcategory, subject, summary, detailedSummary, attachmentUrl, attachmentSize, attachmentSizeKb, audioVideoUrl, isCritical, date, broadcastAt, submittedAt, disseminatedAt, companyUrl |
corporateActions | scripCode, symbol, company, isin, group, purpose, actionType, amountPerShare, ratio, faceValueFrom, faceValueTo, exDate, recordDate, bookClosureStart, bookClosureEnd, noDeliveryStart, noDeliveryEnd, paymentDate, daysToExDate, companyUrl |
boardMeetings | scripCode, symbol, company, isin, group, industry, meetingDate, purpose, broadcastAt, daysToMeeting, companyUrl |
resultsCalendar | scripCode, symbol, company, isin, group, eventDate, purpose, daysToEvent, companyUrl |
deals | dealType, date, scripCode, symbol, company, isin, group, clientName, side, quantity, price, valueInr, remarks, companyUrl |
Every row also has exchange (BSE), source and scrapedAt; only-new runs add changeType (new). Times are India Standard Time with the +05:30 offset. A field BSE leaves empty is omitted. You can download the dataset as JSON, CSV, Excel, XML or HTML.
How much does it cost to get BSE announcements and filings?
$0.003 per row, for every report. There is no start fee and no monthly fee, and a run that finds nothing new costs nothing.
- The default run (50 newest announcements): $0.15.
- A watchlist of 20 large companies, announcements plus corporate actions, daily with
onlyNew: about 300 rows a month, around $1. - Every equity announcement, daily: October 2026 had 26,652 rows, $79.96; the results-season week of 2-9 November had 13,616, $40.85.
- All corporate actions with an ex-date in 2026 (2,456 rows): $7.37.
- Bulk and block deals for October 2026 (1,159 rows): $3.48.
Set a maximum cost per run in the run options and the Actor stops cleanly at that amount.
Tips
- Daily feed:
daysBack: 2,onlyNew: true,maxItems: 0, scheduled once or several times a day. The overlap catches late filings; delivered rows are skipped for free. - Intraday alerts: schedule every 15-30 minutes with
daysBack: 0andonlyNew: true; each run returns only the filings broadcast since the previous one. - One feed per use: give each schedule its own
stateName(for exampledividends,watchlist-a) so their memories stay separate. - Categories are BSE's own. The nine categories are
AGM/EGM,Board Meeting,Company Update,Corp. Action,Insider Trading / SAST,New Listing,Result,Integrated Filing,Others. Common subcategories:Financial Results,Outcome of Board Meeting,Analyst / Investor Meet,Earnings Call Transcript,Press Release / Media Release,Investor Presentation,Credit Rating,Dividend,Record Date,Acquisition,Award of Order / Receipt of Order,Change in Management. A filter word matches any category or subcategory that contains it. - SME companies are in the
equitiessegment; their rows carrygroupMorMT. - Backfills of the whole market read one day at a time, 50 rows per request: the 3,114 announcements of 5 November 2026 took 80 seconds. Raise the run timeout for multi-month pulls, or pass
symbolsto read companies directly (up to 12 months per request; three companies since 1 July, 203 rows, took 22 seconds). - Deals are published by BSE after the trading day, so a run during market hours returns deals up to the previous trading day.
- The results calendar lists forthcoming dates only; for past meetings use
boardMeetingswithfromDate/toDate.
FAQ
Is there an official BSE API for corporate announcements? BSE does not offer a free developer API for these filings. It shows them on its website and sells licensed data products. This Actor reads the public filing pages' data and returns it as JSON, CSV or Excel through the Apify API.
How fresh is the data? Each run reads BSE at that moment, so a filing is available as soon as BSE lists it. broadcastAt, submittedAt and disseminatedAt are BSE's own timestamps.
Does it include NSE? No. Rows come from BSE only. For NSE use the NSE Corporate Announcements API; the two share input and output names.
Can I use NSE symbols? symbols takes BSE scrip codes, BSE symbols and ISINs. For companies listed on both exchanges the symbols are usually the same (RELIANCE, TCS, HDFCBANK); the ISIN always is. A value BSE does not know is skipped and named in the run's status message.
Does it download the PDF? It returns the link (attachmentUrl) and the file size. The text BSE publishes with each filing is in subject and summary; for some filings BSE also publishes a longer text, returned as detailedSummary.
Why are some fields missing on a row? BSE leaves them empty, or the security is not in BSE's list of active equity securities (debt and mutual-fund scrips, some newly listed or suspended companies), in which case isin and group are absent. E-mail addresses and phone numbers typed into a summary are masked.
How far back can I go? Announcements are served back to at least 2005 (checked for 15 June 2005, 2012 and 2020), one day per query for the whole market or 12 months per request for a company.
What does onlyNew remember? The ids of delivered rows, per report and month, in a named key-value store in your account (bse-filings-only-new). Delete a state record or use a new stateName to start over.
Is it legal? These are regulatory disclosures that listed companies publish for investors on the exchange's public website. The data is provided for information only and is not investment advice; you are responsible for how you use it and for BSE's terms of use.
Something wrong or missing? Open an issue on the Issues tab with the input you used.
Related Actors by Daemon Data
- NSE Corporate Announcements API – the same feeds from the National Stock Exchange, plus credit ratings, shareholding patterns and offer documents
- India IPO Tracker API – live GMP, subscription status, IPO calendar and listing performance, mainboard and SME
- Indian Stock Market API (Tickertape) – NSE/BSE fundamentals, shareholding and screener
- India New Company Registrations – companies incorporated in India each day (MCA register)
- Dubai DLD Property Transactions API – Dubai Land Department sales, mortgages and gifts
- All Actors by Daemon Data