> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retailgrid.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Listar coincidencias actuales y decisiones de revisión

> Lee el espacio de revisión actual de tu organización, incluidos los pares rechazados, los enlaces manuales y las decisiones de revisión.

Consulta los mismos pares y estados de revisión del catálogo actual que aparecen en el [espacio de revisión](https://docs.retailgrid.io/es/price-monitoring/review-matches.md) con tu [clave Bearer de la API pública](https://docs.retailgrid.io/es/api-reference/authentication.md). Los resultados incluyen los pares rechazados para que una integración de carga pueda evitar reenviarlos y conservar los enlaces corregidos.

```bash theme={null}
curl --fail-with-body --get \
  "https://clientapi.retailgrid.io/v1/matching/matches" \
  -H "Authorization: Bearer $RETAILGRID_API_KEY" \
  --data-urlencode "competitor=shop.example" \
  --data-urlencode "limit=50"
```

La clave verificada determina la organización. No envíes un ID de organización. La lectura con clave de API está disponible independientemente de que el panel de matching esté habilitado.

## Seleccionar pares

| Parámetro de consulta | Significado |
| :- | :- |
| `status` | `needs_review`, `auto`, `approved` o `rejected`. Omítelo para leer los cuatro estados. |
| `competitor` | Dominio canónico exacto del competidor, como `shop.example`; no es un nombre visible ni un ID del registro. Omítelo para incluir todos los competidores. |
| `rg_item_id` | ID exacto del ítem del catálogo. Omítelo para incluir todos los ítems. |
| `limit` | Filas por página: de 1 a 100, con 50 por defecto. |
| `cursor` | Token opaco de continuación devuelto en `next_cursor`, de hasta 4096 caracteres. Omítelo para iniciar un recorrido. |

Las filas siempre se ordenan por `match_id ASC`. Este endpoint no admite un parámetro de ordenación pública ni un filtro por fecha de observación.

`needs_review` indica que el par requiere revisión actualmente; `auto`, que cumple la política de revisión automática; `approved`, que está aprobado actualmente; y `rejected`, que se ha rechazado o eliminado manualmente. Son estados del espacio de revisión. Por sí solos no determinan si un precio cumple los requisitos de los cálculos de precios posteriores.

## Leer la identidad y las decisiones

Cada entrada de `matches` contiene su `match_id` estable, la `version` actual, `rg_item_id` y `competitor_product_id`, además de los detalles del ítem, el competidor, la URL del producto del competidor, la relación, el método, la confianza, el indicador manual y los metadatos de revisión. Los detalles del ítem proceden del catálogo usado por el espacio de revisión. Las observaciones y la confianza pueden ser `null`.

`competitor.id` es el ID del registro cuando está disponible. Las filas antiguas pueden tener un ID nulo; usa el `competitor.domain` canónico devuelto para identificar y filtrar esas filas. Los nombres visibles pueden cambiar y no son identificadores.

| Campo de decisión | Significado |
| :- | :- |
| `review.status` | Clasificación de revisión actual y autoritativa. |
| `review.action` | Última acción de revisión aplicable: `approve`, `reject`, `reopen` o `rematch`; `null` si no hay un registro de revisión disponible. |
| `review.actor`, `review.decided_at`, `review.note` | Autor, hora y nota de ese registro de revisión. La acción puede ser anterior a un cambio en las evidencias; usa siempre `review.status` para conocer la clasificación actual. |
| `link_decision` | Última operación explícita aplicable sobre el enlace, con `action` (`add` o `remove`), `actor` y `decided_at`; `null` si no está disponible. |
| `latest_decided_at` | Hora más reciente disponible entre los registros de revisión y de operación sobre el enlace; `null` si no hay ninguno. |

Las marcas de tiempo de decisión incluyen un desplazamiento de zona horaria. Los metadatos de decisión antiguos que falten siguen siendo desconocidos; la hora de observación y `matched_at` no sustituyen a la hora de decisión.

`match.is_manual` incluye la intención humana explícita, como aprobar un enlace generado automáticamente. No demuestra que la coincidencia original se creara manualmente. Un rematch deja el par antiguo accesible como rechazado y muestra el reemplazo con sus metadatos reales de adición del enlace. No transfieras la aprobación del par antiguo al reemplazo.

## Recorrer páginas y conciliar cambios

La respuesta incluye `external_org_id`, `matches`, `total`, `counts`, `next_cursor` y `has_more`:

* `counts` siempre contiene `needs_review`, `auto`, `approved` y `rejected`, incluidos los ceros. Los recuentos aplican los filtros de ítem y competidor, pero omiten el filtro de estado seleccionado.
* `total` es el recuento después de aplicar el filtro de estado, o la suma de los cuatro contadores si no se selecciona un estado.
* Los recuentos y los totales abarcan toda la selección, independientemente de la página y el cursor actuales.
* Cuando `has_more` sea true, solicita el `next_cursor` devuelto. La última página tiene `has_more: false` y `next_cursor: null`.

Mantén la misma selección al seguir un cursor:

```bash theme={null}
curl --fail-with-body --get \
  "https://clientapi.retailgrid.io/v1/matching/matches" \
  -H "Authorization: Bearer $RETAILGRID_API_KEY" \
  --data-urlencode "competitor=shop.example" \
  --data-urlencode "limit=50" \
  --data-urlencode "cursor=$NEXT_CURSOR"
```

Procesa una página cada vez y aplica los pares de forma idempotente según su identidad. Las filas y los recuentos son coherentes dentro de cada respuesta; las páginas posteriores leen el estado actual. Es un recorrido en vivo, no una exportación inmutable ni un flujo incremental de cambios. Los pares nuevos o modificados que se ordenen antes del cursor actual aparecen en un recorrido nuevo. Empieza otra vez sin `cursor` al conciliar decisiones de revisión posteriores; `latest_decided_at` no es un punto de control de sincronización.

Los cursores están vinculados a la organización, la generación del catálogo y la selección. Un cambio de generación del catálogo devuelve `409`; vuelve a empezar sin cursor. Las decisiones de revisión y las actualizaciones de observaciones habituales no requieren reiniciar el recorrido. Los cursores no válidos, alterados o que no correspondan a la selección se rechazan. Los valores de consulta no válidos devuelven `422`; las claves de API ausentes, no válidas o revocadas devuelven `401`. Si el espacio de revisión de origen no está disponible, se devuelve un error en lugar de una respuesta exitosa vacía. Se aplican los [límites de uso](https://docs.retailgrid.io/es/api-reference/usage-limits.md) existentes.

Consulta un ejemplo de conciliación de cargas en [Cargas de matching](https://docs.retailgrid.io/es/api-reference/matching/overview.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.