Присоединяйтесь к комьюнити Табрики

Предлагайте идеи, задавайте вопросы и общайтесь с другими пользователями

Public API

Мощный инструмент для разработчиков. Полное руководство по интеграции Табрики с вашими сервисами и автоматизации процессов.

Что можно делать через API

Public API Табрики открывает безграничные возможности для автоматизации. Вы можете программно:

  • Запрашивать списки записей с поддержкой сложной фильтрации и пагинации.
  • Получать детальную информацию по конкретной записи.
  • Создавать новые строки, обновлять существующие данные и удалять ненужную информацию.
  • Гибко управлять ответом сервера: применять сортировку и запрашивать только необходимые столбцы.

Быстрый старт за 3 шага

Начать работу с API проще простого:

  1. Зайдите в настройки вашей организации и откройте вкладку API.
  2. Сгенерируйте новый токен доступа, выбрав нужный уровень прав (только чтение или чтение и запись).
  3. При выполнении любых запросов к нашему 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, yesterday
  • exactDate,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,иван)

Разбор по компонентам:

  1. Маршрутизация: 82 и 142 в path указывают, откуда брать данные.
  2. Пагинация: limit=25 и offset=0 запрашивают первую страницу из 25 строк.
  3. Оптимизация: fields=Имя,Статус просит вернуть только два столбца.
  4. Сортировка: sort=-Дата регистрации сортирует по убыванию даты.
  5. Фильтрация: 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-клиент: выполняйте запросы прямо из интерфейса и изучайте сырые ответы и заголовки от сервера.