Pular para o conteúdo
Referência da API HTTP
API, CLI e MCP

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:

JSON
{
  "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).

JSON
{
  "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.

JSON
{ "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/...>" }.

JSON
{ "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#

JSON
{ "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#

JSON
{ "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#

JSON
{ "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#

JSON
{ "status": "erro", "codigo": "entrada", "erro": "mensagem legível" }