En el plan Enterprise, Excel, Power BI, Tableau y Qlik leen tus datos con un feed OData, versión 4.0, sin instalar nada: cada tabla es un conjunto de entidades con un tipo para cada columna, que se lee por páginas y se filtra antes de enviarse. La dirección del feed es la raíz del servicio que ves abajo; «Ajustes de la cuenta» › «API» la muestra, y la página de cada herramienta en «Conectores», con su archivo de conexión:
https://mercamap.com/api/portal/odata/v4
Antes de empezar
Un administrador de la cuenta crea una clave para la herramienta, solo con permisos de lectura, en su página de «Conectores»: data:read para las tablas, y además issues:read para las incidencias y campaigns:read para las promociones. Una clave que puede cambiar datos (issues:write, orders:write o catalogue:write) se rechaza, la envíes como la envíes. Cuando la herramienta pida un usuario y una contraseña, elige la autenticación básica: escribe mercamap como usuario y pega como contraseña la clave entera, tal como te la mostró la página al crearla. Sin datos de acceso, el feed responde 401 con WWW-Authenticate: Basic realm="MercaMap", para que la herramienta te los pida. Ningún archivo de conexión lleva una clave.
Excel
En Windows, abre el .odc de una tabla, de la página de «Excel»: Excel añade la consulta y te pide los datos de acceso. O elige «Datos» › «Obtener datos» › «De otras fuentes» › «Desde una fuente OData», pega la dirección, elige «Básica» con mercamap y la clave, y marca las tablas en el navegador. En un Mac, Excel para Microsoft 365 lee la misma dirección desde «Datos» › «Obtener datos (Power Query)» › «OData», con «Básica». En las propiedades de la consulta, haz que se actualice al abrir el archivo. Excel guarda los datos de acceso en ese ordenador, nunca en el libro que compartes.
Power BI
En Power BI Desktop, abre el .pbids de la página de «Power BI», o elige «Obtener datos» › «Fuente OData» y pega la dirección. Elige «Básica», con mercamap como usuario y la clave como contraseña, marca las tablas en el navegador y cárgalas. Publica el informe; en el servicio de Power BI, abre la configuración del modelo semántico, da a su origen de datos la misma autenticación «Básica» y activa «Actualización programada». Microsoft describe el conector de fuente OData y la actualización programada.
Tableau
Para Tableau, el feed tiene una segunda dirección con las mismas tablas en formato Atom (OData 2.0), el que lee su conector OData:
https://mercamap.com/api/portal/odata/v2
Abre en la aplicación de escritorio de Tableau el .tds de una tabla, de la página de «Tableau»: ya apunta a la tabla en esa dirección. O elige «OData» entre los conectores a un servidor y pega la dirección de la tabla (esa raíz seguida de /placements, por ejemplo). Elige «Nombre de usuario y contraseña»: mercamap y la clave. Tableau solo lee OData en extracciones, cada tabla entera y sin $filter, así que hasta 50.000 filas: programa su actualización en el servidor de Tableau o en Tableau Cloud, con los datos de acceso guardados allí. Tableau describe su conector OData.
Qlik
En Qlik Cloud, o en la versión de Qlik instalada en tus servidores, crea una conexión REST a la dirección de una tabla con el método GET y la autenticación básica, mercamap y la clave. Elige como paginación Next URL con la ruta root/@odata.nextLink, para que siga todas las páginas, y carga la tabla value.
Qué tiene cada tabla
Cada fila lleva row_id, una clave hecha con su contenido para las herramientas que piden una; no es ninguno de nuestros identificadores. Las semanas son semanas ISO, escritas 2026-W43, los identificadores son GUID y week_start es una fecha.
| Conjunto de entidades | Qué tiene | Permiso |
|---|---|---|
placements |
Cada uno de tus productos en cada sitio de cada tienda, como lo tiene la exportación de datos | data:read |
prices |
Los precios observados cada semana, por producto y tienda | data:read |
presence |
Cada producto por cadena y provincia, frente a las tiendas que miraron su categoría | data:read |
history |
Lo mismo, semana a semana | data:read |
changes |
Lo que apareció, se movió o cambió de nivel o de precio, por tienda y semana | data:read |
visits |
Las tiendas por visitar, una fila por motivo | data:read |
shares |
Las cuotas por categoría y sección, las marcas competidoras por marca | data:read |
shelf_snapshot |
Cada tienda y referencia propia de una semana publicada: si se vio, facings, nivel, sección y precio | data:read |
price_changes |
Los precios observados que se movieron en una semana publicada | data:read |
issues |
Las incidencias abiertas y cerradas en una semana publicada, con el módulo de campo | issues:read |
promotion_results |
Las semanas por tienda de las promociones que sigues, de una semana publicada | campaigns:read |
Las siete primeras son las tablas de leer los datos y los feeds CSV, con sus columnas; las cuatro últimas son los conjuntos de datos de los archivos semanales, con las suyas, y tienen las últimas 13 semanas publicadas dentro de la historia de tu plan. El documento del servicio y $metadata solo nombran los conjuntos que tu plan abre y tu clave alcanza.
Páginas, filtros y límites
Una página tiene unas 5.000 filas, a veces más; la siguiente está en @odata.nextLink, que todas las herramientas de arriba siguen. El feed acepta $top, $skip, $select, $orderby (una o varias columnas, cada una con asc o desc), $count=true y $filter con eq, ne, gt, ge, lt y le, unidos con and y or, entre paréntesis, frente a textos entre comillas simples, números, true, false, null, fechas e identificadores escritos tal cual:
/prices?$filter=chain eq 'Alpha' and week ge '2026-W40'&$orderby=week desc&$count=true
Cualquier otra cosa ($expand, $search, una función como contains, una opción propia) responde 400, en el formato de errores de OData, con lo que hay que cambiar, para que una herramienta nunca cargue una tabla creyéndola filtrada.
Una tabla se lee entera dentro del límite de filas de las exportaciones de tu plan, 50.000 filas como máximo: una mayor responde 400 hasta que $filter la acota por semana, producto, tienda, cadena, provincia o categoría, que el feed aplica antes de ese límite.
Un conjunto de datos semanal llega con la semana más antigua primero, y cada página sigue donde terminó la anterior; entre semanas, ordénalo primero por week, o deja una sola semana en $filter. week en $filter y una igualdad sobre store_id, chain, province, reference_id o category, unidas con and, lo acotan antes de leerlo. Una petición lee como máximo ese límite de filas: una página termina ahí, con menos filas o ninguna; un recuento o un $skip que necesite más responde 400, y también una semana mayor leída entera (ordenada por algo más que week, o de price_changes, issues o promotion_results).
Cada petición cuenta para las 60 peticiones por minuto de la clave y las 500.000 filas al día de la cuenta; las de un conjunto de datos semanal, también para 20 por minuto por clave y 40 por cuenta, y cuestan cada fila que leen (límites de peticiones y filas al día). Actualiza cuando se publica una semana nueva, no más a menudo.