Get API key
Corporate actions

List corporate actions

API version2026-09-29
gethttps://pyth.dourolabs.app/v3/intelligence/corporate_actions

An API key or short-lived access token, in an Authorization: Bearer <token> header, and the API version above in a Pyth-Version header. Without it, requests get the newest version.

Returns the corporate actions of every covered asset, newest first by ex-date, or by effective date for events without one. Results are paginated: while continues is true, send the same request again with next as after to get the next page. The cursor keeps only the position, so send the filters, limit, expand and effective again.

getv3/intelligence/corporate_actions
curl "https://pyth.dourolabs.app/v3/intelligence/corporate_actions?event_type=split&ex_date=2025-11-17" \
  -H "Authorization: Bearer $PYTH_API_KEY" \
  -H "Pyth-Version: 2026-09-29"
Response
{
  "continues": false,
  "data": [
    {
      "event_type": "split",
      "id": "ca-01m14cxqvdegqvbcm09ctn2gjb",
      "status": "applied",
      "type": "corporate_action",
      "applies_to": "asset-01m14btmjbeqwve6s57ggv2k3y",
      "ex_date": "2025-11-17",
      "meta": { "recorded_at": "2026-08-28T14:39:01.654Z" },
      "pay_date": "2025-11-14",
      "record_date": "2025-11-10",
      "split_from": "1.0000000000",
      "split_to": "10.0000000000"
    }
  ],
  "type": "list",
  "meta": { "recorded_at": "2026-10-13T23:16:21.462Z" }
}

Query parameters

Add these parameters to the URL query string.

afterstringOptional

The previous response's next value, unchanged. Send the other parameters as before.

declaration_datestringOptional

Comparisons on the declaration date, as for ex_date.

effectivestringOptional

Returns what was in effect at this instant, an RFC 3339 timestamp no later than now, using current knowledge. In a URL written by hand, write a + offset as %2B. Try it, and clients that encode query values such as Python's params, take + as is. Omit for the current state.

effective_datestringOptional

Comparisons on the effective date, as for ex_date.

event_typestringOptional

Only these event types, as one value or a comma-separated list: cash_dividend, split, reverse_split, stock_dividend, ticker_change, delisting, rights_issue, spinoff or merger. Case-insensitive.

ex_datestringOptional

Only actions whose ex-date meets every comparison, comma-separated. YYYY-MM-DD alone matches that day. gte:, gt:, lte:, lt: and eq: set a bound, so gte:2026-10-01,lt:2026-11-01 is October 2026. Actions without an ex-date are left out.

expandstringOptional

Relations to include in full instead of as IDs, comma-separated: applies_to, paid_in, predecessor.

limitintegerDefault 50

Page size, 1 to 100.

pay_datestringOptional

Comparisons on the pay date, as for ex_date.

record_datestringOptional

Comparisons on the record date, as for ex_date.

statusstringOptional

Only actions in these states, as one value or a comma-separated list: announced, confirmed, applied or cancelled. Case-insensitive.

Response

200 · application/json

Returns a JSON object with the following fields.

continuesboolean

Whether another page follows.

dataobject[]

The corporate actions on this page. A field that does not apply to an event, or is not known yet, is left out.

event_typestring

Type of event. New values can be added. Treat an unrecognized value as unknown.

  • split
  • reverse_split
  • cash_dividend
  • stock_dividend
  • spinoff
  • merger
  • ticker_change
  • delisting
  • rights_issue
  • unknown
idstring

Permanent ID, such as ca-01m14cxqtkenq8n0qvdc3rxx2m.

statusstring

announced, then confirmed, then applied, or else cancelled. New values can be added. Treat an unrecognized value as unknown.

  • announced
  • confirmed
  • applied
  • cancelled
  • unknown
typestring

Always corporate_action.

applies_tostring | object

ID of the asset the event belongs to. With expand=applies_to, the full asset, as Get an asset returns it.

ex_datestring

The first trading day the price reflects the event, YYYY-MM-DD. Never set together with effective_date.

metaobject

When the record, as served, last changed.

recorded_atstring

When the record last changed. A read pinned to an earlier effective instant reports the change behind what it shows, never a later one.

effective_atstring

The effective instant a single read was pinned to, echoed back; absent on an unpinned read. A list echoes it on its own meta.

pay_datestring

When the distribution is paid or delivered, YYYY-MM-DD.

Show 11 more
record_datestring

Holder-of-record date, YYYY-MM-DD, which decides who is entitled to a distribution.

split_fromstring

Share count before a split or reverse split, as a decimal string: split_from old shares become split_to new ones.

split_tostring

Share count after a split or reverse split, as a decimal string. A 10-for-1 split has split_from "1.0000000000" and split_to "10.0000000000".

declaration_datestring

The day the issuer declared the dividend, YYYY-MM-DD, where published.

effective_datestring

The day a rename or delisting takes hold, YYYY-MM-DD. Never set together with ex_date.

gross_amountstring

Dividend per share before withholding tax, as a decimal string, in the paid_in currency.

net_amountstring

Dividend per share after deductions, as published, in the paid_in currency. Rarely present.

new_tickerstring

The ticker after a ticker_change.

paid_instring | object

ID of the currency asset the dividend is declared in, which its amounts use. With expand=paid_in, the full asset, as Get an asset returns it.

predecessorstring | object

ID of the predecessor asset, for events that have one. With expand=predecessor, the full asset, as Get an asset returns it.

previous_tickerstring

The ticker before a ticker_change.

typestring

Always list.

metaobject

When the served data was recorded, and the effective instant when one was requested.

recorded_atstring

When the served data was recorded.

effective_atstring

The effective instant the read was pinned to, where one was given.

nextstring

Send it unchanged as after, with the request's other parameters, for the next page. Present while continues is true.

Errors

Status codes returned when a request fails.

400
A parameter is malformed, effective is in the future, a query parameter is unknown (parameter_invalid), the Pyth-Version value is not served (version_unsupported), or the Authorization header is empty or not a bearer credential (credential_malformed).
401
The credential is missing or not recognized (credential_missing, credential_unknown).
403
The API key's plan does not include corporate actions (package_required), or the access token is expired or not valid (credential_rejected).
429
Rate limit exceeded.
503
The service is temporarily unavailable.