Tapter для агентов и интеграций

Агент может создать страницу, загрузить картинки, добавить блоки и посмотреть на результат — от имени пользователя, который дал ему доступ, и только на его страницах.

Как подключиться

Рекомендуем

MCP: один клик, без токена

Добавьте этот адрес коннектором в своём MCP-клиенте. Клиент зарегистрируется сам, один раз откроет браузер, пользователь нажмёт «Разрешить» — и подключение готово. Никуда ничего вставлять не нужно.

https://dev.tapter.kz/mcp

OAuth 2.1 с PKCE и динамической регистрацией клиента. Токен не покидает связку «браузер — клиент», а пользователь может отключить приложение в «Настройках → API» в любой момент.

REST: для скриптов и агентов без MCP

API описывает себя сам. Начните с корня — он не требует токена и рассказывает, где лежит всё остальное: спецификация OpenAPI и схема каждого типа блока.

curl https://dev.tapter.kz/api/v1

Тот же OAuth работает и здесь. Для curl и планировщика пользователь может вместо этого выпустить персональный токен в «Настройках → API».

Типичные вызовы

Получить список страниц аккаунта

curl -H "Authorization: Bearer $TAPTER_TOKEN" \
  "https://dev.tapter.kz/api/v1/profiles"

Создать страницу

Сначала проверьте адрес: это публичный URL страницы, и занятый стоит лишнего круга.

curl -H "Authorization: Bearer $TAPTER_TOKEN" \
  "https://dev.tapter.kz/api/v1/profiles/check-login?login=my.coffee"

curl -X POST -H "Authorization: Bearer $TAPTER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"login":"my.coffee"}' \
  "https://dev.tapter.kz/api/v1/profiles"

Добавить блок

У каждого типа блока есть своя JSON Schema, описания полей и готовый пример. Незнакомое поле вернётся как 422 с его именем — агент чинится с первой попытки. Заголовок «Precognition: true» проверяет запрос, ничего не записывая.

curl -H "Authorization: Bearer $TAPTER_TOKEN" \
  "https://dev.tapter.kz/api/v1/slot-types/button"

curl -X POST -H "Authorization: Bearer $TAPTER_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: add-button-1" \
  -d '{"type":"button","data":{"title":"Book now","link":"https://example.com/book"}}' \
  "https://dev.tapter.kz/api/v1/profiles/my.coffee/slots"

Добавить несколько блоков сразу

Один запрос вместо цикла: порядок массива — это порядок на странице, а создаётся либо всё, либо ничего. Ошибка в третьем блоке приходит ключом slots.2.data.* и не оставляет полстраницы. Так же работают изменение (PATCH .../slots) и удаление (DELETE .../slots с {"ids": [...]}).

curl -X POST -H "Authorization: Bearer $TAPTER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"slots":[
        {"type":"button","data":{"title":"Book now","link":"https://example.com/book","style":"primary"}},
        {"type":"text","data":{"title":"About us","description":"A coffee shop on Abay street"}}
      ]}' \
  "https://dev.tapter.kz/api/v1/profiles/my.coffee/slots/batch"

Проверить результат

Готовая страница в markdown — та же самая, что видит посетитель, и в том же порядке. Дешевле и надёжнее скриншота.

curl -H "Authorization: Bearer $TAPTER_TOKEN" \
  "https://dev.tapter.kz/api/v1/profiles/my.coffee/markdown"

Посмотреть статистику страницы

Просмотры и клики по каждому блоку, вместе с теми же цифрами за предыдущий период. Это то, с чего начинается осмысленная правка страницы, а не догадки.

curl -H "Authorization: Bearer $TAPTER_TOKEN" \
  "https://dev.tapter.kz/api/v1/profiles/my.coffee/analytics?period=last28"

Что доступно интеграции

Доступ выдаётся на пользователя и делится надвое:

  • profile:read — читать страницы аккаунта, всё на них и их статистику.
  • profile:write — создавать страницы, добавлять, изменять и удалять блоки на них.
  • Видны только страницы того аккаунта, который выдал доступ. Чужих для API не существует.
  • Пользователь отключает приложение в один клик, и его следующий запрос сразу перестаёт работать.

Лимиты

  • 5 запросов в секунду и 60 в минуту, считаются по токену.
  • До 100 страниц на аккаунт.
  • До 500 блоков на страницу.
  • До 50 блоков за один пакетный запрос: создание, изменение и удаление.
  • Аналитика: 20 запросов в минуту, период до 366 дней, данные хранятся год.
  • Картинки до 10 МБ, когда сервер скачивает их по ссылке; файлы крупнее — обычной multipart-загрузкой.

Чего сознательно нет

  • Удаления страницы. Оно необратимо, и делается только в дашборде.
  • Событий и билетов. Блоки событий можно читать и переставлять, но не создавать и не менять.
  • Витрин, товаров и заказов.
  • Настроек аккаунта, пароля, почты и платёжных данных.

Для машин

Всё, что нужно агенту, отдаётся по своим адресам. Эта страница их не дублирует: два описания одного контракта неизбежно разъезжаются.