List grids
curl --request GET \
--url https://clientapi.retailgrid.io/v1/gridsimport requests
url = "https://clientapi.retailgrid.io/v1/grids"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://clientapi.retailgrid.io/v1/grids', 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",
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"
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")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.retailgrid.io/v1/grids")
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
List grids
List the grids in your account, including a column-schema summary and row count per grid.
GET
/
v1
/
grids
List grids
curl --request GET \
--url https://clientapi.retailgrid.io/v1/gridsimport requests
url = "https://clientapi.retailgrid.io/v1/grids"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://clientapi.retailgrid.io/v1/grids', 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",
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"
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")
.asString();require 'uri'
require 'net/http'
url = URI("https://clientapi.retailgrid.io/v1/grids")
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_bodyReturns the grids visible to your API key, with enough metadata to discover grid IDs before exporting their rows via Get grid rows.
The
Authentication
Bearer token. See Authentication.Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Page size, default 50, max 200. |
cursor | string | No | Opaque pagination cursor returned by a previous response. |
name | string | No | Case-insensitive substring match against grid name. |
updated_after | string (ISO-8601, UTC) | No | Only return grids updated at or after this timestamp. |
Response
{
"data": [
{
"grid_id": "grd_01HX2K8E4Y",
"name": "Dairy Q2 review",
"row_count": 1284,
"created_at": "2026-04-12T08:42:11Z",
"updated_at": "2026-05-21T19:00:55Z",
"created_by": {
"user_id": "usr_01J7",
"email": "pricing@yourcompany.com"
},
"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" }
]
}
],
"next_cursor": "eyJvZmZzZXQiOjUwfQ=="
}
columns array is a summary - column names, semantic type, and where each column came from (canonical, custom, formula, ai). It does not include row values. To pull row values, call Get grid rows with the grid_id.
Example request
curl -s "https://clientapi.retailgrid.io/v1/grids?limit=25&updated_after=2026-05-01T00:00:00Z" \
-H "Authorization: Bearer rg_live_xxx"
Related
⌘I

