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ódigo | Significado |
|---|---|
200 | Sucesso, com corpo de resposta. |
201 | Recurso criado. |
204 | Sucesso, sem corpo. |
400 | Requisição inválida (validação). |
401 | Não autenticado. |
403 | Autenticado, mas sem permissão. |
404 | Recurso não encontrado. |
409 | Conflito com o estado atual. |
503 / 504 | Serviç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" }