Skip to main content
По умолчанию GET /api/spam-check/{check_id} возвращает для каждого аккаунта только email и category. Любые данные полученного письма добавляются параметром fields — имена полей через запятую. Не запрошенное поле в ответ не попадает.

Поля

smtp, sender_ip, spf, dkim и dmarc берутся из заголовков, которые добавляет сам Gmail (Received, Authentication-Results), — отправитель не может их подделать. Правила:
  • email и category есть всегда; поля идут в порядке таблицы.
  • null — значения нет. Пока письмо не пришло (category: "pending"), все запрошенные поля — null.
  • Неизвестное имя поля → 400 со списком допустимых.

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

Тело и оригинал письма

body_text, body_html и raw — обычные JSON-строки. Переводы строк и кавычки экранированы по стандарту JSON (\r\n, \"), любой JSON-парсер вернёт исходный текст:
raw — строка UTF-8. Если нужна точная байтовая копия (например, письмо в 8-битной кодировке) или просто файл, скачайте .eml:

Большие ответы

Оригинал письма весит от десятков килобайт до нескольких мегабайт (с вложениями), и в ответе он повторяется для каждого аккаунта. Сам по себе большой ответ не проблема, но лучше не тянуть тяжёлые поля на каждом опросе:
1

Опрашивайте с лёгкими полями

?fields=spf,dkim,dmarc,ip_type или вообще без fields, пока status = pending.
2

Тяжёлые поля — один раз

Когда status стал complete или timeout, запросите body_text, body_html, raw одним запросом. Или скачайте оригиналы через /raw только по нужным аккаунтам.
Ответы API сжимаются gzip — HTML и оригиналы уменьшаются в 5–10 раз. Python requests и fetch включают сжатие сами, в curl добавьте --compressed.
Результаты и данные писем доступны 30 минут после старта проверки. Проверку видит только ключ, который её создал.