Інтеграція SEMrush API для SEO-аналітики сайту
SEMrush API відкриває дані, які вручну з інтерфейсу збирати нерационально: органічний трафік та ключові слова конкурентів, позиції по тисячах запитів, ссилочний профіль, технічні аудити. API дозволяє включити ці дані в власну аналітичну систему, порівняти кілька доменів в одному дашборді та автоматизувати конкурентний аналіз.
Аутентифікація та базовий клієнт
SEMrush API використовує API-ключ як query-параметр. Формат ответу — CSV (за замовчуванням) або JSON для деяких ендпоінтів:
import requests
import csv
import io
class SemrushClient:
BASE_URL = 'https://api.semrush.com'
def __init__(self, api_key: str):
self.api_key = api_key
self.session = requests.Session()
def _request(self, params: dict) -> list[dict]:
params['key'] = self.api_key
resp = self.session.get(self.BASE_URL, params=params, timeout=30)
resp.raise_for_status()
if resp.text.startswith('ERROR'):
raise ValueError(f'Semrush API error: {resp.text}')
reader = csv.DictReader(io.StringIO(resp.text), delimiter=';')
return list(reader)
Органічні ключові слова домену
Отримайте топ органічні ключові слова з позиціями, обсягом пошуку, розрахованим трафіком.
Порівняння з конкурентами
Отримайте домени конкурентів за схожістю перетину органічних ключових слів.
Органічні ключові слова конкурентів
Отримайте ключові слова, по яких ранжируються ваші конкуренти, але не ви.
Backlink-аудит через API
Отримайте посилання з анкорним текстом, балом вихідного домену, датами першого/останнього появлення.
Мониторинг позицій
SEMrush Position Tracking доступний через окремий API для проектів.
Щоденний сбір метрик
Сбирайте щоденні метрики для доменів та зберігайте в PostgreSQL:
def collect_daily_metrics(client: SemrushClient, domains: list[str], db_conn):
for domain in domains:
try:
ranks = client.compare_domains([domain])[0]
keywords = client.get_organic_keywords(domain, limit=500)
# Зберегти у PostgreSQL
except Exception as e:
print(f'Помилка при сборе для {domain}: {e}')
Розрахунок стоимості API
SEMrush API тарифікується в «API units». Стоимість одного запиту залежить від типу та обсягу. План Guru — 3000 units на місяць. Business — 10 000.
Сроки
Базова інтеграція з щоденним сбором метрик домену та топ-200 ключових слів — 2–3 робочих дні. З аналізом конкурентів, backlink-аудитом, алертами та візуалізацією в Grafana/Metabase — 5–7 днів.







