Публичный API Google News

Проверьте, находит ли Google News свежие публикации сайта

Эти методы проверяют, находит ли RSS Google News свежие публикации указанного сайта, и собирают ленты по запросу, сущности, теме или сюжету. API-ключ не нужен.

#Один домен

GET/public/google-newsPublic
Параметры запроса
domainstringобязательный
Домен или полный URL. Протокол, путь и www. будут удалены автоматически.
curl
curl "https://dstrends.com/api/public/google-news?domain=osome.com"
Ответ
{
  "ok": true,
  "domain": "osome.com",
  "exists": true,
  "publicationCount": 100,
  "latestItems": [
    {
      "title": "Example headline",
      "url": "https://news.google.com/rss/articles/...",
      "sourceLabel": "Osome"
    }
  ]
}

#Список доменов

POST/public/google-news/bulkPublic
Тело JSON
domainsstring[]обязательный
До 100 доменов или URL.
curl
curl "https://dstrends.com/api/public/google-news/bulk" \
  -H "Content-Type: application/json" \
  -d '{"domains":["osome.com","bbc.com","example.invalid"]}'

#Ленты, темы и сюжеты

Проверка Google News также собирает ленты по поисковому запросу, ID сущности из Knowledge Graph, теме или сюжету. Эти проверки выполняются на сервере через Scrapering; ключ поставщика в браузер не передаётся.

Инструмент запрашивает максимальный размер ленты за последние 7 дней. Его селекторы с поиском охватывают 72 страны и региона из каталога веб-изданий Google News и доступные языки каждой страны.

POST/public/google-news/explorePublic
Тело JSON
modestringобязательный
search, entity, topic или story.
inputstringобязательный
Поисковый запрос, ID сущности вида /m/ или /g/, название темы либо токен или ссылка темы/сюжета Google News.
titlestringнеобязательный
Необязательная подпись темы или сюжета. Какую ленту запросить, определяет токен.
country / languagestringобязательный
Поддерживаемые коды страны и языка, например RU и ru.
timeframestringобязательный
1d, 7d или 30d.
limitnumberобязательный
10, 20, 50 или 100 элементов.

Примеры ниже используют те же тела запросов, что и инструмент. Отправляйте их наPOST /api/public/google-news/explore. Интерактивные примеры пользуются эквивалентным маршрутом /api/google-news-explore. Все четыре запрашивают максимум 100 элементов за последние 7 дней.

#Поиск по запросу

Найдите новости о фразе или теме. Запрос передаётся в input; операторы вроде site:bbc.com поддерживаются.

Запрос по фразе
{
  "mode": "search",
  "input": "artificial intelligence",
  "country": "US",
  "language": "en",
  "timeframe": "7d",
  "limit": 100
}

#Поиск по ID сущности

Используйте ID сущности из Knowledge Graph, чтобы отличать тёзок. Поддерживаются ID вида /m/ и /g/; необязательный префикс kg: убирается.

Запрос по сущности
{
  "mode": "entity",
  "input": "/m/045c7b",
  "country": "US",
  "language": "en",
  "timeframe": "7d",
  "limit": 100
}

#Поиск ID тем

Прочитайте доступные категории страны, прежде чем создавать ленту темы. Этот GET не расходует дневную проверку. Скопируйте возвращённый topics[].token в input запроса темы.

GET/public/google-news/explore?topics=RUPublic
Ответ каталога тем (сокращён)
{
  "ok": true,
  "topics": [
    {
      "title": "Business",
      "token": "CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pWVXlnQVAB",
      "url": null
    }
  ]
}

#Лента по ID темы

Вставьте полный токен или ссылку https://news.google.com/topics/…. Готовые ленты также возвращают ID тем в result.relatedTopics[].token.

Запрос темы
{
  "mode": "topic",
  "input": "CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pWVXlnQVAB",
  "title": "Business",
  "country": "US",
  "language": "en",
  "timeframe": "7d",
  "limit": 100
}

