Get a corporate action
API version2026-09-29https://pyth.dourolabs.app/v3/intelligence/corporate_actions/{id}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 a corporate action by its ID. Fields that do not apply to the event, or are not known yet, are left out.
v3/intelligence/corporate_actions/{id}curl "https://pyth.dourolabs.app/v3/intelligence/corporate_actions/ca-01m14cxqtkenq8n0qvdc3rxx2m" \
-H "Authorization: Bearer $PYTH_API_KEY" \
-H "Pyth-Version: 2026-09-29"{
"event_type": "cash_dividend",
"id": "ca-01m14cxqtkenq8n0qvdc3rxx2m",
"status": "applied",
"type": "corporate_action",
"applies_to": "asset-01m0a6sd8me54bsx692f90ws91",
"declaration_date": "2026-07-30",
"ex_date": "2026-08-10",
"gross_amount": "0.270000",
"meta": { "recorded_at": "2026-08-28T14:39:01.654Z" },
"paid_in": "asset-01m14btkhresy9fe9afcf95sht",
"pay_date": "2026-08-13",
"record_date": "2026-08-10"
}Replace the placeholders in the URL path with these values.
idstringRequiredThe corporate action's ID, such as ca-01m14cxqtkenq8n0qvdc3rxx2m.
Add these parameters to the URL query string.
effectivestringOptionalReturns 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.
expandstringOptionalRelations to include in full instead of as IDs, comma-separated: applies_to, paid_in, predecessor.
Response
200 · application/jsonReturns a JSON object with the following fields.
event_typestringType 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
idstringPermanent ID, such as ca-01m14cxqtkenq8n0qvdc3rxx2m.
statusstringannounced, then confirmed, then applied, or else cancelled. New values can be added. Treat an unrecognized value as unknown.
- announced
- confirmed
- applied
- cancelled
- unknown
typestringAlways corporate_action.
applies_tostring | objectID of the asset the event belongs to. With expand=applies_to, the full asset, as Get an asset returns it.
declaration_datestringThe day the issuer declared the dividend, YYYY-MM-DD, where published.
effective_datestringThe day a rename or delisting takes hold, YYYY-MM-DD. Never set together with ex_date.
ex_datestringThe first trading day the price reflects the event, YYYY-MM-DD. Never set together with effective_date.
gross_amountstringDividend per share before withholding tax, as a decimal string, in the paid_in currency.
metaobjectWhen the record, as served, last changed.
recorded_atstringWhen the record last changed. A read pinned to an earlier effective instant reports the change behind what it shows, never a later one.
effective_atstringThe effective instant a single read was pinned to, echoed back; absent on an unpinned read. A list echoes it on its own meta.
net_amountstringDividend per share after deductions, as published, in the paid_in currency. Rarely present.
new_tickerstringThe ticker after a ticker_change.
paid_instring | objectID 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.
pay_datestringWhen the distribution is paid or delivered, YYYY-MM-DD.
predecessorstring | objectID of the predecessor asset, for events that have one. With expand=predecessor, the full asset, as Get an asset returns it.
previous_tickerstringThe ticker before a ticker_change.
record_datestringHolder-of-record date, YYYY-MM-DD, which decides who is entitled to a distribution.
split_fromstringShare count before a split or reverse split, as a decimal string: split_from old shares become split_to new ones.
split_tostringShare 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".
Status codes returned when a request fails.
- 400
- A parameter or ID is malformed or names another kind of resource, 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).
- 404
- No corporate action matches the ID, or none existed yet at the effective instant (resource_missing).
- 429
- Rate limit exceeded.
- 503
- The service is temporarily unavailable.