Skip to main content

Reading Data (GET)

GET requests return rows from your sheet as JSON. The first row of the sheet provides the column names used in the response.

Read all rows​

curl 'https://api.sheetbest.com/sheets/<api-id>'

Response:

[
{ "Id": "1", "Name": "John Doe", "Age": "23" },
{ "Id": "2", "Name": "Jane Doe", "Age": "34" }
]

Read a single row​

Append the row index to the URL. Indexes are zero-based, so /2 returns the third data row.

curl 'https://api.sheetbest.com/sheets/<api-id>/2'

Read a range of rows​

Use the <start>:<end> shorthand to read a contiguous range. It is equivalent to passing _limit and _offset:

# Rows 2 and 3
curl 'https://api.sheetbest.com/sheets/<api-id>/2:4'

# Same request, expanded
curl 'https://api.sheetbest.com/sheets/<api-id>?_limit=2&_offset=2'

See Pagination for more.

Parsed vs. raw values​

By default, all values are returned as parsed strings. Add ?_raw=1 to receive native types (numbers, booleans, dates) as Google Sheets stores them:

curl 'https://api.sheetbest.com/sheets/<api-id>?_raw=1'

For other response shapes (records, dict, list, series, split, index) see Data Formats.

Reading from a specific tab​

The first sheet tab is used by default. To read another tab, append /tabs/<TabName>:

curl 'https://api.sheetbest.com/sheets/<api-id>/tabs/Admin'

See Working with Tabs.

Filtering and querying​

You can filter rows by column value (/<Column>/<Value>, with optional * wildcards) or use comparison operators with /query. These are documented separately:

Response headers​

Every response includes headers describing your sheet and quota usage, including X-Sheet-Rows, X-Sheet-Columns, and the X-RateLimit-* series. See Response Headers.