API данных: ваш сервер читает и правит таблицы

Ключ, с которым сервер, n8n или Make находит строки, дописывает их и удаляет. Личные строки остаются личными.

Вкладка «Данные» → «Связать с другими сервисами» → вкладка «API»: адрес, ключи и готовый пример запроса.
Вкладка «Данные» → «Связать с другими сервисами» → вкладка «API»: адрес, ключи и готовый пример запроса.

Где: Вкладка «Данные» → «Связать с другими сервисами» → вкладка API. Приложение должно быть опубликовано.

Вебхук сообщает вашему сервису, что в приложении что-то случилось. API отвечает на обратный вопрос: как сервису что-то поменять в приложении. Например, заказ оформлен, сервер сгенерировал по нему сказку и должен вписать её в тот же заказ: текст, ссылку на файл и статус «Готово». Заказ при этом остаётся виден только тому, кто его оформил.

  1. Откройте вкладку API, назовите ключ (для чего он: «генератор сказок», «n8n») и выберите доступ. Сервису, который правит заказы, нужно «Чтение и запись»; выгрузке в отчёт хватит «Только чтение».
  2. Нажмите «Создать ключ» и сразу скопируйте его. Ключ показывается один раз: мы храним только его отпечаток. Потеряли — отзовите и заведите новый.
  3. Проверьте связь первым запросом — он вернёт таблицы приложения с ключами столбцов. Ключи столбцов нужны во всех остальных запросах.
curl https://apps.build-mini.app/api/v1/tables \
  -H "Authorization: Bearer bma_…"
ЗапросЧто делает
GET /tablesТаблицы приложения, их столбцы и режим записи.
GET /tables/{таблица}/rowsСтроки таблицы, старые первыми. Отбор where[столбец]=значение, страницы limit и cursor, свежие updatedSince.
GET /tables/{таблица}/rows/{id}Одна строка.
POST /tables/{таблица}/rowsДобавить строку. В личную таблицу — с указанием, чья она.
PATCH /tables/{таблица}/rows/{id}Дописать строку: присланные столбцы меняются, остальные остаются. null очищает столбец.
DELETE /tables/{таблица}/rows/{id}Удалить строку.

Все адреса начинаются с https://apps.build-mini.app/api/v1, ключ передаётся заголовком Authorization: Bearer <ключ> (или X-API-Key: <ключ>, если ваш сервис умеет только так). Тело запроса — JSON, значения столбцов лежат в data.

Пример: заказ сказки. Посетитель оформил заказ, строка легла в личную таблицу requests. Сервер узнаёт о ней одним из двух способов: вебхуком «Добавлена строка» (в нём data.id — id строки и data.visitor — кто заказал) или запросом новых заказов по расписанию.

curl "https://apps.build-mini.app/api/v1/tables/requests/rows?where[status]=Новый" \
  -H "Authorization: Bearer bma_…"

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

curl -X PATCH https://apps.build-mini.app/api/v1/tables/requests/rows/<id> \
  -H "Authorization: Bearer bma_…" \
  -H "Content-Type: application/json" \
  -d '{"data": {"generated_story": "Жил-был…", "result_url": "https://…", "status": "Готово"}}'

В ответ приходит строка целиком: id, table, data, visitor (чья строка; у содержимого приложения — null), createdAt и updatedAt. У покупателя с открытым экраном заказ обновится сам, без перезагрузки.

n8n и Make. Узел HTTP Request: метод и адрес из таблицы выше, авторизация Header Auth с именем Authorization и значением Bearer bma_…, тело — JSON. Описание API для импорта лежит по адресу https://apps.build-mini.app/api/v1/openapi.json, его же понимают Postman и Insomnia.

Код отказаЧто значит
invalid_keyКлюча нет, он отозван или заголовок написан не так.
read_only_keyКлюч только для чтения, а запрос пишет.
unknown_columnsУ таблицы нет таких столбцов — их список в поле columns. Обычно это опечатка в ключе столбца или столбец, который ещё не опубликован.
visitor_requiredТаблица личная, а не сказано, чья строка.
table_not_found, row_not_foundНет такой таблицы в опубликованном приложении или такой строки в этой таблице.
too_many_requestsБольше 300 запросов в минуту одним ключом. Подождите столько секунд, сколько сказано в заголовке Retry-After.

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

Читать дальше