Skip to main content

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 para sales, purchases, payments y applied_collections, y condicional para inventory).
  • reportingCurrency: moneda de presentación (ARS o USD). Si la omitís, usa ARS.
  • dimension_filters: filtros opcionales que reducen el dataset antes de agrupar.
  • include_totals: cuando es true, la respuesta incluye totales de todas las filas en totals.
El scope siempre es la organización autenticada. No hay acceso a datos de otras organizaciones. Por defecto los reportes incluyen entidades activas y archivadas. Para limitar el alcance, usá filtros de estado como 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

Cada objeto en 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.
La conversión se hace por operación antes de agrupar. Los importes ingresados en USD conservan su valor exacto cuando pedís 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.
Las métricas snapshot no pueden mezclarse con métricas derivadas en la misma solicitud.
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.
Los filtros de estado aceptan valores literales:

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":
En ese modo la respuesta usa 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.