Пагинация
Чтение значений разбивается на страницы, чтобы большие диапазоны не приходили одним огромным ответом.
Параметры
offset— с какой строки начинать (от 0).limit— сколько строк вернуть. Ограничивается серверным максимумом (1000). Если не указан, сервер вернёт до максимума.
curl "https://app.coverse.team/v1/documents/$DOCUMENT_ID/values/A1:A5000?offset=0&limit=1000" \
-H "Authorization: Bearer $TOKEN"
Что в ответе
В блоке pagination:
| Поле | Значение |
|---|---|
offset | смещение текущей страницы |
limit | применённый лимит |
total | всего строк в диапазоне |
returned | сколько строк вернулось в этом ответе |
hasMore | есть ли ещё строки |
nextOffset | offset для следующей страницы (или null, если это конец) |
Как листать до конца
Повторяйте запрос, подставляя nextOffset, пока hasMore не станет false.
import requests
BASE = "https://app.coverse.team/v1"
headers = {"Authorization": f"Bearer {TOKEN}"}
offset = 0
rows = []
while True:
r = requests.get(
f"{BASE}/documents/{doc_id}/values/A1:A5000",
params={"offset": offset, "limit": 1000},
headers=headers,
).json()["values"]
rows.extend(r["cells"])
if not r["pagination"]["hasMore"]:
break
offset = r["pagination"]["nextOffset"]
Открытые диапазоны (A:A, A1:A) тоже подчиняются пагинации и потолку в 1000
строк — подробнее в разделе «Как устроены диапазоны».