Skip to main content
GET
List spot arbitrage opportunities ordered by net spread

📖 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

Parâmetros de Query

Exemplo de Requisição

Exemplo 1: Requisição básica
Exemplo 2: Com filtros avançados

Exemplo de Resposta

Spread líquido e custos

Cada item retorna spread (bruto), netSpread para referenceNotional: 1000, executable, infeasibleReason e o detalhamento fees.takerBuy, fees.takerSell, fees.withdrawal e fees.network. Custos com estimated: true usam os fallbacks conservadores configurados no serviço. Taxas oficiais por rede são usadas somente quando a API documentada da exchange está disponível e foi consultada com sucesso. A ausência de credenciais, falhas temporárias ou exchanges sem endpoint adequado nunca transformam valores estáticos em custos exatos: nesses casos o item permanece estimado. O parâmetro spreadMin filtra netSpread. Quando networkMatch=true, somente rotas executáveis são retornadas; sem esse filtro, rotas inviáveis continuam visíveis com o motivo correspondente.

Campo opcional depth

Cada oportunidade pode trazer um array depth com o spread realizável por faixa de volume, calculado por VWAP sobre a profundidade do livro de ofertas:
O campo não vem em todas as oportunidades: para não multiplicar o custo de rede, apenas as N de maior spread bruto são enriquecidas nesta listagem (DEPTH_TOP_N, padrão 5). O detalhe da operação (GET /v1/arbitrage/{id}) sempre calcula. Trate depth como opcional. Detalhes em Spread realizável por profundidade.

📝 Notas sobre os Parâmetros

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

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
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.

🔍 Exchanges Suportadas

Integrações

Explore integrações com exchanges e APIs externas
Certifique-se de que as exchanges especificadas nos parâmetros estejam entre as suportadas pelo sistema.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

spreadMin
number

Minimum net spread percentage

networkMatch
boolean

When true, returns only executable routes

Response

200 - application/json

Spot opportunities

spread
number
required

Gross spread percentage

netSpread
number
required

Net spread percentage for referenceNotional

referenceNotional
number
required
Example:

1000

executable
boolean
required
costModelVersion
integer
required
Example:

1

fees
object
required
infeasibleReason
enum<string>
Available options:
no_common_network,
withdrawal_suspended,
deposit_suspended