Xipher Bot API

Мощный API для создания ботов с 50,000+ функциями. Создавайте ботов для автоматизации, игр, платежей и многого другого.

Быстрый старт

Начните создавать ботов за несколько минут. Все запросы к API выполняются через HTTPS.

1. Создайте бота

Перейдите на страницу /bots и создайте нового бота. Вы получите токен для доступа к API. Токен можно посмотреть, нажав кнопку "Показать токен" (потребуется ввести пароль от аккаунта).

2. Базовый запрос

Все запросы к API имеют следующий формат:

URL
https://api.xipher.pro/bot<token>/METHOD_NAME

Важно: Токен вставляется без символов < и >. Например, если токен abc123, то URL будет: https://api.xipher.pro/botabc123/getMe

3. Пример на Python

Python
import requests

TOKEN = "YOUR_BOT_TOKEN"  # Получите токен на странице /bots
BASE_URL = f"https://api.xipher.pro/bot{TOKEN}"

# Получить информацию о боте
response = requests.get(f"{BASE_URL}/getMe")
bot_info = response.json()
print(bot_info)

# Отправить сообщение
# chat_id - это user_id получателя (UUID строка)
response = requests.post(f"{BASE_URL}/sendMessage", json={
    "chat_id": "user-uuid-here",  # UUID пользователя
    "text": "Привет! 👋"
})
print(response.json())

4. Реализованные методы

Следующие методы Bot API полностью реализованы и готовы к использованию:

  • getMe - получить информацию о боте
  • getUpdates - получить обновления (Long Polling)
  • setWebhook - установить webhook
  • deleteWebhook - удалить webhook
  • getWebhookInfo - получить информацию о webhook
  • sendMessage - отправить текстовое сообщение
  • editMessageText - редактировать сообщение
  • deleteMessage - удалить сообщение
  • forwardMessage - переслать сообщение
  • copyMessage - скопировать сообщение
  • sendPhoto - отправить фото
  • sendAudio - отправить аудио
  • sendVideo - отправить видео
  • sendDocument - отправить документ
  • sendVoice - отправить голосовое сообщение

Аутентификация

Все запросы к API требуют токен бота в URL. Токен выдается при создании бота на странице /bots. Для просмотра токена нажмите кнопку "Показать токен" и введите пароль от аккаунта.

GET getMe

Проверяет токен бота и возвращает основную информацию о боте.

Пример запроса
curl https://api.xipher.pro/bot<token>/getMe
Ответ
{
  "ok": true,
  "result": {
    "id": 123456789,
    "is_bot": true,
    "first_name": "My Bot",
    "username": "mybot",
    "can_join_groups": true,
    "can_read_all_group_messages": false
  }
}

Inline Keyboard (Кнопки)

Inline keyboard позволяет добавлять кнопки под сообщениями. Кнопки могут отправлять callback_data или открывать URL.

INFO Формат reply_markup

Параметр reply_markup используется в методах sendMessage, sendPhoto и других для добавления кнопок.

Структура inline_keyboard
{
  "inline_keyboard": [
    [
      {"text": "Кнопка 1", "callback_data": "button1"},
      {"text": "Кнопка 2", "callback_data": "button2"}
    ],
    [
      {"text": "Открыть сайт", "url": "https://example.com"}
    ]
  ]
}

Параметры кнопки

text
Текст на кнопке
String, обязательный
callback_data
Данные, которые будут отправлены боту при нажатии (до 64 байт)
String, опциональный
url
URL для открытия при нажатии (вместо callback_data)
String, опциональный
Пример использования
import requests

TOKEN = "YOUR_BOT_TOKEN"
BASE_URL = f"https://api.xipher.pro/bot{TOKEN}"

# Создать клавиатуру с кнопками
keyboard = {
    "inline_keyboard": [
        [
            {"text": "✅ Да", "callback_data": "yes"},
            {"text": "❌ Нет", "callback_data": "no"}
        ],
        [
            {"text": "📖 Документация", "url": "https://xipher.pro/api"}
        ]
    ]
}

# Отправить сообщение с кнопками
response = requests.post(f"{BASE_URL}/sendMessage", json={
    "chat_id": "USER_UUID",
    "text": "Хотите продолжить?",
    "reply_markup": keyboard
})

Получение обновлений

Есть два способа получения обновлений: Long Polling (getUpdates) и Webhooks.

GET getUpdates

