Represents an IPO offering lifecycle event delivered over the IPO events streaming API (`/v2/events/ipos`). IPO events come in six `verb` types: - **`Offering`** - initial publication of an offering. The `payload` carries `name`, `available_to_order`, `ticker_symbol`, `min_price`, `max_price` (and optional `source`). - **`OfferingUpdate`** - update to a previously published offering. The `payload` shape is identical to `Offering`. - **`Prospectus`** - prospectus document is now available. The `payload` carries `prospectus_url` and `subject`. - **`SixtyMinMail`** - 60-minute pricing window has opened, no new orders accepted. The `payload` carries `sixty_minute_expiration_time` and `subject`. - **`Allocation`** - final allocation result for a specific account. The `payload` carries `cusip_id`, `final_price`, `allocated_shares`, `allocated_amount`, `subject`. **This is the only verb that is account-scoped**: `account_id` and `correspondent` are populated. - **`OfferingCancellation`** - offering was cancelled. **No `payload` is present.** See the example payloads below for a concrete example per verb.
The account this event applies to. Only populated for `Allocation` events; omitted for system-wide verbs (`Offering`, `OfferingUpdate`, `Prospectus`, `SixtyMinMail`, `OfferingCancellation`).
at
string
Timestamp the event was emitted by the streaming service.
correspondent
string
The correspondent that owns the account. Only populated for `Allocation` events.
event_id
string
Lexically sortable, monotonically increasing identifier for this event. Use this value with `since_id`/`until_id` to resume the stream from a known point.
offering_reference
string
The IPO offering this event refers to. Use this value with `GET /v1/ipos/{offering_reference}` to fetch the full offering metadata.
payload
object
Verb-specific payload. The shape varies by `verb` - see schema description and `components/examples` for the structure of each. **Omitted entirely for `OfferingCancellation`.**
received_at
string
Timestamp the upstream event was first received by Alpaca's IPO ingestion pipeline (before fanout).
verb
string
The IPO event type. Determines the shape of `payload`.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/alpaca/json-schema/alpaca-ipoevent-schema.json",
"title": "IPOEvent",
"description": "Represents an IPO offering lifecycle event delivered over the IPO events streaming API (`/v2/events/ipos`).\n\nIPO events come in six `verb` types:\n- **`Offering`** - initial publication of an offering. The `payload` carries `name`, `available_to_order`, `ticker_symbol`, `min_price`, `max_price` (and optional `source`).\n- **`OfferingUpdate`** - update to a previously published offering. The `payload` shape is identical to `Offering`.\n- **`Prospectus`** - prospectus document is now available. The `payload` carries `prospectus_url` and `subject`.\n- **`SixtyMinMail`** - 60-minute pricing window has opened, no new orders accepted. The `payload` carries `sixty_minute_expiration_time` and `subject`.\n- **`Allocation`** - final allocation result for a specific account. The `payload` carries `cusip_id`, `final_price`, `allocated_shares`, `allocated_amount`, `subject`. **This is the only verb that is account-scoped**: `account_id` and `correspondent` are populated.\n- **`OfferingCancellation`** - offering was cancelled. **No `payload` is present.**\n\nSee the example payloads below for a concrete example per verb.\n",
"x-generated": "2026-11-05",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/alpaca-us-broker-api-openapi.yml#/components/schemas/IPOEvent",
"properties": {
"account_id": {
"description": "The account this event applies to. Only populated for `Allocation` events; omitted for system-wide verbs (`Offering`, `OfferingUpdate`, `Prospectus`, `SixtyMinMail`, `OfferingCancellation`).\n",
"format": "uuid",
"type": "string"
},
"at": {
"description": "Timestamp the event was emitted by the streaming service.",
"format": "date-time",
"type": "string"
},
"correspondent": {
"description": "The correspondent that owns the account. Only populated for `Allocation` events.\n",
"type": "string"
},
"event_id": {
"description": "Lexically sortable, monotonically increasing identifier for this event. Use this value with `since_id`/`until_id` to resume the stream from a known point.",
"format": "ulid",
"type": "string"
},
"offering_reference": {
"description": "The IPO offering this event refers to. Use this value with `GET /v1/ipos/{offering_reference}` to fetch the full offering metadata.\n",
"type": "string"
},
"payload": {
"description": "Verb-specific payload. The shape varies by `verb` - see schema description and `components/examples` for the structure of each. **Omitted entirely for `OfferingCancellation`.**\n",
"type": "object"
},
"received_at": {
"description": "Timestamp the upstream event was first received by Alpaca's IPO ingestion pipeline (before fanout).",
"format": "date-time",
"type": "string"
},
"verb": {
"description": "The IPO event type. Determines the shape of `payload`.",
"enum": [
"Allocation",
"Offering",
"OfferingUpdate",
"Prospectus",
"SixtyMinMail",
"OfferingCancellation"
],
"type": "string"
}
},
"required": [
"event_id",
"at",
"verb",
"offering_reference",
"received_at"
],
"type": "object"
}
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.