Exness Open API

Conecte seu app
ao trading ao vivo

A Exness Open API permite que softwares externos abram operações, busquem dados de preço e recebam atualizações em tempo real — tudo por uma interface limpa e segura. Sem passos manuais.

open_position.json
// POST /v1/trading/accounts/{id}/positions
 
{
  "instrument": "EURUSDm",
  "side": "buy",
  "volume": "0.10",
  "stop_loss_price": "1.08100",
  "take_profit_price": "1.09000"
}
 
// Resposta: ACK 202
{
  "operation_id": "8827491023"
}
 
// Resultado final via evento WebSocket
✓ posição aberta · operação executada

// 01 · Módulos

Quatro coisas que a API faz

A API é dividida em quatro áreas. Cada uma cuida de um trabalho diferente. Você só precisa das partes que combinam com o que seu app faz.

01

Dados de Mercado

Baixe candles históricos de preço de qualquer instrumento. Use para construir gráficos ou testar estratégias em dados históricos.

GET /candles
Períodos: M1 M3 M5 M10 M15 M30 H1 H2 H4 D1 W1 MN
02

Trading

O motor principal. Abra e feche posições, envie ordens limit ou stop, defina stop-loss e take-profit, ou cancele tudo de uma vez.

POST /positions DEL /positions POST /orders PATCH /orders/{id}
03

Eventos do Servidor

Uma conexão WebSocket ao vivo que envia atualizações ao seu app em tempo real. Sem polling. Três streams separadas: eventos de trading, preços de mercado e alertas de margem.

Stream WS de trading Stream WS de preços Stream WS HMR
04

Configuração

Leia configurações da conta, especificações de instrumentos, alavancagem, sessões de trading, swaps e regras de comissão. Sempre consulte antes de operar para validar sua requisição.

GET /instruments GET /snapshot

// 02 · Fluxo

Como uma operação funciona, passo a passo

Operar não é instantâneo. A API separa a instrução do resultado. Esta é a sequência exata, sempre.

PASSO 01
Envie a ordem
Seu app envia um POST com instrumento, direção, volume e SL/TP opcional. Cada requisição precisa de uma Idempotency Key única para evitar duplicatas.
POST /positions
Idempotency-Key: abc-123
PASSO 02
Receba o ACK
A API responde com 202 Accepted e um operation_id. Isso confirma que a instrução foi recebida — não que a operação já foi executada.
202 ACK
"operation_id": "88274..."
PASSO 03
A Exness executa
A operação é processada no servidor. Dependendo das condições de mercado, pode ser executada imediatamente, recotada ou rejeitada.
→ matching engine
→ deal criado
PASSO 04
Receba o resultado via WebSocket
O resultado final chega pela stream de Server Events como um transaction_event. Correlacione com a requisição original usando o operation_id.
WS event: "filled"
operation_id: "88274..."

// 03 · Conceitos-chave

O que você precisa entender

Seis conceitos que aparecem em toda a API. Entendê-los elimina quase toda a confusão na hora de construir.

🔑
Idempotency key
Um ID único anexado a cada requisição de trade. Se a mesma requisição for enviada duas vezes por engano, a API executa só uma vez. Previne ordens fantasma.
🧾
Ordem vs posição
Ordem é uma instrução em espera (limit, stop). Posição é exposição aberta ao mercado. Abrir posição a mercado pula totalmente o estágio de ordem.
Execução assíncrona
Ações de trade retornam um ACK, não o resultado. O desfecho real (executado, rejeitado, cancelado) chega depois pela stream WebSocket.
📡
Streams WebSocket
Três conexões ao vivo rodam em paralelo: uma para eventos de trading, uma para preços, uma para alertas de margem. Se cair, ressincronize pelo endpoint de snapshot.
💰
Strings decimais
Todos os preços e volumes são enviados como strings, não números. Isso evita erros de arredondamento de ponto flutuante. Envie sempre "0.10", não 0.1.
🔒
Modo de trade
Uma conta pode estar em três estados: trading completo, somente-fechamento (só sai de posições) ou trading desativado. Sempre verifique antes de operar.

// 04 · Dados de mercado

Períodos de candle e profundidade do histórico

Quão longe a API pode retornar dados de preço depende do período que você escolher.

Período Código Histórico disponível Máx. por requisição
1 MinutoM11 ano1.000 candles
3 MinutosM31 ano1.000 candles
5 MinutosM52 anos1.000 candles
10 MinutosM102 anos1.000 candles
15 MinutosM153 anos1.000 candles
30 MinutosM303 anos1.000 candles
1 HoraH1Histórico completo1.000 candles
2 / 4 HorasH2 H4Histórico completo1.000 candles
DiárioD1Histórico completo1.000 candles
Semanal / MensalW1 MNHistórico completo1.000 candles

// 05 · Erros

Códigos de erro comuns, em linguagem clara

Quando algo dá errado, a API retorna um status HTTP e um nome de erro de negócio. Aqui está o que cada um significa.

202
Aceito (ACK)
A requisição foi recebida. Aguarde o evento WebSocket para confirmar a execução.
400
Requisição inválida
Parâmetros incorretos. Verifique volume, precisão de preço ou nome do instrumento.
401
Não autorizado
Sua API key está ausente ou inválida. Verifique o header de autenticação.
403
Acesso negado
Sua API key é somente leitura. Não pode executar ações de trade, apenas ler dados.
410
Conta inválida
O ID da conta não existe ou não está mais acessível.
500
Erro do servidor
Erro interno nos servidores da Exness. Tente novamente com backoff exponencial.
NoMoney
Saldo insuficiente
A conta não tem margem suficiente para abrir a posição solicitada nesse volume.
Requote
Preço mudou
O mercado se moveu antes da sua ordem ser processada. Reenvie com o preço atualizado.
MarketClosed
Mercado fechado
O instrumento está fora da sessão de trading. Verifique os horários pelo módulo de Configuração.
CloseOnly
Modo somente-fechamento
A conta está restrita. Só ordens de fechamento de posição são permitidas no momento.

// 06 · Começar

Pronto para conectar?

Comece lendo a configuração da conta, depois abra uma conexão WebSocket e, então, envie sua primeira ordem. Essa é a sequência correta, sempre.

Comece pelos Módulos Revisar conceitos-chave