Получает обновления через Long Polling. Используется для получения новых сообщений, callback query и других событий.

Параметры

offset
Идентификатор первого обновления для возврата
Integer, опциональный
limit
Количество обновлений для получения (1-100)
Integer, опциональный, по умолчанию 100
timeout
Таймаут в секундах для Long Polling
Integer, опциональный, по умолчанию 0
Python
import requests

TOKEN = "YOUR_BOT_TOKEN"
BASE_URL = f"https://api.xipher.pro/bot{TOKEN}"

# Получить обновления
response = requests.get(f"{BASE_URL}/getUpdates?offset=0&limit=100&timeout=30")
updates = response.json()
print(updates)

Работа с сообщениями

Отправка, редактирование и управление сообщениями в чатах.

POST sendMessage

Отправляет текстовое сообщение в указанный чат.

Параметры

chat_id
Уникальный идентификатор чата (UUID пользователя в формате строки)
String (UUID), обязательный
Примечание: В Xipher используется UUID формат для идентификаторов пользователей, а не числовые ID.
text
Текст сообщения (до 4096 символов)
String, обязательный
parse_mode
Режим форматирования: "MarkdownV2", "HTML" или "None"
String, опциональный
reply_to_message_id
ID сообщения, на которое отвечаем
Integer, опциональный
reply_markup
Inline keyboard с кнопками под сообщением
Object, опциональный
Формат: {"inline_keyboard": [[{"text": "Кнопка", "callback_data": "data"}]]}
См. раздел Inline Keyboard для подробностей.
Python
import requests

TOKEN = "YOUR_BOT_TOKEN"
BASE_URL = f"https://api.xipher.pro/bot{TOKEN}"

response = requests.post(f"{BASE_URL}/sendMessage", json={
    "chat_id": "user-uuid-here",  # UUID пользователя (строка)
    "text": "Привет! Это мой первый бот 🤖",
    "parse_mode": "HTML"
})

print(response.json())
Пример с кнопками
import requests

TOKEN = "YOUR_BOT_TOKEN"
BASE_URL = f"https://api.xipher.pro/bot{TOKEN}"

# Отправить сообщение с inline кнопками
response = requests.post(f"{BASE_URL}/sendMessage", json={
    "chat_id": "user-uuid-here",
    "text": "Выберите действие:",
    "reply_markup": {
        "inline_keyboard": [
            [
                {"text": "✅ Принять", "callback_data": "accept"},
                {"text": "❌ Отклонить", "callback_data": "reject"}
            ],
            [
                {"text": "🌐 Открыть сайт", "url": "https://xipher.pro"}
            ]
        ]
    }
})

print(response.json())
POST editMessageText

Редактирует текст отправленного сообщения.

Параметры

chat_id
ID чата, где находится сообщение
Integer или String, обязательный
message_id
ID сообщения для редактирования
Integer, обязательный
text
Новый текст сообщения
String, обязательный
POST deleteMessage

Удаляет сообщение из чата.

Параметры

chat_id
ID чата
Integer или String, обязательный
message_id
ID сообщения для удаления
Integer, обязательный
POST forwardMessage

Пересылает сообщение из одного чата в другой. Сохраняет информацию об исходном отправителе.

Параметры

chat_id
ID чата, куда пересылать
Integer или String, обязательный
from_chat_id
ID чата, откуда пересылать
Integer или String, обязательный
message_id
ID сообщения для пересылки
Integer, обязательный
POST copyMessage

Копирует сообщение из одного чата в другой. Не сохраняет информацию об исходном отправителе.

Параметры

chat_id
ID чата, куда копировать
Integer или String, обязательный
from_chat_id
ID чата, откуда копировать
Integer или String, обязательный
message_id
ID сообщения для копирования
Integer, обязательный

Медиа и файлы

Отправка фотографий, видео, аудио, документов и других медиафайлов.

POST sendPhoto

Отправляет фотографию в чат. Поддерживаются файлы до 10 ГБ.

Параметры

chat_id
ID чата
Integer или String, обязательный
photo
Файл для отправки (file_id, URL или multipart/form-data)
InputFile или String, обязательный
caption
Подпись к фотографии (до 1024 символов)
String, опциональный
POST sendAudio

Отправляет аудиофайл в чат.

Параметры

chat_id
ID чата
Integer или String, обязательный
audio
Аудиофайл для отправки (file_id, URL или multipart/form-data)
InputFile или String, обязательный
caption
Подпись к аудио (до 1024 символов)
String, опциональный
POST sendDocument

