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

# Consultar ventas por producto

`POST /tools/reports_get_sales_by_item`

## Request

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

Herramienta MCP: `reports_get_sales_by_item`.

Devuelve una LISTA de productos con sus datos de venta en un periodo: cantidad vendida, monto antes de impuestos y monto con impuestos. Es una muestra limitada de hasta 10 productos. Se puede filtrar por nombre o referencia de un producto concreto para ver sus ventas.

Úsala cuando el usuario pregunte qué productos se vendieron en un periodo o las ventas de un producto específico. Para los totales agregados, del tipo "¿cuánto se vendió de cada cosa en total?" o "¿cuál fue el monto total de ventas de productos?", usa `reports_get_sales_by_item_totals` en su lugar. Para preguntas del tipo "qué productos" o "cuántas unidades", usa esta herramienta.

Ejemplo de llamada JSON-RPC:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "reports_get_sales_by_item",
    "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 para filtrar las ventas, en formato YYYY-MM-DD.
  - `to` string, required: Fecha final para filtrar las ventas, en formato YYYY-MM-DD.
  - `start` string: Desplazamiento de paginación: número de registros a omitir. 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. Envíalo como objeto: {"itemName": "Nombre del producto"}.
    - `itemName` string: Filtra por nombre del producto. Úsalo cuando el usuario pida las ventas de un producto concreto; extrae el nombre de la consulta. Si se omite, devuelve las ventas de todos los productos.
    - `reference` string: Filtra por referencia o código del producto. Úsalo cuando el usuario pida las ventas de un producto por su referencia; extrae la referencia de la consulta.
    - `order_direction` 'ASC' | 'DESC': Dirección del ordenamiento: ASC ascendente (menor primero), DESC descendente (mayor primero). Debe usarse junto con `order_field`.
    - `order_field` 'totalItems' | 'beforeTaxes' | 'total': Campo de ordenamiento: totalItems (cantidad vendida), beforeTaxes (monto antes de impuestos, también llamado subtotal) o total (monto con impuestos). Si el usuario pide ordenar por "subtotal" o "sub total", usa "beforeTaxes". Debe usarse junto con `order_direction`.

## Response `200`

Lista limitada de productos con sus datos de venta

## 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)
