Ostart Bot API

events/get

Длинный опрос. Возвращает события в тех чатах, куда бот добавлен, в порядке eventId.

Параметры

ПараметрОбязателенОписание
lastEventIdдаПоследний уже обработанный идентификатор. События с меньшим или равным не вернутся.
pollTimeнетСколько секунд держать запрос, если событий нет. Максимум 60. По истечении — пустой список, а не ошибка.

Пример

GET https://chat.ostart.ru/bot/v1/events/get?token=...&lastEventId=0&pollTime=25

{"ok":true,"events":[
  {"eventId":184,"type":"newMessage","payload":{
     "msgId":"6b1e…","chat":{"chatId":"9b24…","type":"group","title":"Продажи"},
     "from":{"userId":"10ab…","firstName":"Алиса Тестова"},
     "timestamp":1790500000,"text":"привет","parts":[]}},
  {"eventId":185,"type":"newChatMembers","payload":{
     "chat":{"chatId":"9b24…","type":"group"},
     "newMembers":[{"userId":"22cd…"}],"addedBy":{"userId":"10ab…"}}}
]}

Что лежит в parts

reply — payload.msgId того сообщения, на которое отвечают. file — payload.fileId, type со значением image или file, и caption с именем файла.

Две ловушки

Собственные сообщения бота тоже приходят событиями, как в VK Teams — отфильтруйте их по payload.from.userId, иначе бот ответит сам себе. И события приходят только из чатов, где бот состоит, и только с момента вступления: истории до этого он не увидит.