Public API
Мощный инструмент для разработчиков. Полное руководство по интеграции Табрики с вашими сервисами и автоматизации процессов.
Что можно делать через API
Public API Табрики открывает безграничные возможности для автоматизации. Вы можете программно:
- Запрашивать списки записей с поддержкой сложной фильтрации и пагинации.
- Получать детальную информацию по конкретной записи.
- Создавать новые строки, обновлять существующие данные и удалять ненужную информацию.
- Гибко управлять ответом сервера: применять сортировку и запрашивать только необходимые столбцы.
Быстрый старт за 3 шага
Начать работу с API проще простого:
- Зайдите в настройки вашей организации и откройте вкладку API.
- Сгенерируйте новый токен доступа, выбрав нужный уровень прав (только чтение или чтение и запись).
- При выполнении любых запросов к нашему API обязательно передавайте этот токен в HTTP-заголовке:
Authorization: Bearer <ваш_токен>
Методы и эндпоинты
Наше API использует методы REST. Доступны GET для чтения, POST для создания, PATCH для частичного обновления и DELETE для удаления.
GET /public/v1/databases/{database_id}/tables/{table_id}/records— коллекция записей (200 OK,data.records).GET /public/v1/databases/{database_id}/tables/{table_id}/records/{row_id}— одна запись (200 OK,data.record).POST /public/v1/databases/{database_id}/tables/{table_id}/records— создание (201 Created,Location,data.id,data.data).PATCH /public/v1/databases/{database_id}/tables/{table_id}/records/{row_id}— изменение переданных полей (200 OK,data.record).DELETE /public/v1/databases/{database_id}/tables/{table_id}/records/{row_id}— удаление (200 OK,data.deleted).
POST и PATCH принимают JSON {"data": {...}}. PUT отсутствует: полной замены записи нет.
Обязательные параметры
ID передаются в URL пути, а не query-параметрами: database_id и table_id; для одной записи — ещё row_id. Все значения целочисленные. database_id и table_id скопируйте из URL открытой базы и таблицы, а row_id — из ответа списка/создания или из API-панели.
Запись в интерфейсе соответствует record, а колонки — ключам объекта data. В data можно использовать имя колонки или её системный ID.
Параметры REST v1
GET для коллекции и одной записи, а также PATCH поддерживают response_format для управления форматом ответа.
Параметры коллекции GET:
limit(от 1 до 1000) иoffset— для реализации постраничной навигации (пагинации).where— мощный конструктор для фильтрации данных на стороне сервера.sort— правила сортировки результатов.fields— перечисление конкретных полей (по именам или их ID), которые должны вернуться в ответе. Помогает экономить трафик.
response_format (GET и PATCH):
ids— использовать системные ID полей в качестве ключей ответа.names— использовать человекочитаемые названия полей (рекомендуется).
Параметр rich_text (GET):
markdown— вернуть исходный Markdown (это значение по умолчанию).html— вернуть безопасно форматированный HTML для публикации.raw— вернуть plain text без форматирования (без Markdown и HTML).
Используйте rich_text только для длинного текста, где включен режим форматирования (Markdown).
Синтаксис where
Синтаксис фильтрации строится на базовом формате: (имя_поля,оператор,значение).
Логические комбинации:
~and— логическое И (оба условия верны). Пример:(Статус,eq,Активен)~and(Сумма,ge,100)~or— логическое ИЛИ (хотя бы одно условие верно). Пример:(Статус,eq,Новый)~or(Статус,eq,В работе)~not— логическое НЕ (инверсия). Пример:~not(Статус,eq,Архив)
Доступные операторы сравнения:
eq/neq— равно / не равно.null/notnull— проверка на пустоту. Внимание: значение справа не указывается! Пример:(Email,null)gt/ge/lt/le— строго больше, больше или равно, строго меньше, меньше или равно (для чисел и дат).like/nlike— содержит / не содержит указанную подстроку (для текста).in— точное совпадение с одним из значений списка (через запятую). Пример:(Статус,in,Новый,В работе)btw— попадание в диапазон (включительно). Пример:(Сумма,btw,100,500)
Совместимость операторов:
Использование несовместимого оператора приведет к ошибке 400 Bad Request.
- Текст, URL, Email:
eq,neq,like,nlike,in,null,notnull - Числа, Длительность, Даты:
eq,neq,gt,ge,lt,le,btw,in,null,notnull - Чекбокс:
eq,null,notnull - Одиночный выбор, Множественный выбор, Пользователь:
eq,neq,in,null,notnull - Файл, Связи: только
null,notnull - JSON:
like,nlike,null,notnull
Работа с датами (ключевые слова):
Вместо точных дат вы можете использовать динамические переменные:
today,tomorrow,yesterdayexactDate,YYYY-MM-DD(Пример:(Дата,eq,exactDate,2026-05-01))daysAgo,N(Пример:(Дата,ge,daysAgo,7))daysFromNow,N(Пример:(Дата,le,daysFromNow,30))
Составной пример запроса
Давайте разберем сложный запрос на получение списка записей:
GET /public/v1/databases/82/tables/142/records?limit=25&offset=0&fields=Имя,Статус&sort=-Дата регистрации&where=(Статус,eq,Активен)~and(Имя,like,иван)
Разбор по компонентам:
- Маршрутизация:
82и142в path указывают, откуда брать данные. - Пагинация:
limit=25иoffset=0запрашивают первую страницу из 25 строк. - Оптимизация:
fields=Имя,Статуспросит вернуть только два столбца. - Сортировка:
sort=-Дата регистрациисортирует по убыванию даты. - Фильтрация:
where=...оставляет только активные записи, где имя содержит "иван". Для URL используйте percent-encoding значений.
Тело POST/PATCH
При создании через POST или частичном обновлении через PATCH данные передаются в теле запроса в формате JSON.
Структура тела запроса должна выглядеть так:
{
"data": {
"Название поля": "Новое значение",
"fld_123456": 100
}
}В объекте data можно использовать имя колонки или её системный ID.
Файловые поля через Public API доступны только для чтения. Чтобы добавить, заменить или удалить файл, используйте файловые действия в интерфейсе.
Для форматированного длинного текста передавайте текст в формате Markdown. Сервер хранит исходный Markdown, а формат выдачи на чтении выбирается в конструкторе запроса.
Ответы: POST возвращает 201 Created, Location и data.id; PATCH возвращает полную запись в data.record и поддерживает response_format (names / ids).
Лимиты и статистика API
- Месячный лимит: Счётчик обновляется по расчётному периоду организации, дату сброса можно посмотреть на вкладке Статистика в настройках.
- История запросов: на вкладке API доступна лента обработанных запросов за последние 30 дней с фильтром по токену и пагинацией. Запросы, отклонённые из-за исчерпанного месячного лимита, показываются отдельным предупреждением и не попадают в ленту. Подробнее на странице История запросов Public API.
- Статистика: на вкладке Статистика отображается график использования API по дням за 30 дней и сводка по текущему периоду.
- Лимит строк: при попытке создать больше записей, чем позволяет лимит организации, сервер вернёт ошибку
row_limit_exceeded. - Лимит данных таблиц: если новые значения ячеек или JSON не помещаются в доступный объём, сервер вернёт
tabular_data_limit_exceeded. - Размер запроса и записи:
createиupdateне рассчитаны на мегабайтные документы, логи или огромные ответы внешних API. Если тело запроса слишком большое, вернётсяrequest_entity_too_large; если значение не проходит проверку размера или формы, вернётсяpublic_invalid_dataилиvalidation_error.
Чтобы уменьшить payload, передавайте только нужные поля, разбивайте большие массивы на несколько записей, сокращайте JSON и храните исходные документы как файлы.
Типовые ошибки
Что проверить в первую очередь:
- некорректный/просроченный токен;
- неверные
database_id,table_id,row_id; - опечатки в
where; - попытка записи токеном с правами только на чтение;
- превышение лимита API-запросов организации;
- превышение лимита строк, данных таблиц, хранилища или размера запроса.
Полная таблица кодов и действий: Ошибки и коды.
Панель API в интерфейсе
Мы встроили мощный инструмент для разработчиков прямо в интерфейс таблицы — режим API.
Возможности встроенной панели:
- Интерактивный визуальный конструктор параметров запроса.
- Готовые пресеты (шаблоны) для каждого метода API.
- Умные подсказки: система объяснит, почему кнопка запуска заблокирована, и предупредит о несовместимости операторов.
- Удобный drag-and-drop: перетаскивайте названия полей или имена участников прямо в конструктор запроса.
- Автоматическая генерация готового кода для интеграции на
cURL,JavaScript,PythonиPowerShell. - Встроенный HTTP-клиент: выполняйте запросы прямо из интерфейса и изучайте сырые ответы и заголовки от сервера.