Documentação dos endpoints públicos — v1
https://api.safepilotfx.com
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.
| Nome | Tipo | Descrição |
|---|---|---|
| token | string | Token do produto |
| 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) |
GET /v2/checklicense?token=ABC123&[email protected]&account=12345&account_type=1&version=1.04
{
"licensed": true,
"lots_forex": 10,
"lots_b3": 50,
"message": "License valid"
}
Mantido para retrocompatibilidade. Valida a licença de um
cliente e registra a conta utilizada. Para novos EAs, prefira
/v2/checklicense.
| Nome | Tipo | Descrição |
|---|---|---|
| token | string | Token do produto |
| string | Email do cliente | |
| account | string | Identificador da conta (ex: número da conta MT5) |
| account_type | number |
0 = Demo · 1 = Real · 2 =
Contest
|
GET /v1/checklicense?token=ABC123&[email protected]&account=12345&account_type=1
{
"licensed": true,
"lots_forex": 10,
"lots_b3": 50,
"message": "License valid"
}
Retorna a versão atual e o link de download de um produto.
| Nome | Tipo | Descrição |
|---|---|---|
| token | string | Token do produto |
| source | string | Abreviação da plataforma (ex: mt5) |
GET /v1/checkversion?token=ABC123&source=mt5
{
"version": "1.04",
"download_url": "https://example.com/download/product-v1.04.ex5",
"message": "Version found"
}
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.
Content-Type: application/json
| Campo | Tipo | Descrição |
|---|---|---|
| token | string | Token do produto |
| 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) |
| Campo | Tipo | Descrição |
|---|---|---|
| ticket | number | Ticket único do trade |
| symbol | string | Símbolo (ex: EURUSD) |
| side | string | buy ou sell |
| volume | number | Volume em lotes |
| open_price | number | Preço de abertura |
| close_price | number | Preço de fechamento |
| profit | number | Lucro / prejuízo |
| open_time | string | ISO 8601 (UTC) |
| close_time | string | ISO 8601 (UTC) |
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"
}
]
}
{
"inserted": 1,
"updated": 0,
"skipped": 0,
"rejected": 0
}
• 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.