Перейти к содержимому

API мини-приложения: ваш сервер, n8n и Make читают и правят таблицы

Обновлено

Посетитель оформил заказ в приложении. Ваш сервер узнал об этом вебхуком, сделал свою часть работы и должен вписать результат в тот же заказ: ссылку на файл и статус «Готово». Для этого и есть API данных: ключ, с которым сервер, n8n или Make находят строки таблиц приложения, добавляют, дописывают и удаляют их. Покупатель с открытым экраном видит обновлённый заказ без перезагрузки.

Как начать

  1. 1

    Опубликуйте приложение

    API работает с таблицами опубликованного приложения. Ключ привязан к одному приложению и не открывает другие ваши проекты.

  2. 2

    Заведите ключ

    Вкладка «Данные» → «Связать с другими сервисами» → вкладка «API». Назовите ключ по тому, кто им пользуется («n8n», «склад»), и выберите доступ: «Чтение и запись» или «Только чтение». Ключ показывается один раз — мы храним только его отпечаток.

  3. 3

    Проверьте первым запросом

    GET /tables вернёт таблицы приложения с ключами столбцов. Эти ключи нужны во всех остальных запросах, а готовый пример с вашей таблицей окно подставляет само.

  4. 4

    Подключите сценарий

    В n8n и Make это узел HTTP Request с авторизацией Header Auth. Описание API для импорта лежит по адресу https://apps.build-mini.app/api/v1/openapi.json — его понимают и Postman, и Insomnia.

Пример: дописать заказ

curl -X PATCH https://apps.build-mini.app/api/v1/tables/orders/rows/ROW_ID \
  -H "Authorization: Bearer bma_…" \
  -H "Content-Type: application/json" \
  -d '{"data": {"status": "Готово", "result_url": "https://…"}}'

Присылаются только меняющиеся столбцы, остальные остаются как были, а null очищает столбец. В ответ приходит строка целиком: id, table, data, visitor, createdAt и updatedAt.

Шесть адресов API

GET /tables
Таблицы приложения, их столбцы и режим записи.
GET …/rows
Строки таблицы, старые первыми. Отбор по столбцу where[столбец]=значение, страницы limit и cursor, только свежие — updatedSince.
GET …/rows/{id}
Одна строка.
POST …/rows
Добавить строку. В личную таблицу — с указанием, чья она.
PATCH …/rows/{id}
Дописать строку: меняются только присланные столбцы.
DELETE …/rows/{id}
Удалить строку.

Вебхук и API — две половины одной связки

Вебхук сообщает вашему сервису, что в приложении что-то случилось: отправлена форма, добавлена или изменена строка, прошла оплата. API отвечает на обратный вопрос — как сервису что-то поменять в приложении. Раньше обратный путь был один: входящий адрес, который умел только добавить строку в одну таблицу. Теперь строку можно найти, дописать по id и удалить.

Правки по ключу не порождают событий вебхука. Сценарий, который дописал заказ, иначе тут же получил бы «строка изменена» про собственную правку и закольцевался.

Личная строка остаётся личной

В таблицах «каждый пишет себе» — заказы, заявки, корзины — посетитель видит только свои строки. API это не ломает: правка не меняет хозяина строки, а новая строка в личную таблицу заводится только с указанием, чья она, например {"platform": "telegram", "id": 123456789}. Без этого запрос получит отказ: такую строку не увидел бы никто, кроме вас.

Видно, что делает каждый ключ

Рядом с ключом во вкладке «API» показано, когда им пользовались, сколько было запросов и чем кончился последний отказ: неверный ключ, запись ключом «только чтение», опечатка в столбце, превышение частоты. С этой строки и начинают, когда сценарий «ничего не делает».

Если нужен не сервер, а Google Таблица

Заявки и заказы можно копировать в свою Google Таблицу без единой строки кода: окно таблицы в панели «Данные» → «Копировать новые записи в Google Таблицу». Создаёте пустую таблицу, даёте нашему служебному адресу права редактора, вставляете ссылку — и каждая новая запись в течение минуты дописывается туда строкой, с последним столбцом «Добавлено» по московскому времени.

Свои столбцы вроде «Перезвонил» можно дописывать справа и переставлять наши: мы находим столбец по названию и ничего не стираем. Копия работает и для личных таблиц, потому что ничего не читает назад. Если Google не принял строку, попытки идут около часа, потом в окне появляется красная полоса, в бот приходит сообщение, а кнопка «Повторить» отправляет недошедшее ещё раз. Подключает копию только владелец приложения.

Границы, о которых честно

  • Через API правятся записи приложения. Строки каталога, набранные в редакторе, — товары, услуги, расписание — меняются в редакторе, с телефона в самом приложении или через ИИ-ассистента.
  • Не больше 300 запросов в минуту на ключ. При превышении сервер отвечает отказом и в заголовке Retry-After пишет, сколько секунд подождать.
  • Ключ открывает все таблицы приложения, включая личные заказы покупателей. Храните его на сервере или в учётных данных n8n, не в коде приложения и не в браузере. Утёк — кнопка «Отозвать», и сервисы с ним сразу получают отказ.
  • API работает, пока приложение открыто: кончилась проба или тариф — запросы по ключу получают отказ до оплаты, как и посетители.
  • Копия в Google Таблицу переносит записи, сделанные после подключения. То, что уже лежало в таблице, выгружается кнопкой «Выгрузить» и вставляется руками.

Частые вопросы

Есть ли у мини-приложения REST API?
Да, у каждого опубликованного приложения: https://apps.build-mini.app/api/v1, ключ в заголовке Authorization: Bearer (или X-API-Key, если сервис умеет только так), тело запроса — JSON. Шесть адресов: список таблиц, строки с отбором, одна строка, добавить, дописать, удалить.
Как подключить приложение к n8n или Make?
В обе стороны. Из приложения в сценарий — вебхуком на событие формы, строки или оплаты. Из сценария в приложение — узлом HTTP Request к API с ключом. Описание openapi.json импортируется в Postman и Insomnia, по нему же удобно собирать запросы.
Можно ли выгружать заявки в Google Таблицу без программиста?
Да: в окне таблицы включается копия новых записей в вашу Google Таблицу. Нужна пустая таблица, доступ нашему служебному адресу с правами редактора и ссылка. Строки приходят в течение минуты.
API платный?
Отдельно нет, ключи заводятся на любом тарифе, а работают, пока действует проба или тариф. Строки, добавленные через API, считаются в квоту записей тарифа так же, как добавленные из приложения.

Свяжите приложение со своей системой

Опубликуйте приложение, заведите ключ во вкладке «API» и выполните первый запрос — окно само подставит в пример вашу таблицу.

Открыть конструктор