---
title: "Consultar rentabilidad por producto"
method: POST
path: "/tools/reports_get_profitability_by_product"
tags: ["Reports"]
---

# Consultar rentabilidad por producto

`POST /tools/reports_get_profitability_by_product`

## Request

- Base URL: `https://mcp.alegra.com`
- URL: `https://mcp.alegra.com/tools/reports_get_profitability_by_product`
- Auth: HTTP bearer

Herramienta MCP: `reports_get_profitability_by_product`.

Devuelve una LISTA de productos con sus datos de rentabilidad en un periodo: ingresos (`totalSold`), costo (`totalCost`), ganancia (`profit`) y porcentaje de margen (`profitPercentage`). Devuelve hasta 10 productos. Se puede filtrar por nombre o referencia de un producto concreto.

Úsala cuando el usuario pregunte por la rentabilidad o el margen de los productos en un periodo: qué productos dejan más margen, cuánto costó y cuánto se ganó con cada uno. Para los totales agregados de rentabilidad, del tipo "¿cuál fue la ganancia total en productos?", usa `reports_get_profitability_by_product_totals` en su lugar. Para preguntas del tipo "qué productos" son más rentables, usa esta herramienta.

Ejemplo de llamada JSON-RPC:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "reports_get_profitability_by_product",
    "arguments": { "from": "2026-09-01", "to": "2026-09-30" }
  }
}
```

Las fechas `from` y `to` son obligatorias y van en formato YYYY-MM-DD. La paginación `start` y `limit` son cadenas de texto: envíalas como texto (por ejemplo "0" y "10"), no como números; `limit` acepta como máximo 10. Los filtros y el ordenamiento van dentro de `optionalParams`, que debe enviarse como objeto JSON, nunca como cadena de texto.

Solo lectura.

## Request body

- object
  - `from` string, required: Fecha inicial del periodo, en formato YYYY-MM-DD.
  - `to` string, required: Fecha final del periodo, en formato YYYY-MM-DD.
  - `start` string: Desplazamiento de paginación. Por defecto "0". Envíalo como texto, no como número.
  - `limit` string: Máximo de registros a devolver, máximo 10. Por defecto "10". Envíalo como texto, no como número.
  - `optionalParams` object: Filtros y ordenamiento opcionales. CRÍTICO: este parámetro debe ser un objeto JSON, NUNCA una cadena de texto; no lo envíes como texto.
    - `itemName` string: Filtra por nombre del producto. Úsalo cuando el usuario pida la rentabilidad de un producto concreto.
    - `reference` string: Filtra por referencia o código del producto. Úsalo cuando el usuario pida la rentabilidad de un producto por su referencia.
    - `order_direction` 'ASC' | 'DESC': Dirección del ordenamiento: ASC ascendente, DESC descendente. Debe usarse junto con `order_field`.
    - `order_field` 'itemName' | 'reference': Campo de ordenamiento: itemName (nombre del producto) o reference. Debe usarse junto con `order_direction`.

## Response `200`

Lista limitada de productos con sus datos de rentabilidad

## Other responses

- `401`: No autorizado (token de Alegra inválido o expirado).

---

[API](https://skmtc.dev/alegra/apis/mcp-alegra.md) - [All operations](https://skmtc.dev/alegra/apis/mcp-alegra/llms.txt) - [OpenAPI document](https://skmtc.dev/alegra/apis/mcp-alegra/revisions/528447af020b?raw)
