List Rows
curl --request GET \
--url https://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}', 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://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123
}
],
"meta": {
"limit": 123,
"offset": 123,
"has_more": true,
"next_offset": 123
}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}Endpoint examples
List Rows
Returns a paginated list of rows from the worksheet. Results are returned in a ‘data’ envelope with pagination metadata in ‘meta’.
GET
/
{endpointNamespace}
/
{projectName}
/
{tabSlug}
List Rows
curl --request GET \
--url https://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}', 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://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sheetninja.io/{endpointNamespace}/{projectName}/{tabSlug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123
}
],
"meta": {
"limit": 123,
"offset": 123,
"has_more": true,
"next_offset": 123
}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}{
"error": "not_found",
"message": "<string>",
"data": {}
}Authorizations
The Bearer Token associated with your endpoint. This is only required if you have enabled protection for this endpoint.
Path Parameters
Your unique user namespace (e.g., c01c052...)
The slugified name of your project
The slugified name of the specific worksheet (tab)
Query Parameters
Number of rows to return per page (Default: 100 for Trial)
Number of rows to skip (0-indexed)
Response
The row data will be returned to you as JSON along with the row ID
Was this page helpful?