#Публикации по ID сюжета

Скопируйте result.stories[].token из готовой ленты или вставьте ссылку https://news.google.com/stories/…. Это один кластер сюжета, и в ответе будут публикации разных изданий о нём. Пример ниже взят из документации поставщика; для живого исследования берите актуальный токен сюжета.

Запрос сюжета
{
  "mode": "story",
  "input": "CAAqNggKIjBDQklTSGpvSmMzUnZjbmt0TXpZd1NoRUtEd2k1c2J2MUVSRWN0X3l1dFpkS3dpZ0FQAQ",
  "title": "Wall Street stocks",
  "country": "US",
  "language": "en",
  "timeframe": "7d",
  "limit": 100
}

#Чтение результата любой ленты

Каждый успешный POST возвращает одинаковый ответ об обработке. Сохраните его jobToken: это приватный токен доступа к проверке, а не ID темы или сюжета.

202 · Лента принята
{
  "ok": true,
  "status": "processing",
  "jobToken": "YOUR_JOB_TOKEN",
  "pollAfterMs": 2500,
  "quota": {
    "limit": 10,
    "remaining": 9,
    "resetAt": "2026-09-15T00:00:00Z"
  }
}
Чтение созданной задачи
{
  "method": "GET",
  "path": "/api/public/google-news/explore",
  "headers": {
    "Authorization": "Bearer YOUR_JOB_TOKEN"
  }
}

Повторяйте этот GET через pollAfterMs, пока статус processing, с исходной cookie браузера. Остановитесь, когда статус станет ready или вернётся ошибка. Не повторяйте POST, чтобы дождаться результата.

200 · Готовый ответ (иллюстративный, сокращён)
{
  "ok": true,
  "status": "ready",
  "result": {
    "request": {
      "mode": "topic",
      "input": "CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pWVXlnQVAB",
      "title": "Business",
      "country": "US",
      "language": "en",
      "timeframe": "7d",
      "limit": 100
    },
    "title": "Business",
    "googleNewsUrl": "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pWVXlnQVAB?hl=en-US&gl=US&ceid=US:en",
    "entityId": null,
    "fetchedAt": "2026-09-14T12:00:00Z",
    "articles": [
      {
        "title": "Example market headline",
        "url": "https://example.com/markets",
        "googleNewsUrl": null,
        "publisher": "Example News",
        "domain": "example.com",
        "author": "Example author",
        "publishedAt": "2026-09-14T10:00:00Z",
        "relativeTime": "2 hours ago",
        "imageUrl": null
      }
    ],
    "stories": [
      {
        "title": "Wall Street stocks",
        "token": "CAAqNggKIjBDQklTSGpvSmMzUnZjbmt0TXpZd1NoRUtEd2k1c2J2MUVSRWN0X3l1dFpkS3dpZ0FQAQ",
        "url": "https://news.google.com/stories/CAAqNggKIjBDQklTSGpvSmMzUnZjbmt0TXpZd1NoRUtEd2k1c2J2MUVSRWN0X3l1dFpkS3dpZ0FQAQ",
        "articles": [
          {
            "title": "Example market headline",
            "url": "https://example.com/markets",
            "googleNewsUrl": null,
            "publisher": "Example News",
            "domain": "example.com",
            "author": "Example author",
            "publishedAt": "2026-09-14T10:00:00Z",
            "relativeTime": "2 hours ago",
            "imageUrl": null
          }
        ]
      }
    ],
    "relatedTopics": [
      {
        "title": "Business",
        "token": "CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pWVXlnQVAB",
        "url": "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pWVXlnQVAB"
      }
    ]
  }
}

Создание лент ограничено 10 проверками на IP и браузер в сутки по UTC, в том числе при локальной разработке. Чтение готового результата не расходует ещё одну проверку. Открытие другой темы или сюжета создаёт новую проверку. В результатах есть статьи, издания, доступные кластеры сюжетов и связанные темы; отсутствующие разделы возвращаются пустыми списками.