KEY TAKEAWAYS
get_corporate_actionsandget_dividendsreturn one company’s disclosed history, newest first, with ex-dates and per-share amounts.get_market_calendarreturns events across the market for any window up to 180 days, past or future.get_upcoming_resultslooks forward for results dates.- The same data is available as REST routes under
/v1. Every response carries acached_attime and a source.
What does get_dividends return?
get_dividends returns the cash dividend history for one company. Pass an NSE symbol, ISIN or BSE code, and years from 1 to 15. Each row has an ex-date, a type, the amount per share and a record date. The response adds annual_totals in fiscal-year buckets (April to March). Each bucket carries the total, the number of payouts, the closing price on or before that fiscal year end and a dividend_yield: the year’s total dividend divided by that closing price. The yield is null when price history does not reach back that far.
This is ITC (ITC) on 29 October 2026, with years set to 2. Two dividends fall in each fiscal year shown. The FY26 total of 14.5 equals the 6.5 interim plus the 8.0 final, so the final dividend with an ex-date of 27 May 2026 is counted in FY26. The FY25 total of 14.35 equals 7.85 plus 6.5 in the same way. The data was cached on 28 October 2026.
{
"nse_symbol": "ITC",
"current_price": 259.5,
"trailing_12m_dividend": 14.5,
"dividend_yield": 0.0559,
"annual_totals": [
{ "fy": "FY26", "total": 14.5, "count": 2, "fy_end_price_date": "2026-03-30", "fy_end_price": 287.7, "dividend_yield": 0.0504 },
{ "fy": "FY25", "total": 14.35, "count": 2, "fy_end_price_date": "2025-03-28", "fy_end_price": 409.75, "dividend_yield": 0.035 }
],
"dividends": [
{ "ex_date": "2026-05-27", "type": "final", "amount": 8.0 },
{ "ex_date": "2026-02-04", "type": "interim", "amount": 6.5 },
{ "ex_date": "2025-05-28", "type": "final", "amount": 7.85 },
{ "ex_date": "2025-02-12", "type": "interim", "amount": 6.5 }
],
"cached_at": "2026-10-28T14:45:02+00:00",
"source": "bse-corp-actions",
"stale": false
}Trimmed from the live response: fields removed, no value changed.
What does get_corporate_actions return?
get_corporate_actions returns every disclosed corporate action for one company, newest first: dividends, splits, bonuses and other types. Set years from 1 to 20 and pass a types list to keep only some types. Each row has the ex-date, the event type, a sub-type, the ratio text or amount, a record date, a payment date and the exchange’s own purpose text.
This is TCS (TCS) with years set to 2. It returned 10 rows, all dividends. The latest is an interim dividend of ₹12 per share with an ex-date of 14 October 2026. On 16 January 2026 two rows share one ex-date: a special dividend of ₹46 and an interim dividend of ₹11. A second call with types set to split and bonus returned no rows for TCS in the same window, with the note “no corporate actions in window”.
{
"nse_symbol": "TCS",
"count": 10,
"actions": [
{ "ex_date": "2026-10-14", "event_type": "dividend", "sub_type": "interim", "amount": 12.0, "raw_purpose": "Interim Dividend - Rs. - 12.0000" },
{ "ex_date": "2026-05-25", "event_type": "dividend", "sub_type": "final", "amount": 31.0, "raw_purpose": "Final Dividend - Rs. - 31.0000" },
{ "ex_date": "2026-01-16", "event_type": "dividend", "sub_type": "special", "amount": 46.0, "raw_purpose": "Special Dividend - Rs. - 46.0000" },
{ "ex_date": "2026-01-16", "event_type": "dividend", "sub_type": "interim", "amount": 11.0, "raw_purpose": "Interim Dividend - Rs. - 11.0000" }
],
"cached_at": "2026-10-28T14:48:02+00:00",
"source": "bse-corp-actions"
}
// same call with types ["split", "bonus"]
{ "count": 0, "actions": [], "note": "no corporate actions in window" }Trimmed from the live responses: 4 of 10 rows shown, fields removed, no value changed.
How do I see upcoming ex-dates across the whole market?
get_market_calendar takes a date_from and date_to in ISO format, up to 180 days apart, and an optional types list. It merges the results calendar with the corporate-action events and sorts them by date. Each event has a date, a type, the ISIN, the NSE symbol, the name and a detail string.
We asked for 29 October to 5 November 2026 with types dividend, split and bonus and a limit of 6. All six events returned were dated 29 October 2026, the day of the check, and the response says it was cut at the limit. We have not read the rest of that window, so we cannot say how many events fall on later dates. The row for Chandni Machines has no NSE symbol. The date field is the event date as the calendar reports it. Check the company’s own filing before you rely on it as an ex-date.
{
"from": "2026-10-29",
"to": "2026-11-05",
"count": 6,
"events": [
{ "date": "2026-10-29", "type": "dividend", "nse_symbol": "CRISIL", "name": "Crisil Limited", "detail": "Rs 17.00/share, Interim" },
{ "date": "2026-10-29", "type": "dividend", "nse_symbol": "CMPDI", "name": "Central Mine Planning & Design Institute Limited", "detail": "Rs 1.05/share, Interim" },
{ "date": "2026-10-29", "type": "dividend", "nse_symbol": "KSOLVES", "name": "Ksolves India Limited", "detail": "Rs 1.00/share, Interim" },
{ "date": "2026-10-29", "type": "dividend", "nse_symbol": "KAJARIACER", "name": "Kajaria Ceramics Limited", "detail": "Rs 12.00/share, Interim" },
{ "date": "2026-10-29", "type": "dividend", "nse_symbol": "SHRIRAMFIN", "name": "Shriram Finance Limited", "detail": "Rs 6.50/share, Interim" },
{ "date": "2026-10-29", "type": "split", "nse_symbol": null, "name": "Chandni Machines Ltd", "detail": "Split 10:1" }
],
"note": "Result truncated to 6 events (limit); widen types/date filters or raise limit.",
"cached_at": "2026-10-28T14:48:02+00:00"
}Trimmed from the live response: fields removed, no value changed.
For results dates alone, get_upcoming_results looks forward only. On 29 October 2026, with days set to 7 and a limit of 5, it listed results due that day for Blue Star, DCW, Jasch Industries (BSE code 500220, no NSE symbol), Trent and HeidelbergCement India, sourced from BSE and cached on 28 October 2026 at 15:15 UTC. The site also has a market calendar page.
What is forward-looking and what is historical?
| Tool | Direction | What we saw |
|---|---|---|
| get_corporate_actions | Historical, per company | TCS: latest row an ex-date of 14 Oct 2026, 2-year window |
| get_dividends | Historical, per company | ITC: latest ex-date 27 May 2026; trailing 12-month dividend 14.5 per share |
| get_market_calendar | Past or future window, whole market | Window 29 Oct to 5 Nov 2026 returned events dated 29 Oct; remainder of window not read |
| get_upcoming_results | Forward only, results dates | 5 companies with results on 29 Oct 2026 at limit 5 |
Limits on 29 October 2026
Is there a REST API for the same data?
Yes. The REST surface mirrors the MCP tools under /v1. The routes for this page are /v1/stocks/{q}/corporate-actions, /v1/stocks/{q}/dividends, /v1/calendar and /v1/results-calendar. They need an API key. See the REST API reference. We did not call the REST routes for this page. The figures above come from the MCP tools.
How do I ask for it?
EXAMPLE PROMPTS
- List ITC’s dividends for the last two years with ex-dates and amounts per share, and give the total for each fiscal year.
- Show TCS’s corporate actions for the last two years. Were there any splits or bonuses?
- Which companies have a dividend or split event between 29 October and 5 November 2026? Give the date and detail for each.
- Which companies report quarterly results this week? Give the dates.
The code is on GitHub: DalalOS-Indian-Stock-Research on GitHub. To set it up, connect your AI, or follow the guide for Claude or ChatGPT, Cursor and other clients. The server is at https://mcp.dalalos.in/mcp.
How we checked
On 29 October 2026 we called get_dividends for ITC, get_corporate_actions for TCS (twice) and get_market_calendar once on the live server. The get_upcoming_results figures come from a check on the same day. Data changes as companies file. This is research data, not investment advice, and DalalOS does not rank or rate stocks. Found an error? Email hello@dalalos.in.
FAQ
Common questions
- Is there an MCP server for NSE and BSE corporate actions and dividends?
- Yes. DalalOS runs one. Its get_corporate_actions tool returns one company’s disclosed splits, bonuses, dividends and similar actions, and its get_dividends tool returns the cash dividend history with fiscal-year totals. For events across the whole market in a date window it has get_market_calendar. DalalOS publishes this page. We checked each tool on the live server on 29 October 2026.
- What is the best API or MCP for NSE and BSE corporate actions and dividends?
- We do not rank providers, and the right choice depends on what you need. Check five things in any API or MCP. Is the source official, such as an exchange filing? Does each row carry an ex-date? Does it give the per-share amount? How many years of history does it return? Does the response say when the data was last refreshed? DalalOS offers get_corporate_actions and get_dividends as MCP tools, and the same data as REST routes under /v1 (/v1/stocks/{q}/corporate-actions and /v1/stocks/{q}/dividends). Each response carries a cached_at time and a source. DalalOS publishes this page, so test it against your own list before you rely on it.
- Is the data forward-looking or historical?
- Both, in different tools. get_corporate_actions and get_dividends are per-company histories of disclosed events, newest first. get_market_calendar covers any window you choose across the whole market, including dates after today. get_upcoming_results looks forward only and lists results dates. A future ex-date appears only after the company has announced it.
- How far back does the history go?
- get_corporate_actions accepts years from 1 to 20 and defaults to 5. get_dividends accepts years from 1 to 15 and defaults to 5. We checked a 2-year window for TCS and ITC on 29 October 2026. We did not test the maximum window for any company.
- What does a dividend row contain?
- An ex-date, a type such as interim, final or special, the amount per share in rupees, a record date and a payment date. On 29 October 2026 the payment date was null in every row we read, so do not expect it. Fiscal-year totals and a dividend yield per fiscal year come with get_dividends.
- Which action types can I filter on?
- get_corporate_actions takes a types list. get_market_calendar accepts results, dividend, split, bonus, demerger and ipo, plus consolidation, rights, buyback, spinoff, merger, distribution and other. An unknown type returns a bad_request. The ipo type in the calendar is a stub that always returns zero rows. For IPO data use get_ipos.
- Is this investment advice?
- No. DalalOS returns disclosed events and mechanical arithmetic, such as a dividend divided by a price. It gives no buy or sell calls, target prices or ratings. Nothing on this page is investment advice.
Connect your AI to Indian stock market data
Add DalalOS as a connector and sign in once. Free to start with no card and no waitlist; paid plans from ₹199 a month when you need more.
KEEP EXPLORING