Saltar al contenido
Referencia de la API HTTP
API, CLI e MCP

Referencia de la API HTTP

Todas las rutas de la API HTTP local de NeoMath, con método, cuerpo, parámetros y respuestas, a partir de la especificación OpenAPI 3.1.

En esta página

Servidor: http://127.0.0.1:8790. Toda ruta, salvo /v1/saude, exige el token (Authorization: Bearer <token>). Cuerpo limitado a 16 MB (64 MB en /v1/lote-zip). La especificación OpenAPI completa también está disponible para modelos de IA en el recurso MCP neomath://api-http.

Resumen de rutas#

Método Ruta Qué hace Servidor
GET /v1/saude versión, rutas, límites y extensiones disponibles, sin token ambos
POST /v1/eps genera el EPS ambos
POST /v1/svg SVG con los glifos en curvas ambos
POST /v1/png PNG ambos
POST /v1/normalizar limpia MathML que viene de Word o la web ambos
POST /v1/layout posiciones de glifos y trazos ambos
POST /v1/latex LaTeX a MathML ambos
POST /v1/para-latex MathML a LaTeX ambos
POST /v1/abrir recupera la ecuación de un EPS, SVG o PNG ambos
POST /v1/lote lote en carpeta (solo dentro de --raiz) ambos
POST /v1/lote-zip lote por .zip, sin tocar el disco ambos
GET /v1/fontes fuentes instaladas ambos
POST /v1/vinculos fecha y tamaño de hasta 500 archivos ambos
POST /v1/ocr reconoce la ecuación de una imagen aplicación
POST /v1/quimica dibuja una estructura o un esquema de reacción aplicación
POST /v1/editar abre un .eps en NeoMath para edición aplicación

Petición de generación#

/v1/eps, /v1/svg y /v1/png reciben el mismo cuerpo:

JSON
{
  "mathml": "x=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}",
  "opcoes": {
    "neqp": "{ … texto de un .neqp … }",
    "cor": [0, 100, 100, 0],
    "cor_em_tudo": true,
    "formato": "neof",
    "tamanho": 12,
    "fonte": "Times New Roman"
  }
}
Campo Tipo Descripción
mathml texto, obligatorio MathML o LaTeX
opcoes.neqp texto contenido de un estilo
opcoes.cor texto o lista #RRGGBB, nombre, [c,m,y,k] (0 a 100) o [r,g,b] (0 a 255)
opcoes.cmyk lista de números color en CMYK
opcoes.cor_em_tudo booleano pinta también trazos y delimitadores
opcoes.tamanho número de 1 a 1000 tamaño del cuerpo en pt
opcoes.fonte texto fuente del texto, de las variables y de los números

POST /v1/eps#

Devuelve JSON con el EPS y las medidas. Con ?bruto=1, devuelve el archivo (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": []
}

Errores: 400, 401, 413, 421 y 422.

POST /v1/svg#

Devuelve image/svg+xml con los glifos en curvas.

POST /v1/png#

Parámetro Valores Predeterminado
dpi 36 a 2400 300
fundo branco transparente

Devuelve image/png.

Conversiones#

Ruta Cuerpo Respuesta
POST /v1/latex el LaTeX MathML
POST /v1/para-latex el MathML LaTeX
POST /v1/normalizar el MathML MathML limpio y lista de correcciones
POST /v1/abrir el archivo EPS, SVG o PNG MathML, LaTeX, formato y preferencias
POST /v1/layout petición de generación glifos y trazos en JSON

Lote#

POST /v1/lote#

Solo dentro de la carpeta --raiz del servidor; sin ella, responde 403.

JSON
{ "pasta": "/caminho/da/entrada", "saida": "/caminho/da/saida", "opcoes": { "formato": "neof" } }

Devuelve el informe del lote.

POST /v1/lote-zip#

Entra el .zip exportado, sale el .zip con las ecuaciones en EPS. No toca el disco. Las opciones van en el parámetro opcoes (JSON en la URL).

Aplicación y vínculos#

POST /v1/ocr#

Cuerpo: la imagen (application/octet-stream: PNG, JPEG, BMP, WebP o GIF) o JSON { "imagem": "<base64 o data:image/...>" }.

JSON
{ "status": "ok", "latex": "\\frac{a}{b}", "latex_bruto": "…", "mathml": "<math …>", "provedor": "NeoCR", "milissegundos": 412 }

422 cuando la imagen es ilegible o no se reconoce nada; 501 en el servidor de la línea de comandos.

POST /v1/quimica#

JSON
{ "texto": "aspirina", "opcoes": { "modo": "auto" } }

modo: auto, smiles, nome, chemfig o texto, más las opciones de estilo de NeoChem. Devuelve { ok, svg, tipo, texto, cml, info: { smiles, formula, massa, atomos, ligacoes } }.

POST /v1/editar#

JSON
{ "caminho": "/caminho/eq_1.eps" }

Abre el archivo en NeoMath y devuelve { status: "ok", vinculo } con el estado antes de la edición. 400 si no es .eps, 403 fuera de la raíz, 404 si el archivo no existe.

POST /v1/vinculos#

JSON
{ "caminhos": ["/caminho/eq_1.eps", "/caminho/eq_2.eps"] }

Devuelve itens con caminho, existe, modificado_ms (ms desde 1970), tamanho y, fuera de la raíz, erro. Hasta 500 rutas.

Esquema de error#

JSON
{ "status": "erro", "codigo": "entrada", "erro": "mensaje legible" }