> ## 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 Arbitrages

## 📖 Descrição

Este endpoint retorna as oportunidades de arbitragem entre as exchanges especificadas, com opção de incluir as cotações de preços e filtros avançados para refinar as buscas.

***

## 🛠️ Requisição

### Método

`GET`

### URL

```plaintext theme={null}
/v1/arbitrage
```

### Parâmetros de Query

| Parâmetro            | Tipo    | Obrigatório | Descrição                                                                       |
| -------------------- | ------- | ----------- | ------------------------------------------------------------------------------- |
| `buyExchange`        | string  | Sim         | Lista de exchanges para compra, separadas por vírgula                           |
| `sellExchange`       | string  | Sim         | Lista de exchanges para venda, separadas por vírgula                            |
| `includePricesQuote` | boolean | Não         | Se true, inclui as cotações de preços na resposta                               |
| `networkMatch`       | boolean | Não         | Se true, filtra apenas operações com redes compatíveis                          |
| `volumeMin`          | float   | Não         | Volume mínimo de negociação (considera volume\_best\_buy ou volume\_best\_sell) |
| `spreadMin`          | float   | Não         | Spread mínimo de lucro em percentual (profit\_percent\_ask\_bid)                |

### Exemplo de Requisição

**Exemplo 1: Requisição básica**

```bash theme={null}
curl --location 'localhost:8080/v1/arbitrage?buyExchange=Mercado+Bitcoin,Binance,Bitget&sellExchange=Binance,Mercado+Bitcoin,Bitget,Crypto.com,Gate.io&includePricesQuote=true'
```

**Exemplo 2: Com filtros avançados**

```bash theme={null}
curl --location 'localhost:8080/v1/arbitrage?buyExchange=binance&sellExchange=kucoin&networkMatch=true&volumeMin=1000&spreadMin=2.0'
```

### Exemplo de Resposta

```json theme={null}
{
  "exchanges": {
    "buy": ["Mercado Bitcoin", "Binance", "Bitget"],
    "sell": ["Binance", "Mercado Bitcoin", "Bitget", "Crypto.com", "Gate.io"]
  },
  "opportunities": [
    {
      "pair": "BTC/USD",
      "buyExchange": "Binance",
      "sellExchange": "Gate.io",
      "buyPrice": 25000.00,
      "sellPrice": 25500.00,
      "profit": 500.00,
      "priceQuotes": {
        "Binance": 25000.00,
        "Gate.io": 25500.00
      }
    }
  ],
  "timestamp": "2025-03-18T12:00:00Z"
}
```

***

## 📝 Notas sobre os Parâmetros

<Callout type="info">
  Os parâmetros de query permitem configurar a busca por oportunidades de arbitragem:

  * `buyExchange`: Define as exchanges onde serão buscados preços para compra
  * `sellExchange`: Define as exchanges onde serão buscados preços para venda
  * `includePricesQuote`: Quando true, retorna as cotações de todas as exchanges consultadas
  * `networkMatch`: Quando true, filtra apenas operações que possuem pelo menos uma rede comum entre as exchanges de compra e venda
  * `volumeMin`: Filtra operações onde pelo menos um dos volumes (compra ou venda) atende ao valor mínimo especificado
  * `spreadMin`: Filtra operações com spread de lucro igual ou superior ao valor especificado em percentual
</Callout>

### Comportamento dos Filtros Avançados

**Filtro de Match de Redes (`networkMatch`)**

* Quando `networkMatch=true`, apenas operações que possuem pelo menos uma rede comum (ex: ERC20, TRC20, BEP20) entre as exchanges de compra e venda serão retornadas
* Valor padrão: `false` (não filtra)
* Campo utilizado: `common_networks` (array de strings)

**Filtro de Volume Mínimo (`volumeMin`)**

* Filtra operações onde `volume_best_buy >= volumeMin` OU `volume_best_sell >= volumeMin`
* Valor padrão: `null` (não filtra)
* Campos utilizados: `volume_best_buy` ou `volume_best_sell`

**Filtro de Spread Mínimo (`spreadMin`)**

* Filtra operações com spread de lucro igual ou superior ao valor especificado
* Valor padrão: `null` (não filtra)
* Campo utilizado: `profit_percent_ask_bid`

<Callout type="warning">
  Todos os novos filtros são opcionais. Os filtros são aplicados em conjunto (AND lógico), então uma operação deve atender a todos os filtros especificados para ser retornada.
</Callout>

## 🔍 Exchanges Suportadas

<CardGroup cols={2}>
  <Card title="Integrações" icon="plug" href="./quickstart">
    Explore integrações com exchanges e APIs externas
  </Card>
</CardGroup>

<Callout type="warning">
  Certifique-se de que as exchanges especificadas nos parâmetros estejam entre as suportadas pelo sistema.
</Callout>
