SafePilot API

Documentação dos endpoints públicos — v1

https://api.safepilotfx.com
GET /v2/checklicense

Versão recomendada. Valida a licença de um cliente, registra a conta utilizada e a versão do EA que fez a requisição.

Parâmetros (query string)

Nome Tipo Descrição
token string Token do produto
email string Email do cliente
account string Identificador da conta (ex: número da conta MT5)
account_type number 0 = Demo · 1 = Real · 2 = Contest
version string Versão do EA que está fazendo a requisição (ex: 1.04)

Exemplo de requisição

GET /v2/checklicense?token=ABC123&[email protected]&account=12345&account_type=1&version=1.04

Exemplo de resposta

{
  "licensed": true,
  "lots_forex": 10,
  "lots_b3": 50,
  "message": "License valid"
}
GET /v1/checklicense

Mantido para retrocompatibilidade. Valida a licença de um cliente e registra a conta utilizada. Para novos EAs, prefira /v2/checklicense.

Parâmetros (query string)

Nome Tipo Descrição
token string Token do produto
email string Email do cliente
account string Identificador da conta (ex: número da conta MT5)
account_type number 0 = Demo · 1 = Real · 2 = Contest

Exemplo de requisição

GET /v1/checklicense?token=ABC123&[email protected]&account=12345&account_type=1

Exemplo de resposta

{
  "licensed": true,
  "lots_forex": 10,
  "lots_b3": 50,
  "message": "License valid"
}
GET /v1/checkversion

Retorna a versão atual e o link de download de um produto.

Parâmetros (query string)

Nome Tipo Descrição
token string Token do produto
source string Abreviação da plataforma (ex: mt5)

Exemplo de requisição

GET /v1/checkversion?token=ABC123&source=mt5

Exemplo de resposta

{
  "version": "1.04",
  "download_url": "https://example.com/download/product-v1.04.ex5",
  "message": "Version found"
}
POST /v1/trades

Recebe um lote de trades fechados enviados pelo EA do MetaTrader. Idempotente por (license_id, account, ticket) — chamadas repetidas com os mesmos tickets não duplicam registros.

Headers

Content-Type: application/json

Body (JSON)

Campo Tipo Descrição
token string Token do produto
email string Email do cliente
account string Identificador da conta (ex: número da conta MT5)
ea_version string? Versão do EA que está enviando (opcional)
trades array Lista de trades fechados (máx. 500 por chamada)

Estrutura de cada trade

Campo Tipo Descrição
ticketnumberTicket único do trade
symbolstringSímbolo (ex: EURUSD)
sidestringbuy ou sell
volumenumberVolume em lotes
open_pricenumberPreço de abertura
close_pricenumberPreço de fechamento
profitnumberLucro / prejuízo
open_timestringISO 8601 (UTC)
close_timestringISO 8601 (UTC)

Exemplo de requisição

POST /v1/trades
Content-Type: application/json

{
  "token": "ABC123",
  "email": "[email protected]",
  "account": "12345",
  "ea_version": "1.04",
  "trades": [
    {
      "ticket": 1001,
      "symbol": "EURUSD",
      "side": "buy",
      "volume": 0.10,
      "open_price": 1.0850,
      "close_price": 1.0875,
      "profit": 25.00,
      "open_time": "2025-04-15T13:20:00Z",
      "close_time": "2025-04-15T15:45:00Z"
    }
  ]
}

Exemplo de resposta

{
  "inserted": 1,
  "updated": 0,
  "skipped": 0,
  "rejected": 0
}

Observações

• Após processar o lote, last_trade_sent_at da licença avança para o maior close_time recebido. Use o campo trades_history_from retornado por /v2/checklicense para enviar apenas os trades novos na próxima chamada.
• Erros: 400 payload inválido · 401 token/licença inválidos · 405 método não permitido.