Перейти к содержимому

searchChats

Обновлено 17 октября 2026

Ищет чаты по названию или нику — как строка поиска в приложении мессенджера. В ответе — превью: по ним можно вступить или прочитать историю публичного чата без вступления.

Запрос POST /waInstance{idInstance}/searchChats/{apiTokenInstance}
Тело JSON
Каналы Telegram, MAX

Параметры

Параметр Тип Обязательный Описание
query string да название или ник; @ в начале можно оставить
limit integer нет сколько результатов: 1–100, по умолчанию 20. MAX отдаёт не больше 50
types array или string нет только эти виды: group, channel, user, bot — массивом или через запятую

Пример запроса

Найти каналы и группы про робототехнику:

curl

curl -X POST "$GRATIO_URL/waInstance$GRATIO_ID/searchChats/$GRATIO_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "робототехника",
    "limit": 10,
    "types": [
      "channel",
      "group"
    ]
  }'

Python

import os
import requests

BASE = f"{os.environ['GRATIO_URL']}/waInstance{os.environ['GRATIO_ID']}"
TOKEN = os.environ["GRATIO_TOKEN"]

url = f"{BASE}/searchChats/{TOKEN}"
payload = {"query": "робототехника", "limit": 10, "types": ["channel", "group"]}
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}/searchChats/${GRATIO_TOKEN}`;
const payload = { query: "робототехника", limit: 10, types: ["channel", "group"] };
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 . '/searchChats/' . getenv('GRATIO_TOKEN');
$payload = [
    'query' => 'робототехника',
    'limit' => 10,
    'types' => ['channel', 'group'],
];

$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 в Telegram: сначала группа, где аккаунт уже состоит, потом публичный канал из глобального поиска:

{
  "query": "робототехника",
  "chats": [
    {
      "chatId": "-1001234567890", "type": "group", "title": "3А · Робототехника",
      "username": "", "link": "", "description": "", "members": 14,
      "joined": true, "joinRequest": false, "public": false, "verified": false,
      "warning": "", "hasAvatar": true, "linkedChatId": ""
    },
    {
      "chatId": "-1001987654321", "type": "channel", "title": "Робототехника для школьников",
      "username": "robo_school", "link": "https://t.me/robo_school", "description": "", "members": 2400,
      "joined": false, "joinRequest": false, "public": true, "verified": false,
      "warning": "", "hasAvatar": true, "linkedChatId": ""
    }
  ]
}

Поля ответа

Поле Тип Описание
query string запрос из параметра query
chats array превью найденных чатов. Поля превью — в статье getChatPreview

В результатах поиска Telegram description и linkedChatId пустые. Полное превью с описанием даёт getChatPreview.

Ещё примеры

Только каналы

types можно передать строкой через запятую:

curl -X POST "$GRATIO_URL/waInstance$GRATIO_ID/searchChats/$GRATIO_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"query": "робототехника", "types": "channel"}'

По нику

Ник ищется так же, как название:

curl -X POST "$GRATIO_URL/waInstance$GRATIO_ID/searchChats/$GRATIO_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"query": "@robo_school", "limit": 1}'

Ошибки

Код code Когда Что делать
400 validation нет query; в types неизвестный вид исправить запрос
400 query_too_short запрос пустой или слишком короткий уточнить запрос
400 not_authorized канал не на связи проверить getStateInstance
429 too_frequent больше 60 поисков, превью и разборов ссылок в час повторить после Retry-After
469 rate_limited площадка попросила паузу повторить после Retry-After
501 not_supported WhatsApp или почта —

Особенности каналов

  • Telegram. Сначала идут чаты и контакты аккаунта, потом глобальный поиск. До 100 результатов.
  • MAX. Только глобальный поиск — как строка поиска MAX: публичные каналы, группы, люди и боты. Свои чаты аккаунта отдельно не подмешиваются. До 50 результатов.

Что дальше

Была ли статья полезна?