Отправляет документ любого формата (до 10 ГБ).

POST sendVideo

Отправляет видеофайл.

POST sendVoice

Отправляет голосовое сообщение (OGG Opus).

Клавиатуры и кнопки

Создание интерактивных клавиатур и кнопок для взаимодействия с пользователями.

POST InlineKeyboardMarkup

Создает кнопки под сообщением. Кнопки могут открывать URL, отправлять callback или запускать Mini Apps.

Пример
import requests

TOKEN = "YOUR_BOT_TOKEN"
BASE_URL = f"https://api.xipher.pro/bot{TOKEN}"

keyboard = {
    "inline_keyboard": [
        [
            {"text": "Кнопка 1", "callback_data": "button1"},
            {"text": "Кнопка 2", "callback_data": "button2"}
        ],
        [
            {"text": "Открыть сайт", "url": "https://example.com"}
        ]
    ]
}

requests.post(f"{BASE_URL}/sendMessage", json={
    "chat_id": 123456789,
    "text": "Выберите действие:",
    "reply_markup": keyboard
})
POST answerCallbackQuery

Отвечает на нажатие inline-кнопки. Может показать уведомление или открыть URL.

Администрирование

Управление чатами, пользователями и правами доступа.

POST banChatMember

Банит пользователя в группе или канале.

POST promoteChatMember

Назначает пользователя администратором с настраиваемыми правами.

POST setChatTitle

Изменяет название группы или канала.

POST pinMessage

Закрепляет сообщение в чате.

Платежи и криптовалюты

Интеграция платежей с поддержкой криптовалют (USDT, TON, BTC).

POST sendInvoice

Отправляет счет на оплату в чат.

Параметры

chat_id
ID чата
Integer или String, обязательный
title
Название товара
String, обязательный
description
Описание товара
String, обязательный
currency
Валюта: "USDT", "TON", "BTC" или "RUB"
String, обязательный
prices
Массив цен
Array of LabeledPrice, обязательный
POST createInvoiceLink

Создает ссылку на оплату для использования в кнопках или вне мессенджера.

POST answerPreCheckoutQuery

Подтверждает или отклоняет запрос на оплату перед списанием средств.

Работа с файлами

Получение информации о файлах и управление стикерами.

GET getFile

Получает информацию о файле по его file_id.

POST createNewStickerSet

Создает новый набор стикеров.

Webhooks

Настройка webhooks для получения обновлений в реальном времени.

POST setWebhook

Устанавливает URL для получения обновлений через webhook.

Параметры

url
HTTPS URL для отправки обновлений
String, обязательный
secret_token
Секретный токен для проверки подлинности
String, опциональный
allowed_updates
Массив типов обновлений для получения
Array of String, опциональный
Пример
import requests

TOKEN = "YOUR_BOT_TOKEN"
BASE_URL = f"https://api.xipher.pro/bot{TOKEN}"

requests.post(f"{BASE_URL}/setWebhook", json={
    "url": "https://yourdomain.com/webhook",
    "secret_token": "your_secret_token",
    "allowed_updates": ["message", "callback_query"]
})
GET getWebhookInfo

Получает информацию о текущем webhook.

POST deleteWebhook

Удаляет webhook и переключает бота на Long Polling.

Inline Mode

Позволяет пользователям использовать бота в любом чате через @username.

POST answerInlineQuery

Отвечает на inline-запрос пользователя.

Mini Apps

Создание веб-приложений, которые работают внутри мессенджера.

POST openWebview

Открывает веб-страницу внутри мессенджера (на весь экран или половину).

Bot Builder (No-Code)

Визуальный редактор для создания ботов без написания кода.

POST saveBotFlow

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

Пример JSON схемы
{
  "nodes": [
    {
      "id": 1,
      "type": "trigger_text",
      "data": {"match": "/start"}
    },
    {
      "id": 2,
      "type": "send_message",
      "data": {"text": "Привет! 👋"}
    },
    {
      "id": 3,
      "type": "send_buttons",
      "data": {
        "buttons": [
          {"text": "Кнопка 1", "callback": "action1"},
          {"text": "Кнопка 2", "callback": "action2"}
        ]
      }
    }
  ],
  "edges": [
    {"from": 1, "to": 2},
    {"from": 2, "to": 3}
  ]
}