Listar productos
curl --request GET \
--url https://clientapi.retailgrid.io/v1/productsimport requests
url = "https://clientapi.retailgrid.io/v1/products"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://clientapi.retailgrid.io/v1/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://clientapi.retailgrid.io/v1/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://clientapi.retailgrid.io/v1/products"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://clientapi.retailgrid.io/v1/products")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.retailgrid.io/v1/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyProductos
Listar productos
Lista los registros de producto enriquecidos, incluidas las columnas personalizadas añadidas en el momento de la importación.
GET
/
v1
/
products
Listar productos
curl --request GET \
--url https://clientapi.retailgrid.io/v1/productsimport requests
url = "https://clientapi.retailgrid.io/v1/products"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://clientapi.retailgrid.io/v1/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://clientapi.retailgrid.io/v1/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://clientapi.retailgrid.io/v1/products"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://clientapi.retailgrid.io/v1/products")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.retailgrid.io/v1/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyDevuelve el catálogo de productos visible para tu clave de API. Cada registro incluye los campos canónicos del producto más un mapa
El mapa
custom con las columnas personalizadas que se añadieron al importar los productos.
Es la contraparte de lectura de Upsert masivo de productos. Úsalo para la ingesta en ERP / BI cuando necesites el estado enriquecido actual del catálogo.
Autenticación
Token Bearer. Consulta Autenticación.Parámetros de consulta
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
limit | integer | No | Tamaño de página, por defecto 100, máximo 1000. |
cursor | string | No | Cursor de paginación opaco devuelto por una respuesta anterior. |
product_id | string | No | Filtra por un único ID de producto canónico. |
sku | string | No | Filtra por un único SKU. |
updated_after | string (ISO-8601, UTC) | No | Devuelve solo los productos actualizados en esta marca de tiempo o después. |
Respuesta
{
"data": [
{
"product_id": "SKU-12345",
"sku": "SKU-12345",
"name": "Whole Milk 1L",
"brand": "Arla",
"category": "Dairy",
"price": "1.49",
"unit_cost": "0.92",
"image_url": "https://cdn.example.com/sku-12345.jpg",
"product_url": "https://www.example.com/products/sku-12345",
"created_at": "2026-01-04T11:08:00Z",
"updated_at": "2026-05-21T08:14:21Z",
"custom": {
"role": "KVI",
"buyer": "E. Kirilov"
}
}
],
"next_cursor": "eyJvZmZzZXQiOjEwMH0="
}
custom contiene todas las columnas personalizadas asociadas al producto durante la importación. Las claves son los nombres de columna que definiste.
Los valores numéricos se devuelven como cadenas. Consulta Convenciones.
Ejemplo de solicitud
curl -s "https://clientapi.retailgrid.io/v1/products?updated_after=2026-05-01T00:00:00Z&limit=500" \
-H "Authorization: Bearer rg_live_xxx"

