Возвращает каналы, похожие на указанный, — те же, что приложение показывает в профиле канала. В Telegram без chatId — рекомендации каналов для аккаунта.
| Запрос | POST /waInstance{idInstance}/getSimilarChannels/{apiTokenInstance} |
| Тело | JSON |
| Каналы | Telegram, MAX |
Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
chatId |
string | Telegram — нет, MAX — да | id канала. Без него Telegram отдаёт рекомендации аккаунту |
Пример запроса
Каналы, похожие на «Робототехнику для школьников»:
curl
curl -X POST "$GRATIO_URL/waInstance$GRATIO_ID/getSimilarChannels/$GRATIO_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"chatId": "-1001987654321"}'
Python
import os
import requests
BASE = f"{os.environ['GRATIO_URL']}/waInstance{os.environ['GRATIO_ID']}"
TOKEN = os.environ["GRATIO_TOKEN"]
url = f"{BASE}/getSimilarChannels/{TOKEN}"
payload = {"chatId": "-1001987654321"}
response = requests.post(url, json=payload, timeout=60)
print(response.status_code, response.json())
Node.js
const { GRATIO_URL, GRATIO_ID, GRATIO_TOKEN } = process.env;
const base = `${GRATIO_URL}/waInstance${GRATIO_ID}`;
const url = `${base}/getSimilarChannels/${GRATIO_TOKEN}`;
const payload = { chatId: "-1001987654321" };
const response = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
});
console.log(response.status, await response.json());
PHP
<?php
$base = getenv('GRATIO_URL') . '/waInstance' . getenv('GRATIO_ID');
$url = $base . '/getSimilarChannels/' . getenv('GRATIO_TOKEN');
$payload = ['chatId' => '-1001987654321'];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$response = json_decode(curl_exec($ch), true);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), PHP_EOL;
print_r($response);
Пример ответа
Ответ 200 OK:
{
"chatId": "-1001987654321",
"chats": [
{
"chatId": "-1001555000111", "type": "channel", "title": "Конструкторы и схемы",
"username": "kits_and_schemes", "link": "https://t.me/kits_and_schemes", "description": "",
"members": 8100, "joined": false, "joinRequest": false, "public": true, "verified": false,
"warning": "", "hasAvatar": true, "linkedChatId": ""
}
]
}
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
chatId |
string | канал из запроса; без chatId — пустая строка |
chats |
array | превью похожих каналов. Поля превью — в статье getChatPreview |
Ещё примеры
Рекомендации аккаунту
Только Telegram — пустое тело:
curl -X POST "$GRATIO_URL/waInstance$GRATIO_ID/getSimilarChannels/$GRATIO_TOKEN" \
-H 'Content-Type: application/json' \
-d '{}'
Ошибки
| Код | code |
Когда | Что делать |
|---|---|---|---|
400 |
not_a_channel |
chatId — не канал, например личный чат |
передать канал |
400 |
not_found |
канал неизвестен этому аккаунту | сначала откройте его getChatPreview |
400 |
not_authorized |
канал не на связи | проверить getStateInstance |
429 |
too_frequent |
больше 60 поисков, превью и подборок в час | повторить после Retry-After |
469 |
rate_limited |
площадка попросила паузу | повторить после Retry-After |
501 |
not_supported |
WhatsApp или почта; MAX без chatId |
— |
Особенности каналов
- Telegram. В подборке — только каналы;
descriptionиlinkedChatIdпустые. - MAX. Только с
chatIdканала — как блок «Рекомендуем каналы» после подписки.
Что дальше
- getChatPreview — подробное превью канала из подборки.
- joinChat — подписаться.
- Поиск и вступление: правила и лимиты — лимиты.
