---
title: "Subscribe to Corporate Actions Events (SSE)"
method: GET
path: "/v1beta1/events/corporate-actions"
tags: ["Corporate actions"]
---

# Subscribe to Corporate Actions Events (SSE)

`GET /v1beta1/events/corporate-actions`

## Request

- Base URL: `https://stream.data.giftcity.in.alpaca.markets`
- URL: `https://stream.data.giftcity.in.alpaca.markets/v1beta1/events/corporate-actions`
- Auth: one of:
  - API key in header `APCA-API-KEY-ID` and API key in header `APCA-API-SECRET-KEY`
  - HTTP basic

Server-Sent Events (SSE) stream that delivers every corporate-action mutation (`insert` / `update` / `delete`) across all supported CA types on a single long-lived `text/event-stream` connection. When `since`, `since_id`, or the `Last-Event-Id` reconnect header is provided, historical events are replayed first; otherwise only live events are pushed.

Each event carries an `event_type` discriminator that selects the shape of the `ca` payload -- see the [`corporate_action_event`](#/components/schemas/corporate_action_event) schema for the mapping to each per-type schema. The same underlying data is available on demand via [`GET /v1/corporate-actions`](#operation/CorporateActions).

## Query parameters

- `type` CorporateActionEventType[]
- `region` 'all' | 'us' | 'non_us'
- `since` string, date-time
- `until` string, date-time
- `since_id` string, ulid: Lexically sortable, monotonically increasing 26-character [ULID](https://github.com/ulid/spec) (Crockford Base32, uppercase) that identifies a single SSE emission. Unique per message -- an `update` or `delete` for the same underlying corporate action carries a fresh `event_id`. Because ULIDs sort in emission order, they can be used as resume cursors via `since_id`, `until_id`, or the standard `Last-Event-Id` reconnect header.
- `until_id` string, ulid: Lexically sortable, monotonically increasing 26-character [ULID](https://github.com/ulid/spec) (Crockford Base32, uppercase) that identifies a single SSE emission. Unique per message -- an `update` or `delete` for the same underlying corporate action carries a fresh `event_id`. Because ULIDs sort in emission order, they can be used as resume cursors via `since_id`, `until_id`, or the standard `Last-Event-Id` reconnect header.

## Headers

- `Last-Event-Id` string, ulid: Lexically sortable, monotonically increasing 26-character [ULID](https://github.com/ulid/spec) (Crockford Base32, uppercase) that identifies a single SSE emission. Unique per message -- an `update` or `delete` for the same underlying corporate action carries a fresh `event_id`. Because ULIDs sort in emission order, they can be used as resume cursors via `since_id`, `until_id`, or the standard `Last-Event-Id` reconnect header.

## Response `200`

Connected. Corporate-action events will now start streaming as long as you keep the connection open.

## Other responses

- `400`: One of the request parameters is invalid. See the returned message for details.
- `401`: Authentication headers are missing or invalid. Make sure you authenticate your request with a valid API key.
- `403`: The requested resource is forbidden.
- `429`: Too many requests. You hit the rate limit. Use the X-RateLimit-... response headers to make sure you're under the rate limit.
- `500`: Internal server error. We recommend retrying these later. If the issue persists, please contact us on [Slack](https://alpaca.markets/slack) or on the [Community Forum](https://forum.alpaca.markets/).

---

[API](https://skmtc.dev/alpacahq/apis/market-data-api.md) - [All operations](https://skmtc.dev/alpacahq/apis/market-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/alpacahq/apis/market-data-api/revisions/82f96f2d0134?raw)
