# Catalogue and market lifecycle Events group markets. Each market is a binary contract with `YES` and `NO` sides. 1. Open the `/events` stream and buffer incoming frames. 2. Call `GET /events`, following its `cursor` until it is null. Each event contains its markets. `GET /markets` and the individual event and market endpoints can be used for targeted reads. 3. Apply buffered lifecycle frames, then process the stream live. Use `status_revision` to order updates to a market. Apply `market.status_changed`, `market.details_changed`, `market.settled`, and `market.voided` only when their `status_revision` is greater than the revision already stored. A `market.details_changed` can arrive after a market has closed and before its settlement events. An open event can gain a market: it arrives as `market.created` and comes before every `market.status_changed` of that market. Apply it only to a market not stored yet. Regular broker orders are accepted only while a market is `active`. A `suspended` market rejects new orders and amends but still allows cancels. A `closed`, `settled`, or `voided` market accepts no new trading commands. Markets belonging to one event are independent: one market can close, settle, or be voided while the other markets continue trading. Use the repeatable `lang` query parameter when only selected locales are needed. Without it, all available locales are returned.