> For the complete documentation index, see [llms.txt](https://docs.native.org/native-dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.native.org/native-dev/build-with-native/native-core/guides/read-market-data.md).

# Read market data

Every read is a `POST /info` call, unauthenticated, dispatched on a top-level `type`. This guide points you at the query for each task; the full response shapes are in the [POST /info reference](/native-dev/build-with-native/native-core/reference/post-info.md). Query responses carry `query_height` and `app_hash` so you know which committed state you read. `/info` is rate-limited to **1 request/second per IP** — poll within that budget and back off on `429` (see [rate limits](/native-dev/build-with-native/native-core/reference/api-access.md#rate-limits-errors)).

Examples use mainnet; swap in `https://api-test.native.org` for testnet — see [environments](/native-dev/build-with-native/native-core/reference/api-access.md#environments).

{% hint style="info" %}
**Don't want to poll?** The same market data and account state stream over a [WebSocket](/native-dev/build-with-native/native-core/reference/websocket.md) connection — books, trades, fills, and order updates pushed as they happen. [Stream over WebSocket](/native-dev/build-with-native/native-core/guides/stream-over-websocket.md) is the walkthrough.
{% endhint %}

## Discover markets

Before you can sign an order you need the `market_id` and the market's precision.

```bash
curl -sS -X POST "$API_URL/info" -H 'content-type: application/json' \
  -d '{"type":"markets"}'
```

* [`markets`](/native-dev/build-with-native/native-core/reference/post-info.md#markets) — `market_id`, `price_decimals`, `base_quantity_decimals`, `max_price_sig_figs` for every pair.
* [`assets`](/native-dev/build-with-native/native-core/reference/post-info.md#assets) — asset ids, symbols, `balance_decimals`.
* [`quoteAssets`](/native-dev/build-with-native/native-core/reference/post-info.md#quoteassets) — the per-quote-asset **minimum notional** an order must clear.

## Prices and the book

* [`l2Book`](/native-dev/build-with-native/native-core/reference/post-info.md#l2book) — aggregated bids/asks for one market (optional `depth`, default 20).
* [`markPrices`](/native-dev/build-with-native/native-core/reference/post-info.md#markprices) — mark prices (all, or filtered by `asset_ids`).
* [`oracleStatus`](/native-dev/build-with-native/native-core/reference/post-info.md#oraclestatus) — whether oracle marks are fresh.

## Your account

Pass your **owner** address as `user` (not the API-wallet address).

* [`userBalances`](/native-dev/build-with-native/native-core/reference/post-info.md#userbalances) — `available` / `locked` per asset.
* [`openOrders`](/native-dev/build-with-native/native-core/reference/post-info.md#openorders) — resting orders, with `filled_qty` / `remaining_qty`.
* [`userFills`](/native-dev/build-with-native/native-core/reference/post-info.md#userfills) — fill history over a height range.
* [`orderStatus`](/native-dev/build-with-native/native-core/reference/post-info.md#orderstatus) — the lifecycle of one order by `oid` or `cloid`. **This is where you see whether an order rested or filled** — `/trade` only tells you it landed.
* [`spotCreditPositions`](/native-dev/build-with-native/native-core/reference/post-info.md#spotcreditpositions) / [`spotCreditAccount`](/native-dev/build-with-native/native-core/reference/post-info.md#spotcreditaccount) — credit-account positions and credit line (see [Account Types](/native-dev/build-with-native/native-core/concepts/account-types.md)).

## Next steps

* [POST /info](/native-dev/build-with-native/native-core/reference/post-info.md) — every query and its full response
* [Trade over REST](/native-dev/build-with-native/native-core/guides/trade-over-rest.md) — place your first order
