Convenções

As convenções da API REST do AlgoServer: base, autenticação, seleção de mesa, permissões, códigos de status e formato de datas.

Regras que valem para toda a API. Entendê-las uma vez evita repeti-las em cada rota.

Base

Base e formato

Todas as rotas ficam sob o prefixo /api. O corpo das requisições e das respostas é JSON. Os nomes dos campos seguem camelCase, e a leitura é tolerante a maiúsculas e minúsculas.

Datas e horários usam o formato ISO 8601 em UTC (por exemplo, 2026-07-10T21:00:00Z). Durações, como as janelas de horário das estratégias, usam hh:mm:ss.

Autenticação

Token ou chave de API

Cada chamada é autenticada de uma de duas formas: pelo token obtido no login, ou por uma chave de API.

# Token (JWT), obtido em /api/auth/login
Authorization: Bearer <access_token>

# Chave de API
X-Api-Key: <chave>

Mesa

Seleção de mesa

O cabeçalho X-Desk indica a mesa em nome da qual a operação é feita. Traders operam sempre a própria mesa e podem omiti-lo; perfis com visão de várias mesas, como Risk e Admin, usam o X-Desk para escolher a mesa alvo.

X-Desk: <mesa>

Permissões

Permissões

Cada rota exige uma permissão, concedida pelo papel do usuário. Por exemplo, criar e iniciar estratégias exige Editar estratégias; cancelar exige Cancelar estratégias. A matriz completa está em Controle de acesso.

Respostas

Códigos de status

CódigoSignificado
200Sucesso, com corpo de resposta.
201Recurso criado.
204Sucesso, sem corpo.
400Requisição inválida (validação).
401Não autenticado.
403Autenticado, mas sem permissão.
404Recurso não encontrado.
409Conflito com o estado atual.
503 / 504Serviço indisponível ou tempo esgotado.

Erros

Erros de validação vêm como uma lista de campo: mensagem, uma por linha. Os demais vêm como uma mensagem simples.

{ "message": "Invalid credentials" }