SerpWatch
Меню

Позиции из API в Google Таблицы и Python

Готовые примеры: выгрузить позиции SerpWatch в Google Таблицы через Apps Script и в CSV на Python.

Google Таблицы

Откройте таблицу → «Расширения» → Apps Script, вставьте код из примера, подставьте токен и id проекта и запустите функцию. Чтобы данные обновлялись сами, добавьте триггер по времени, например раз в день.

Python

Пример ниже выгружает позиции за 30 дней в CSV. Для отчётов в Looker Studio или Power BI удобно складывать такой файл в общую папку по расписанию.

Сколько данных

Метод позиций отдаёт до 50 000 строк за запрос. Больше — постранично через offset.

Пример

// Google Apps Script
function loadPositions() {
  const token = 'sw_ваш_токен', project = 1;
  const r = UrlFetchApp.fetch('https://serpwatch.ru/api/v1/projects/' + project + '/positions',
    {headers: {Authorization: 'Bearer ' + token}});
  const rows = JSON.parse(r.getContentText());
  const sheet = SpreadsheetApp.getActiveSheet();
  sheet.clear().appendRow(['keyword_id', 'date', 'position', 'url', 'source']);
  rows.forEach(p => sheet.appendRow([p.keyword_id, p.date, p.position, p.url, p.source]));
}

# Python
import csv, requests
r = requests.get("https://serpwatch.ru/api/v1/projects/1/positions",
                 headers={"Authorization": "Bearer sw_ваш_токен"}, timeout=60)
with open("positions.csv", "w", newline="", encoding="utf-8") as f:
    w = csv.DictWriter(f, fieldnames=["keyword_id", "date", "source", "position", "url", "impressions", "clicks"])
    w.writeheader(); w.writerows(r.json())