Отдаёт счётчики чата за последние 7 дней: сколько посетителей пришло и написало, сколько оставили контакт, сколько ждали ответа дольше обещанного и как быстро отвечают люди.
| Запрос | GET /v1/instances/{idInstance}/getSiteStats |
| Ключ | заголовок Authorization: Bearer {apiTokenInstance} |
| Тело | нет |
| Каналы | чат на сайте |
Пример запроса
Счётчики за неделю:
curl
curl "$GRATIO_URL/v1/instances/$GRATIO_ID/getSiteStats" \
-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}/getSiteStats"
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}/getSiteStats`;
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 . '/getSiteStats';
$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:
{
"periodDays": 7,
"from": 1791218858,
"to": 1791823658,
"newVisitors": 214,
"suspect": 3,
"wrote": 37,
"leftContact": 12,
"unanswered": 2,
"firstReplyMedianSeconds": 95
}
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
periodDays, from, to |
integer | период: 7 дней, начало и конец — секунды Unix |
newVisitors |
integer | новые посетители |
suspect |
integer | посетители с пометкой suspect: сверх предела новых с одного адреса или с заполненным полем-ловушкой. В других счётчиках их нет |
wrote |
integer | написали хотя бы одну реплику |
leftContact |
integer | оставили телефон или почту в форме |
unanswered |
integer | ждали ответа человека дольше обещанного срока — настройка siteReplyTime: 15 минут, час или сутки |
firstReplyMedianSeconds |
integer или null | медиана первого ответа человека, секунды; ответов не было — null |
Посетители из предпросмотра в кабинете не считаются.
Ошибки
| Код | code |
Когда | Что делать |
|---|---|---|---|
501 |
not_supported |
MAX, Telegram, WhatsApp, почта | — |
Общие правила — в статье Ответы и ошибки.
Что дальше
- getVisitor — подробности о посетителе.
- Настройки окна — обещанный срок ответа и часы работы.
