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

# Get order book

# API de Consulta de Livro de Ofertas

Esta API permite consultar o livro de ofertas (order book) para um par de moedas em uma determinada exchange.

## Endpoint

`GET /v1/book`

## Parâmetros

| Parâmetro | Tipo   | Obrigatório | Descrição                           |
| --------- | ------ | ----------- | ----------------------------------- |
| base      | String | Sim         | Símbolo da moeda base (ex: ZEC)     |
| quote     | String | Sim         | Símbolo da moeda cotação (ex: USDT) |
| exchange  | String | Sim         | Nome da exchange (ex: Binance)      |

O par é normalizado internamente para o formato nativo de cada exchange
(`BTCUSDT`, `btcusdt`, `tBTCUSD`, `BTC_USDT`, `BTC-USDT`, …), então basta
informar `base` e `quote` separados.

## Exemplo de Requisição

```bash theme={null}
curl --location 'localhost:8080/v1/book?base=ZEC&quote=USDT&exchange=Binance'
```

## Resposta

| Campo           | Tipo                           | Descrição                                                         |
| --------------- | ------------------------------ | ----------------------------------------------------------------- |
| `coin`          | String                         | Par já normalizado para o formato da exchange                     |
| `availableBuy`  | Number                         | Soma das quantidades de todos os níveis de compra (unidades base) |
| `availableSell` | Number                         | Soma das quantidades de todos os níveis de venda (unidades base)  |
| `bids`          | Array de `[preço, quantidade]` | Ofertas de compra, em preço decrescente                           |
| `asks`          | Array de `[preço, quantidade]` | Ofertas de venda, em preço crescente                              |

<Callout title="Preços e quantidades vêm como string" icon="alert-triangle" color="amber">
  Cada nível de `bids`/`asks` é um array de **duas strings**, não de números —
  `["31.59000000", "5.41300000"]`. A precisão é a que a exchange devolveu.
  Converta antes de fazer contas.

  Note também que `availableBuy`/`availableSell` são somas de **quantidade**
  (unidades da moeda base), não de valor financeiro. Para valor por faixa de
  notional, veja [Spread realizável por profundidade](/depth-spread).
</Callout>

```json theme={null}
{
  "coin": "ZECUSDT",
  "availableBuy": 2357.18,
  "availableSell": 1750.41,
  "bids": [
    ["31.59000000", "5.41300000"],
    ["31.58000000", "12.00000000"]
  ],
  "asks": [
    ["31.61000000", "3.20000000"],
    ["31.62000000", "18.75000000"]
  ]
}
```

## Cache e profundidade

A resposta é cacheada por **4 minutos** por par e exchange, então chamadas
repetidas não geram tráfego adicional para a exchange.

A quantidade de níveis devolvida **varia por exchange** — a maioria entrega até
100, mas algumas truncam antes. A tabela completa está em
[Spread realizável por profundidade](/depth-spread).

## Erros

| Status | Situação                                                   |
| ------ | ---------------------------------------------------------- |
| 500    | Exchange não reconhecida, ou falha ao consultar a exchange |
