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

getContactInfo

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

Отдаёт карточку собеседника личного чата: поля Green API и, в Telegram, подробный профиль — как экран профиля в приложении. Нужен, чтобы заполнить карточку клиента в вашей системе.

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

Параметры

Параметр Тип Обязательный Описание
chatId string да личный чат — id собеседника в этом канале. Группы не принимаются: для них — getGroupData

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

Карточка Марии в MAX:

curl

curl -X POST "$GRATIO_URL/waInstance$GRATIO_ID/getContactInfo/$GRATIO_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"chatId": "8695836"}'

Python

import os
import requests

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

url = f"{BASE}/getContactInfo/{TOKEN}"
payload = {"chatId": "8695836"}
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}/getContactInfo/${GRATIO_TOKEN}`;
const payload = { chatId: "8695836" };
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 . '/getContactInfo/' . getenv('GRATIO_TOKEN');
$payload = ['chatId' => '8695836'];

$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:

{
  "avatar": "https://i.oneme.ru/i?r=…",
  "name": "Мария",
  "contactName": "",
  "chatId": "8695836",
  "chatType": "user",
  "lastSeen": null,
  "phoneNumber": 0,
  "email": "",
  "category": "",
  "description": "",
  "products": [],
  "isArchive": false,
  "isDisappearing": false,
  "messageExpiration": 0,
  "isMute": false,
  "muteExpiration": 0,
  "isBusiness": false
}

Поля ответа

Поле Тип Описание
avatar string ссылка на фото профиля; "" — фото нет или скрыто. Та же, что у getAvatar
name string имя в профиле мессенджера
contactName string имя в адресной книге аккаунта
chatId, chatType string id собеседника; user или bot
lastSeen integer, null последний визит, Unix; null — скрыт или неизвестен
phoneNumber integer номер, если собеседник его открыл, иначе 0
description string «О себе»; у бота — его описание
isArchive boolean чат в архиве
isMute, muteExpiration boolean, integer чат без звука и до какого времени, Unix
isDisappearing, messageExpiration boolean, integer в чате автоудаление сообщений и его срок, с
isBusiness boolean у собеседника бизнес-профиль
email, category, products всегда пустые — для совместимости с Green API

Подробный профиль Telegram

В Telegram ответ дополняют поля сверх Green API. Поле есть, только если Telegram его сообщил. Профиль Марии:

curl -X POST "$GRATIO_URL/waInstance$GRATIO_ID/getContactInfo/$GRATIO_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"chatId": "8617393401"}'

Ответ 200 OK:

{
  "avatar": "https://api.gratio.net/media/7100000001/8617393401/avatar/0/5be1…",
  "name": "Мария",
  "contactName": "",
  "chatId": "8617393401",
  "chatType": "user",
  "lastSeen": 1791823600,
  "phoneNumber": 0,
  "email": "",
  "category": "",
  "description": "Мама Вари из 3А",
  "products": [],
  "isArchive": false,
  "isDisappearing": false,
  "messageExpiration": 0,
  "isMute": false,
  "muteExpiration": 0,
  "isBusiness": false,
  "status": "offline",
  "username": "maria_k",
  "usernames": ["maria_k"],
  "isContact": false,
  "isMutualContact": false,
  "isBlocked": false,
  "isVerified": false,
  "isPremium": false,
  "birthday": {"day": 14, "month": 10, "year": null},
  "commonChatsCount": 1,
  "callsAvailable": true,
  "hasStories": false
}
Поле Описание
status online, offline — с точным lastSeen; recently, last_week, last_month, long_ago — точное время скрыто настройками приватности
username, usernames основной ник и все активные, включая коллекционные
isContact, isMutualContact собеседник в контактах аккаунта; контакт взаимный
isBlocked аккаунт заблокировал собеседника
isVerified, isPremium отметки Telegram: проверенный аккаунт, Telegram Premium
warning отметка Telegram scam или fake — мошенник или поддельный аккаунт
birthday day, month, year; год бывает скрыт — null
commonChatsCount общих групп с аккаунтом
personalChannelId личный канал собеседника, -100…
callsAvailable собеседнику можно позвонить
hasStories у собеседника есть активные истории, см. Истории Telegram
business бизнес-профиль — таблица ниже

Так выглядит business у аккаунта Telegram для бизнеса:

"business": {
  "address": "Москва, ул. Лесная, 5",
  "latitude": 55.7812,
  "longitude": 37.5893,
  "timezone": "Europe/Moscow",
  "workHours": [
    {"day": "mon", "open": "09:00", "close": "18:00"},
    {"day": "tue", "open": "09:00", "close": "18:00"}
  ],
  "openNow": true,
  "introTitle": "Здравствуйте!",
  "introText": "Ответим в рабочие часы"
}
Поле Описание
address, latitude, longitude адрес и точка на карте
timezone часовой пояс часов работы
workHours часы работы по дням: day — mon…sun, open и close — ЧЧ:ММ; интервал через полночь делится по дням, конец дня — 24:00
openNow открыто ли сейчас
introTitle, introText приветствие, которое видит новый собеседник

Свежесть данных

Канал Как часто Gratio спрашивает мессенджер
MAX карточка хранится до часа; раньше обновится, если MAX сообщил об изменении контакта
Telegram при каждом запросе; фото хранится 10 минут
WhatsApp «О себе» и фото — не чаще раза в 6 часов на собеседника
Почта имя — из последнего письма собеседника

Новое имя или фото собеседника в MAX появится в ответе не позже чем через час. В Telegram кэшируйте карточки у себя: каждый запрос — обращение к Telegram.

Ошибки

Код code Когда Что делать
400 validation нет chatId добавить поле
400 not_a_user chatId — группа или канал (MAX, Telegram) для групп — getGroupData
400 not_found нет такого собеседника проверить chatId
400 not_authorized канал не на связи проверить getStateInstance

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

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

  • MAX. avatar — ссылка MAX на фото. Подробного профиля нет, lastSeen — null, номер MAX не показывает.
  • Telegram. avatar — подписанная ссылка Gratio: у Telegram нет публичных ссылок на фото. Номер — только если собеседник его открыл.
  • WhatsApp. avatar — подписанная ссылка Gratio, phoneNumber — номер собеседника, description — «О себе». У бизнес-аккаунта с подтверждённым именем — "isVerified": true.
  • Почта. Известно только имя из писем, остальные поля пустые.

Что дальше

  • getAvatar — только фото профиля.
  • getContacts — все контакты канала.
  • checkAccount — найти собеседника по номеру.

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