tabulyzer

API

Всё, что можно сделать с таблицей на сайте, можно сделать и запросом: создать таблицу, прочитать диапазон, дописать строки. Ответы — JSON.

Ключ

Создайте ключ в кабинете, в разделе API, и передавайте его в заголовке каждого запроса. Ключ видно только при создании.

curl https://tabulyzer.ru/v1/tables \
  -H "Authorization: Bearer tz_…"

Ошибка — HTTP-код 4xx и причина в поле detail: 401 — неверный ключ, 404 — таблицы или листа нет у этого аккаунта, 429 — слишком часто.

Таблицы

GET/v1/tables

Список таблиц аккаунта, свежие сверху. Параметр q — поиск по названию.

POST/v1/tables

Новая таблица с одним пустым листом.

{"name": "Склад"}
GET/v1/tables/{id}

Таблица и её листы (номер, название, размер сетки).

PATCH/v1/tables/{id}

Переименовать.

{"name": "Склад 2026"}
POST/v1/tables/{id}/copy

Копия таблицы со всеми листами.

DELETE/v1/tables/{id}

Удалить таблицу со всеми листами — навсегда.

Листы

POST/v1/tables/{id}/sheets

Новый лист в конце.

{"name": "Проданные"}
GET/v1/sheets/{id}

Лист целиком: размер, раскладка и непустые ячейки списком [строка, колонка, значение], счёт с нуля. Скрытая от читателей ячейка — с четвёртым элементом 1.

Ответ
{"sheet": {"id": 12, "name": "Лист 1", "rows": 1000, "cols": 26, …}, "cells": [[0, 0, "Логин"], [0, 1, "Пароль"]]}
PATCH/v1/sheets/{id}

Название, место среди листов (position), число строк и колонок, ширины колонок в пикселях.

{"name": "В продаже", "col_widths": {"0": 180}}
PATCH/v1/sheets/{id}

Раскладка: свои id колонок (латиница, цифры, _), скрытие колонок и строк от читателей, группы колонок (stack — столбиком, join — через двоеточие). Передаётся целиком.

{"col_meta": {"0": {"id": "login"}, "1": {"id": "password", "blur": true}}, "groups": [{"c": 0, "n": 2, "mode": "stack"}]}
POST/v1/sheets/{id}/duplicate

Копия листа рядом с ним.

DELETE/v1/sheets/{id}

Удалить лист. Последний лист таблицы удалить нельзя.

Значения

Адреса — как в любой таблице: A1, C12, диапазон A1:C10. Значения передаются строками; число или true тоже можно — сохранятся текстом.

GET/v1/sheets/{id}/values?range=A1:C10

Значения диапазона двумерным списком. Без range — вся заполненная часть листа.

Ответ
{"range": "A1:C2", "values": [["Логин", "Пароль", "Почта"], ["nord.fox", "Tz4!pw9K", ""]]}
POST/v1/sheets/{id}/values

Записать двумерный список, начиная с ячейки start. Пустая строка очищает ячейку.

{"start": "A2", "values": [["mira_k", "8vQ@s1Lr"]]}
POST/v1/sheets/{id}/append

Дописать строки под последней заполненной строкой листа.

{"values": [["hunter_77", "q8#Lm2vX"], ["lynx.o", "Pp3$kd0W"]]}
Ответ
{"written": 4, "version": 18, "range": "A5:B6"}
POST/v1/sheets/{id}/cells

Точечная запись ячеек списком [строка, колонка, значение], до 20 000 за запрос.

{"cells": [[0, 0, "Логин"], [5, 2, ""]]}
POST/v1/sheets/{id}/clear

Очистить диапазон.

{"range": "A2:D100"}
POST/v1/sheets/{id}/blur

Скрыть ячейки от читателей (on: false — открыть). Читателю значение не отдаётся вовсе: вместо него null.

{"cells": [[1, 1], [2, 1]], "on": true}

Строки и колонки

POST/v1/sheets/{id}/rows

Вставить (insert) или удалить (delete) строки, начиная с номера at (с нуля). Данные ниже сдвигаются.

{"op": "insert", "at": 1, "count": 3}
POST/v1/sheets/{id}/rows

Перенести строки: первая из них встанет на номер to.

{"op": "move", "at": 4, "count": 2, "to": 0}
POST/v1/sheets/{id}/cols

То же для колонок — вставка, удаление, перенос.

{"op": "delete", "at": 2, "count": 1}

Доступ

Роли: owner — владелец, edit — чтение и редактирование, read — только чтение. В списке таблиц у каждой указана ваша роль. Управлять доступом может только владелец.

GET/v1/tables/{id}/access

Ссылка и люди с доступом.

PUT/v1/tables/{id}/access/link

Ссылка: пусто — выключена, read — только чтение, edit — вошедшие по ней ещё и правят. Без аккаунта по ссылке только смотрят.

{"role": "read"}
POST/v1/tables/{id}/access/link/reset

Новая ссылка, старая перестаёт открываться.

POST/v1/tables/{id}/access/members

Открыть таблицу аккаунту по email.

{"email": "team@example.com", "role": "edit"}
DELETE/v1/tables/{id}/access/members/{account_id}

Закрыть доступ.

GET/v1/share/{token}

Таблица по ссылке без ключа — только чтение; лист — /v1/share/{token}/sheets/{id}.

Ограничения

Таблиц на аккаунт
1 000
Листов в таблице
100
Строк на листе
100 000
Колонок на листе
500
Заполненных ячеек на листе
500 000
Символов в ячейке
32 767
Запросов с одного ключа
600 в минуту

Полная схема запросов и ответов — /v1/docs.