Cambios de productos · API PÚBLICA V1

Leer cambios de productos

Devuelve cambios ordenados posteriores al cursor indicado.

Conectar con un entornoSin token

La petición sale de tu navegador hacia el entorno indicado. La API key y el token permanecen en la memoria de esta página.

Introduce las credenciales del entorno que quieras probar.
GET/api/public/v1/product-changes
changes:read

Parámetros

cursor

Cursor desde el que continuar.

pageSize

Número máximo de cambios.

Respuesta

200Página de cambios.

PublicProductChange

Cambio de producto

Evento ordenado del flujo incremental de catálogo.

PropiedadTipoDescripción
eventIdobligatoriointeger<int64>Identificador del evento.
sequenceobligatoriointeger<int64>Posición ordenada del cambio.
resourceTypeobligatoriostringTipo de recurso afectado.
operationobligatoriostringcreated, updated, activated, deactivated o deleted.
resourceIdobligatoriouuidIdentificador interno del recurso.
changedAtobligatoriodate-timeFecha del cambio.
originobligatoriostringOrigen del cambio.
originApiClientIduuid | nullCliente API que originó el cambio.
concurrencyTokenstring | nullToken actual del recurso.
tombstoneobligatoriobooleanIndica que el recurso fue eliminado.
Ejemplo JSON
{
  "eventId": 1042,
  "sequence": 1042,
  "resourceType": "product",
  "operation": "updated",
  "resourceId": "14cc9848-f0c0-4457-9fd1-2b60dd46d6f3",
  "changedAt": "2026-10-10T12:00:00",
  "origin": "public-api",
  "originApiClientId": "9db077ca-a3d6-4de9-b521-59be377315db",
  "concurrencyToken": "ct_product_example",
  "tombstone": false
}
Ejemplo de respuesta
{
  "items": [
    {
      "eventId": 1042,
      "sequence": 1042,
      "resourceType": "product",
      "operation": "updated",
      "resourceId": "14cc9848-f0c0-4457-9fd1-2b60dd46d6f3",
      "changedAt": "2026-10-10T12:00:00",
      "origin": "public-api",
      "originApiClientId": "9db077ca-a3d6-4de9-b521-59be377315db",
      "concurrencyToken": "ct_product_example",
      "tombstone": false
    }
  ],
  "nextCursor": "eyJzZXF1ZW5jZSI6MTA0Mn0",
  "hasMore": false
}

Errores

400Solicitud incorrectaapplication/json
401Autenticación inválida o no proporcionadaapplication/json
403Permisos insuficientesapplication/json
404Recurso no encontradoapplication/json
409Conflicto con el estado actualapplication/json
410Recurso ya no disponibleapplication/json
422Error de validaciónapplication/json
429Límite de solicitudes excedidoapplication/json
Ver modelo de error

PublicApiError

Error de API

Formato estable de los errores públicos.

PropiedadTipoDescripción
statusobligatoriointegerCódigo HTTP.
codeobligatoriostringCódigo estable para tratamiento automático.
messageobligatoriostringMensaje legible.
correlationIdobligatoriostringIdentificador para soporte y trazabilidad.
currentConcurrencyTokenstring | nullToken actual cuando existe un conflicto.
validationErrorsobject<string,string[]>Errores agrupados por campo.
Ejemplo JSON
{
  "status": 422,
  "code": "validation_error",
  "message": "The request is invalid.",
  "correlationId": "01J9EXAMPLE",
  "validationErrors": {
    "unitCode": [
      "The unit does not exist."
    ]
  }
}
Probar endpointPetición directa desde el navegador

Petición

RespuestaSin ejecutar
Configura la conexión y ejecuta la petición.