Referência da API HTTP
Todas as rotas da API HTTP local do NeoMath, com método, corpo, parâmetros e respostas, a partir da especificação OpenAPI 3.1.
Nesta página
Servidor: http://127.0.0.1:8790. Toda rota, exceto /v1/saude, exige o token (Authorization: Bearer <token>). Corpo limitado a 16 MB (64 MB em /v1/lote-zip). A especificação OpenAPI completa também está disponível para modelos de IA no recurso MCP neomath://api-http.
Resumo das rotas#
| Método | Rota | O que faz | Servidor |
|---|---|---|---|
| GET | /v1/saude |
versão, rotas, limites e extensões disponíveis, sem token | ambos |
| POST | /v1/eps |
gera o EPS | ambos |
| POST | /v1/svg |
SVG com os glifos em curvas | ambos |
| POST | /v1/png |
PNG | ambos |
| POST | /v1/normalizar |
limpa MathML vindo do Word ou da web | ambos |
| POST | /v1/layout |
posições de glifos e traços | ambos |
| POST | /v1/latex |
LaTeX para MathML | ambos |
| POST | /v1/para-latex |
MathML para LaTeX | ambos |
| POST | /v1/abrir |
recupera a equação de um EPS, SVG ou PNG | ambos |
| POST | /v1/lote |
lote em pasta (só dentro de --raiz) |
ambos |
| POST | /v1/lote-zip |
lote por .zip, sem tocar o disco |
ambos |
| GET | /v1/fontes |
fontes instaladas | ambos |
| POST | /v1/vinculos |
data e tamanho de até 500 arquivos | ambos |
| POST | /v1/ocr |
reconhece a equação de uma imagem | aplicativo |
| POST | /v1/quimica |
desenha uma estrutura ou um esquema de reação | aplicativo |
| POST | /v1/editar |
abre um .eps no NeoMath para edição |
aplicativo |
Pedido de geração#
/v1/eps, /v1/svg e /v1/png recebem o mesmo corpo:
{
"mathml": "x=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}",
"opcoes": {
"neqp": "{ … texto de um .neqp … }",
"cor": [0, 100, 100, 0],
"cor_em_tudo": true,
"formato": "neof",
"tamanho": 12,
"fonte": "Times New Roman"
}
}| Campo | Tipo | Descrição |
|---|---|---|
mathml |
texto, obrigatório | MathML ou LaTeX |
opcoes.neqp |
texto | conteúdo de um estilo |
opcoes.cor |
texto ou lista | #RRGGBB, nome, [c,m,y,k] (0 a 100) ou [r,g,b] (0 a 255) |
opcoes.cmyk |
lista de números | cor em CMYK |
opcoes.cor_em_tudo |
booleano | pinta também traços e delimitadores |
opcoes.tamanho |
número de 1 a 1000 | tamanho do corpo em pt |
opcoes.fonte |
texto | fonte do texto, das variáveis e dos números |
POST /v1/eps#
Devolve JSON com o EPS e as medidas. Com ?bruto=1, devolve o arquivo (application/postscript).
{
"status": "ok",
"eps": "%!PS-Adobe-3.0 EPSF-3.0 …",
"largura_pt": 61.2,
"altura_pt": 24.6,
"linha_base_pt": 7.9,
"mathml": "<math …>",
"correcoes": []
}Erros: 400, 401, 413, 421 e 422.
POST /v1/svg#
Devolve image/svg+xml com os glifos em curvas.
POST /v1/png#
| Parâmetro | Valores | Padrão |
|---|---|---|
dpi |
36 a 2400 | 300 |
fundo |
branco |
transparente |
Devolve image/png.
Conversões#
| Rota | Corpo | Resposta |
|---|---|---|
POST /v1/latex |
o LaTeX | MathML |
POST /v1/para-latex |
o MathML | LaTeX |
POST /v1/normalizar |
o MathML | MathML limpo e lista de correções |
POST /v1/abrir |
o arquivo EPS, SVG ou PNG | MathML, LaTeX, formato e preferências |
POST /v1/layout |
pedido de geração | glifos e traços em JSON |
Lote#
POST /v1/lote#
Só dentro da pasta --raiz do servidor; sem ela, responde 403.
{ "pasta": "/caminho/da/entrada", "saida": "/caminho/da/saida", "opcoes": { "formato": "neof" } }Devolve o relatório do lote.
POST /v1/lote-zip#
Entra o .zip exportado, sai o .zip com as equações em EPS. Não toca o disco. As opções vão no parâmetro opcoes (JSON na URL).
Aplicativo e vínculos#
POST /v1/ocr#
Corpo: a imagem (application/octet-stream: PNG, JPEG, BMP, WebP ou GIF) ou JSON { "imagem": "<base64 ou data:image/...>" }.
{ "status": "ok", "latex": "\\frac{a}{b}", "latex_bruto": "…", "mathml": "<math …>", "provedor": "NeoCR", "milissegundos": 412 }422 quando a imagem é ilegível ou nada é reconhecido; 501 no servidor da linha de comando.
POST /v1/quimica#
{ "texto": "aspirina", "opcoes": { "modo": "auto" } }modo: auto, smiles, nome, chemfig ou texto, mais as opções de estilo do NeoChem. Devolve { ok, svg, tipo, texto, cml, info: { smiles, formula, massa, atomos, ligacoes } }.
POST /v1/editar#
{ "caminho": "/caminho/eq_1.eps" }Abre o arquivo no NeoMath e devolve { status: "ok", vinculo } com o estado antes da edição. 400 se não for .eps, 403 fora da raiz, 404 se o arquivo não existe.
POST /v1/vinculos#
{ "caminhos": ["/caminho/eq_1.eps", "/caminho/eq_2.eps"] }Devolve itens com caminho, existe, modificado_ms (ms desde 1970), tamanho e, fora da raiz, erro. Até 500 caminhos.
Esquema de erro#
{ "status": "erro", "codigo": "entrada", "erro": "mensagem legível" }