Cómo funciona
POST /api/v1/reports/query ejecuta una consulta analítica agrupada. Enviá JSON con:
source: qué datos consultar (sales,purchases,payments,applied_collections,inventory).dimensions: cómo agrupar resultados (producto, fecha, proveedor, etc.). Máximo 4.measures: qué calcular en cada grupo (total vendido, unidades, stock, etc.). Al menos 1.period: rango de fechas (obligatorio parasales,purchases,paymentsyapplied_collections, y condicional parainventory).reportingCurrency: moneda de presentación (ARSoUSD). Si la omitís, usaARS.dimension_filters: filtros opcionales que reducen el dataset antes de agrupar.include_totals: cuando estrue, la respuesta incluye totales de todas las filas entotals.
product_status, customer_status, supplier_status o warehouse_status con valores active o archived.
Con response_mode: "assistant", podés ordenar cualquier fuente con sort_by
y sort_direction antes de aplicar limit. Usá una dimensión o métrica
seleccionada; las dimensiones ordinales usan su valor original (fechas, semanas,
días de la semana, cuotas o rangos de última compra). Las demás usan su nombre
visible. Los valores vacíos van al final. El sentido predeterminado con sort_by es desc, o asc
para marketplace_listings. Omití ambos campos para conservar el orden
predeterminado. La respuesta registra el orden aplicado en
metadata.resolved_request. Si una métrica no es válida, el error enumera las
claves válidas para esa fuente.
Cuando agrupás por product, su entrada en ids identifica un grupo de
variantes. No es el ID de producto que usan las herramientas de inventario.
Consultá get_product y seleccioná el ID de producto en list_inventory
antes de registrar un movimiento de stock.
Forma de la respuesta
rows tiene:
Las métricas
currency son centavos enteros en la moneda indicada por
metadata.reporting_currency. Dividí por 100 para obtener pesos o dólares.USD. Las operaciones en moneda
extranjera usan su tipo de cambio guardado. Los importes funcionales en ARS que
se presentan en USD usan la cotización BCRA de la fecha de la operación o la
última fecha anterior disponible.
El filtro currency siempre se refiere a la moneda original del comprobante y
es independiente de reportingCurrency. Por ejemplo, podés consultar solo
ventas originales en USD y presentar el resultado en ARS:
Fuente: sales
Consulta las ventas de la organización.
period: obligatorio. Filtra por fecha de venta (commercial) o fecha contable (fiscal), según date_basis.
date_basis: commercial (default) o fiscal.
Dimensiones disponibles (sales)
Métricas disponibles (sales)
Dimensiones filtrables (sales)
customer, customer_status, customer_tax_category, province, city, product, product_status, category, product_type, salesperson, cashier, point_of_sale, point_of_sale_status, warehouse, warehouse_status, register, register_status, integration_source, channel_listing, channel_listing_type, channel_logistics, voucher_type, currency, payment_status, cae_status, invoice_status, formatted_invoice_number, payment_method, payment_method_status, tax_rate.
Fuente: purchases
Consulta las compras de la organización.
period: obligatorio. Filtra por fecha de factura.
Dimensiones disponibles (purchases)
Métricas disponibles (purchases)
Dimensiones filtrables (purchases)
supplier, supplier_status, supplier_tax_category, supplier_province, supplier_city, product, product_status, category, product_type, warehouse, warehouse_status, voucher_type, currency, tax_rate.
Fuente: payments
Consulta cobranzas de clientes y pagos a proveedores.
period: obligatorio. Filtra por fecha de pago/cobranza.
Dimensiones disponibles (payments)
Métricas disponibles (payments)
Dimensiones filtrables (payments)
payment_contact, payment_contact_status, payment_contact_name, assigned_salesperson, payment_contact_tax_category, payment_contact_province, payment_contact_city, point_of_sale, point_of_sale_status, register, register_status, pos_session, safe, safe_status, payment_type, payment_record_status, currency, settlement_currency, formatted_payment_number, payment_method, payment_method_status, payment_method_type.
Fuente: applied_collections
Consulta cobranzas aplicadas a facturas de venta. Cada fila es un importe de un recibo aplicado a una factura. Incluye aplicaciones de anticipos; excluye notas de crédito y aplicaciones de saldo a favor.
period: obligatorio. Filtra por el día en que se aplicó la cobranza (hora de Argentina), no por la fecha del recibo ni de la factura.
Dimensiones disponibles (applied_collections)
Métricas disponibles (applied_collections)
Dimensiones filtrables (applied_collections)
customer, customer_status, assigned_salesperson, formatted_payment_number, formatted_invoice_number, voucher_type.
Fuente: inventory
Consulta el estado de stock. Tiene dos modos según las métricas seleccionadas:
Métricas snapshot (sin period)
Devuelven el estado actual del stock. No aceptan period ni date_basis, salvo que la solicitud agrupe o filtre por abc_grade: esa dimensión clasifica por ventas del período y exige period.
Métricas derivadas de ventas (requieren period)
Se calculan a partir de ventas del período. Requieren period y aceptan date_basis.
Si el historial de stock de la organización empieza después del inicio del período,
inventory_units_sold_per_day y days_of_inventory_remaining cuentan las ventas desde ese día. metadata.sales_rate_window informa el período usado (period, o null sin historial de stock) y una description. inventory_units_sold siempre cuenta todas las ventas del período.
Cuando se usan métricas derivadas, solo son compatibles las dimensiones
product, variant, category, product_type, warehouse y abc_grade.Dimensiones disponibles (inventory)
Dimensiones filtrables (inventory)
product, product_status, category, product_type, warehouse, warehouse_status, currency, abc_grade.
Clasificación ABC (abc_grade)
Ordena las variantes por ventas netas del período (sin IVA, las notas de crédito restan). Una variante es A mientras las anteriores acumulan menos del 80% de las ventas netas, B por debajo del 95% y C en adelante. Las variantes sin ventas o con ventas netas negativas son C.
La clasificación es de toda la organización: los filtros de la solicitud (proveedor, categoría, depósito) y los permisos de quien consulta no cambian el grado de una variante. Requiere
period y acepta date_basis. No está disponible en la fuente sales.dimension_filters
Filtra datos antes de agrupar. Cada clave es una dimensión filtrable para la fuente. El valor es un array de IDs a incluir. La lógica es OR dentro de un filtro y AND entre filtros.
Ejemplos
Ventas por producto en Q1 2026
Ventas por mes y categoría (fiscal)
Compras por proveedor en marzo de 2026
Cobranzas y pagos por método en marzo de 2026
Stock disponible por producto y depósito
Stock parado (variantes clase C)
Días de inventario restante por categoría
Scope requerido
reports:read
Fuente: marketplace_listings
Consultá publicaciones activas de Mercado Libre sin necesitar una venta. Esta fuente usa una instantánea en ARS, sin period, comparación ni conversión a USD. Cada fila es una publicación. Todos los importes son centavos; los datos faltantes conservan null.
Incluí marketplace_item_id (el MLA) o marketplace_listing (el título) entre las dimensiones. Sin response_mode, la respuesta devuelve todas las publicaciones activas en data.rows. Para ordenar y paginar, usá response_mode: "assistant":
data.report.rows y data.report.metadata. Pasá data.report.metadata.next_cursor como cursor en la consulta siguiente. Los filtros y el orden se aplican sobre todas las publicaciones antes de paginar. Una dimensión se ordena por su nombre visible. Los valores null van al final en ambas direcciones. Una página no incluye un total de todas las publicaciones de la cuenta.
Los cargos de Mercado Libre y el resultado solo se informan con una cotización vigente. Si la cotización está pendiente, tiene más de 8 días, fue invalidada, la promoción terminó o la cuenta necesita reconexión, esas métricas son
null. listing_price se conserva.
El desglose usa la misma cotización de Mercado Libre, sin consultas adicionales. La comisión y la financiación se calculan sobre el precio con IVA. Si falta algún dato o la suma de los tres cargos difiere del total por más de un centavo, las tres métricas del desglose son null. Cero confirmado sigue siendo cero. El resultado descuenta listing_fee una sola vez, aunque consultes también el desglose.
recent_units resta las notas de crédito de los últimos 30 días. Si una venta tenía varias publicaciones del mismo producto, la devolución se reparte en proporción a sus unidades, así que puede tener decimales.
Para filtrar una publicación, usá marketplace_item_id. Los filtros sobre marketplace_listing buscan en el título. marketplace_listing_type y marketplace_logistic_type filtran por código (gold_special, gold_pro, free; fulfillment, cross_docking, xd_drop_off, drop_off, self_service, turbo). Las filas conservan los códigos en ids y muestran nombres en labels, como Clásica, Premium, Colecta y Full. Los valores sin nombre conocido se indican como sin identificar. La categoría de Mercado Libre todavía no está disponible como dimensión.
metadata.snapshot informa la hora de lectura y la ventana de unidades.
El acceso a esta fuente requiere permiso de reportes de ventas. Los datos financieros, incluidos filtros y orden por costo o margen, requieren permiso vigente para ver costos. La consulta requiere visibilidad de toda la organización. MCP run_report usa la misma fuente y el mismo cursor.
El resultado excluye publicidad, almacenamiento e ingreso a Full, devoluciones e impuestos retenidos. Leé cómo usar la estimación antes de tomar una decisión de precio.
