---
title: "Corporate actions"
method: GET
path: "/v1/stocks/{symbol}/corporate-actions"
tags: ["ownership"]
---

# Corporate actions

`GET /v1/stocks/{symbol}/corporate-actions`

## Request

- Base URL: `https://api.tapetide.com`
- URL: `https://api.tapetide.com/v1/stocks/{symbol}/corporate-actions`
- Auth: HTTP bearer

Dividends, bonus issues, splits, rights issues, buybacks, demergers and shareholder meetings with ex-date, record date and terms, from 2018 onward including announced future ex-dates. Oldest ex-date first by default (`order=desc` for newest first); filter by `type` and ex-date with `from`/`to`. Updated several times a day.

## Path parameters

- `symbol` string, required: Stock symbol, e.g. "RELIANCE". Percent-encode "&" (M%26M).

## Query parameters

- `type` 'dividend' | 'bonus' | 'split' | 'rights' | 'buyback' | 'demerger' | 'merger' | 'agm' | 'egm' | 'other'
- `from` string
- `to` string
- `order` 'asc' | 'desc'
- `limit` integer
- `cursor` string

## Response `200`

OK. Costs one request unit.

- object
  - `data` StockCorporateActionsItem[], required
    - `symbol` string, nullable, required: Stock symbol. Null for a few listed debt/unit series without an equity symbol.
    - `company_name` string, nullable, required: Company name.
    - `isin` string, nullable, required: ISIN of the security the action applies to.
    - `series` string, nullable, required: Trading series, e.g. "EQ" (equity), "SM" (SME), "RR" (REIT), "IV" (InvIT), "GS" (government securities).
    - `action_type` 'dividend' | 'bonus' | 'split' | 'rights' | 'buyback' | 'demerger' | 'merger' | 'agm' | 'egm' | 'other', required: dividend, bonus, split, rights, buyback, demerger, merger, agm (annual general meeting), egm (extraordinary general meeting) or other (redemptions, interest payments, consolidations, ...).
    - `dividend_type` 'final' | 'interim' | 'special', nullable, required: For dividends: final, interim or special. Null for other actions or when not stated.
    - `subject` string, nullable, required: Announcement text, e.g. "Interim Dividend - Rs 12 Per Share". Null when only the action type is known.
    - `ex_date` string, required: Ex-date: the first session the stock trades without the entitlement (YYYY-MM-DD).
    - `record_date` string, nullable, required: Record date (YYYY-MM-DD), null when not reported.
    - `announced_on` string, nullable, required: Announcement date (YYYY-MM-DD), null when not reported.
    - `book_closure_start` string, nullable, required: Book-closure start date (YYYY-MM-DD), null when not reported.
    - `book_closure_end` string, nullable, required: Book-closure end date (YYYY-MM-DD), null when not reported.
    - `dividend_per_share_inr` number, nullable, required: Dividend per share in INR (dividends only).
    - `ratio_numerator` number, nullable, required: Bonus: bonus shares issued per `ratio_denominator` shares held. Split: new shares for every `ratio_denominator` old share(s). Rights: rights shares offered per `ratio_denominator` held. Null for other actions.
    - `ratio_denominator` number, nullable, required: See `ratio_numerator`.
    - `face_value_inr` number, nullable, required: Face value per share in INR (after the action, for splits).
    - `buyback_price_inr` number, nullable, required: Buyback offer price per share in INR (buybacks only).
  - `meta` ListMeta, required
    - `as_of` string, date-time, required: When this response was assembled (UTC).
    - `route` string, required: operationId that served the request.
    - `count` integer, required: Items in this page.
    - `limit` integer, required: Page size applied.
    - `has_more` boolean, required: Whether another page exists.
    - `next_cursor` string, nullable, required: Pass as `cursor` to fetch the next page; null on the last page.
  - `links` Links, required
    - `next` string, nullable: Relative URL of the next page, or null.

## Other responses

- `400`: Malformed or out-of-range parameter. Not charged.
- `401`: Missing or invalid bearer token.
- `404`: The requested resource does not exist. Not charged.
- `429`: Per-minute burst cap (`rate_limited`) or plan quota (`quota_exhausted`) reached.
- `500`: Unexpected server error. Not charged.
- `502`: A data dependency was unavailable. Not charged.
- `503`: Authentication or quota service temporarily unavailable (`service_unavailable`). Not charged; retry after `Retry-After` seconds.

---

[API](https://skmtc.dev/tapetide/apis/tapetide-api.md) · [All operations](https://skmtc.dev/tapetide/apis/tapetide-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tapetide/apis/tapetide-api/revisions/261ec086bde5?raw)
