Obtener filas del Grid
curl --request GET \
--url https://clientapi.retailgrid.io/v1/grids/{grid_id}/rowsimport requests
url = "https://clientapi.retailgrid.io/v1/grids/{grid_id}/rows"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://clientapi.retailgrid.io/v1/grids/{grid_id}/rows', 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/grids/{grid_id}/rows",
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/grids/{grid_id}/rows"
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/grids/{grid_id}/rows")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.retailgrid.io/v1/grids/{grid_id}/rows")
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_bodyGrids
Obtener filas del Grid
Exporta el contenido completo de las filas de un Grid: columnas canónicas, personalizadas y de fórmula o calculadas.
GET
/
v1
/
grids
/
{grid_id}
/
rows
Obtener filas del Grid
curl --request GET \
--url https://clientapi.retailgrid.io/v1/grids/{grid_id}/rowsimport requests
url = "https://clientapi.retailgrid.io/v1/grids/{grid_id}/rows"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://clientapi.retailgrid.io/v1/grids/{grid_id}/rows', 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/grids/{grid_id}/rows",
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/grids/{grid_id}/rows"
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/grids/{grid_id}/rows")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.retailgrid.io/v1/grids/{grid_id}/rows")
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 contenido de las filas de un Grid, incluidas las columnas canónicas, las columnas personalizadas añadidas por el usuario y las columnas de fórmula o calculadas. Es el equivalente programático de la acción Export de la aplicación.
Usa este endpoint cuando quieras extraer un espacio de trabajo construido por un usuario (con su conjunto de columnas y sus columnas calculadas) hacia un ERP, una herramienta de BI o un almacén de datos de forma programada.
Los valores numéricos se devuelven como strings; consulta Convenciones para conocer el motivo.
Autenticación
Token Bearer. Consulta Autenticación.Parámetros de ruta
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
grid_id | string | Sí | El Grid a exportar. Descubre los IDs mediante Listar Grids. |
Parámetros de consulta
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
limit | integer | No | Tamaño de página, por defecto 1000, máximo 10000. |
cursor | string | No | Cursor de paginación opaco devuelto por una respuesta anterior. |
columns | string | No | Lista de nombres de columna separados por comas que se incluirán. Por defecto, todas las columnas del Grid. |
updated_after | string (ISO-8601, UTC) | No | Devuelve solo las filas actualizadas en esta marca de tiempo o después. |
Respuesta
{
"grid_id": "grd_01HX2K8E4Y",
"columns": [
{ "name": "product_id", "type": "string", "source": "canonical" },
{ "name": "price", "type": "number", "source": "canonical" },
{ "name": "margin", "type": "number", "source": "formula" },
{ "name": "role", "type": "single_select", "source": "custom" }
],
"data": [
{
"product_id": "SKU-12345",
"price": "4.99",
"margin": "0.31",
"role": "KVI"
}
],
"next_cursor": "eyJvZmZzZXQiOjEwMDB9"
}
Grids grandes
Para Grids de más de ~50k filas, pagina conlimit=5000 y sigue next_cursor hasta que devuelva null. Extraer el Grid completo en una sola llamada está permitido hasta el tope de limit, pero es más lento que las extracciones por bloques y tiene más probabilidades de requerir un reintento ante fallos transitorios.
Si solo necesitas un subconjunto de columnas, pasa columns=: la respuesta es más pequeña y la exportación, más rápida.
Ejemplo de solicitud
curl -s "https://clientapi.retailgrid.io/v1/grids/grd_01HX2K8E4Y/rows?limit=5000&columns=product_id,price,margin" \
-H "Authorization: Bearer rg_live_xxx"

