> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omnibook.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Your first request

> Check the exchange is up and find the round that is trading.

This walks through the two calls every integration starts with. Both are
`read`-scope, so they work with any key.

All responses below are real, captured from production.

## Is the exchange open?

```bash theme={null}
GET /v1/exchange/status
```

```json theme={null}
{ "exchange_active": true, "as_of_seq": "3947" }
```

`exchange_active` is `false` during a halt — no orders will be accepted. Check
it before you start trading, and treat it as a kill switch.

`as_of_seq` is the sequencer position the answer was computed at. It appears on
every read. Two responses with the same `as_of_seq` describe exactly the same
state, which is what lets you tell "nothing changed" from "I asked too early".

<Note>
  `as_of_seq` restarts from a low number when the venue restarts. It is a position
  within the current session, not a global counter — do not persist it or assume
  it only ever increases. Use `round_number` for ordering across restarts.
</Note>

## What is trading right now?

Omnibook runs a continuous series of 60-second binary rounds on the BTC price.
One round is open for trading at a time.

```bash theme={null}
GET /v1/rounds?limit=1
```

```json theme={null}
{
  "rounds": [
    {
      "market_id": 66,
      "status": "trading",
      "strike": "6399240000000",
      "settle_price": "0",
      "winner": null,
      "round_number": "2963",
      "generation": 297,
      "category": 1,
      "open_ts": "1785301920037987210",
      "freeze_ts": "0",
      "resolve_ts": "0"
    }
  ],
  "cursor": "2963.0",
  "as_of_seq": "3947"
}
```

The fields that matter:

* **`market_id`** — what you pass to order and orderbook endpoints. It is
  **recycled** across rounds, so never cache it as an identifier for a round.
* **`round_number`** — monotonic and never reused. This is the stable identity.
* **`status`** — `trading` accepts orders. `frozen` does not. `settled` is done.
* **`strike`** — the BTC price to beat, in units of 1e-8 USD. The value above is
  \$63,992.40.
* **`winner`** — `null` until settlement, then `"yes"` or `"no"`.

<Warning>
  `market_id` is drawn from a small recycled pool. Two different rounds will reuse
  the same `market_id` over time. Always key your own state on `round_number`, and
  re-read the round before acting on a cached `market_id`.
</Warning>

## Paging

List endpoints return a `cursor`. Pass it back as `?cursor=` to get the next
page; an empty cursor means there are no more results.

```bash theme={null}
GET /v1/rounds?limit=50&cursor=2963.0
```

## Next

Place an order: [Place your first order](/quickstart/place-order).
