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

getSyncStatus

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

После подключения Gratio загружает историю всех чатов канала в фоне — до самого начала каждого чата. getSyncStatus показывает, как идёт загрузка: сколько чатов готово и сколько сообщений уже можно читать getChatHistory. Удобно, чтобы показать в вашей системе «Синхронизация · 37 из 128 чатов» и начать перенос переписки, когда история готова.

Запрос GET /v1/instances/{idInstance}/getSyncStatus
Ключ заголовок Authorization: Bearer {apiTokenInstance}
Тело нет
Каналы MAX, Telegram, WhatsApp, почта, чат на сайте

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

Как идёт загрузка истории:

curl

curl "$GRATIO_URL/v1/instances/$GRATIO_ID/getSyncStatus" \
  -H "Authorization: Bearer $GRATIO_TOKEN"

Python

import os
import requests

BASE = f"{os.environ['GRATIO_URL']}/v1/instances/{os.environ['GRATIO_ID']}"
HEADERS = {"Authorization": f"Bearer {os.environ['GRATIO_TOKEN']}"}

url = f"{BASE}/getSyncStatus"
response = requests.get(url, headers=HEADERS, timeout=60)
print(response.status_code, response.json())

Node.js

const { GRATIO_URL, GRATIO_ID, GRATIO_TOKEN } = process.env;
const base = `${GRATIO_URL}/v1/instances/${GRATIO_ID}`;
const auth = { Authorization: `Bearer ${GRATIO_TOKEN}` };

const url = `${base}/getSyncStatus`;
const response = await fetch(url, { headers: auth });
console.log(response.status, await response.json());

PHP

<?php
$base = getenv('GRATIO_URL') . '/v1/instances/' . getenv('GRATIO_ID');
$auth = 'Authorization: Bearer ' . getenv('GRATIO_TOKEN');
$url = $base . '/getSyncStatus';

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => [$auth],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 90,
]);
$response = json_decode(curl_exec($ch), true);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), PHP_EOL;
print_r($response);

Пример ответа

Ответ 200 OK — загрузка идёт, готово 37 чатов из 128:

{
  "state": "syncing",
  "chats": {"total": 128, "done": 37},
  "messages": 41250,
  "startedAt": 1792300000,
  "finishedAt": null
}

Поля ответа

Поле Тип Описание
state string состояние загрузки — таблица ниже
chats.total integer сколько чатов загружается
chats.done integer сколько из них догружено до начала
messages integer сколько сообщений уже в истории канала
startedAt integer или null когда началась первая полная загрузка, секунды Unix
finishedAt integer или null когда она закончилась; пока идёт — null
state Что значит
waiting загрузка ещё не начиналась: канал не был на связи
syncing идёт первая полная загрузка
synced все чаты догружены до начала. Новые чаты потом догружаются сами, без смены состояния
paused канал на паузе за неоплату — загрузка тоже на паузе
unsupported канал не умеет загружать историю: getChatHistory отдаёт последние сообщения с площадки, до 200

Начало и конец первой полной загрузки приходят и уведомлением — syncStateChanged. Опрашивать getSyncStatus по таймеру не нужно.

Ошибки

Код code Когда Что делать
401 — неверный idInstance или токен взять ключ в кабинете

Общие правила — в статье Ответы и ошибки.

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

  • Пока идёт загрузка, история уже читается: getChatHistory отдаёт то, что загружено, а глубже дочитывает с площадки прямо в ответ на запрос.
  • Темп загрузки — тот же, что у живой работы: Gratio держит паузы и пределы площадки, чтобы история не стоила номеру блокировки. Большой канал может загружаться часами.
  • WhatsApp. Старые сообщения догружает телефон номера — он должен быть в сети.
  • Почта. Чат — переписка с одним адресом: письма из «Входящих», «Отправленных» и «Архива», у Gmail — из «Вся почта».

Что дальше

  • getChatHistory — листать историю чата до начала.
  • syncStateChanged — уведомление о начале и конце загрузки.
  • getChats — список чатов канала.

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