Чому SERP API, а не SaaS для відстеження позицій
Сервіс відстеження позицій продає вам свій розклад, свої ліміти ключових слів і свої звіти. SERP API продає сировину: живий топ-10, а за потреби й топ-100, для кожного ключового слова, а розклад, зберігання і звітність лишаються у ваших руках.
Тому Serper.live — це бекенд для трекера, який належить вам: панель агентства, модуль у вашому SEO-продукті, нічне завдання, що записує позиції у вашу базу даних. Без оплати за користувачів, квот на ключові слова й планів на проєкт; рахунок — це кількість пошуків, помножена на ринкову ціну.
Компроміс очевидний: планувальник і зберігання пишете ви, а кожна перевірка — справжній пошук Google, що триває кілька секунд. Натомість кожна збережена позиція отримана у відомий час, для відомих країни й пристрою, і ніколи з кешу.
Як отримати позицію за ключовим словом
Один запит на ключове слово, країну й пристрій. Повний довідник є в документації; логіка у вашому коді — чотири кроки, а приклад нижче — той самий запит у curl, JavaScript і Python:
- Надішліть
POST /v1/searchізquery,countryіdevice, за потребиlanguageіlimit. Живий пошук зазвичай відповідає за 2–3 секунди, перший до ринку після паузи — довше: установіть тайм-аут клієнта щонайменше 100 секунд і запускайте перевірки з черги. - Прочитайте
organic[]. Кожен елемент маєposition,title,url,domainіsnippetу тому порядку, в якому їх показує Google. - Знайдіть елемент, чий
domainзбігається з сайтом, який ви відстежуєте, і збережіть йогоpositionразом ізfetchedAtіrequestId. Заздалегідь вирішіть, чи зараховується субдомен кореневому домену, і ігноруйте початковеwww.. - Відсутність збігу означає, що в цій перевірці сайт поза запитаним діапазоном, типово поза топ-10. Зберігайте й це: випадання ключового слова з топ-10 — саме те, для чого існує трекер.
curl -s -X POST https://api.serper.live/v1/search \
-H "Authorization: Bearer sl_live_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query":"best coffee shops","country":"DE","device":"desktop"}' \
| jq '.organic[] | select(.domain == "example.com") | .position'
const response = await fetch('https://api.serper.live/v1/search', {
method: 'POST',
headers: {
Authorization: 'Bearer sl_live_YOUR_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ query: 'best coffee shops', country: 'DE', device: 'desktop' }),
signal: AbortSignal.timeout(100000),
});
const { organic } = await response.json();
const hit = organic.find(row => row.domain === 'example.com');
console.log(hit ? hit.position : 'outside the top 10');
import requests
response = requests.post(
"https://api.serper.live/v1/search",
headers={"Authorization": "Bearer sl_live_YOUR_TOKEN"},
json={"query": "best coffee shops", "country": "DE", "device": "desktop"},
timeout=100,
)
organic = response.json()["organic"]
position = next((row["position"] for row in organic if row["domain"] == "example.com"), None)
print(position or "outside the top 10")
Ринки та пристрої
Відкриті ринки зараз: Німеччина, Франція, Велика Британія, Туреччина, Україна і Сполучені Штати. У кожного ринку є дволітерний код, який ви передаєте як country, типова мова інтерфейсу Google, яку можна змінити через language, і однакова ціна для desktop і mobile.
Нові ринки з’являються в GET /v1/countries і на сторінці цін у міру запуску; ваша інтеграція не змінюється.
Скільки це коштує
Перевірка — це один запит: від $0.01 за ключове слово, країну й пристрій, тобто $10.00 за 1 000 перевірок. Підписки немає, а баланс передплачується в USDT або USDC від $5 і ніколи не згорає.
Приклад: 500 ключових слів, які перевіряються раз на день на одному пристрої, дають близько 15 000 запитів на місяць. Помножте на ціну свого ринку або введіть це число в калькулятор на сторінці цін. Desktop і mobile подвоюють кількість; дві перевірки на день подвоюють її ще раз.
Обмеження, які варто знати
- Живий пошук зазвичай триває 2–3 секунди, перший для ринку після паузи — довше. Плануйте пропускну здатність: запускайте перевірки паралельно з черги з тайм-аутом клієнта щонайменше 100 секунд.
- Позиції такі глибокі, як ви просите:
limit1–100, типово 10. Кожна розпочата десятка коштує одну ціну ринку, тож перевірка топ-30 резервує три ціни і лишає оплату лише за десятки з результатами; сайт поза запитаним діапазоном позначається як відсутній, а не як позиція. - Нічого не кешується. Два однакові запити — це два живі пошуки і два списання; зберігайте результати на своєму боці.
- Результати прив’язані до країни, пристрою й мови, які ви надсилаєте. Порівнюйте позицію лише з попередніми перевірками з тими самими трьома значеннями.
- Google змінює результати від перевірки до перевірки і з часом. Одна жива перевірка — це вибірка; сигнал для звіту — тренд за кілька днів.
Почніть з одного ключового слова
Спробуйте, перш ніж писати код: пісочниця виконує три живі пошуки на IP-адресу на день без акаунта, а її поле домену одразу показує позицію. Потім створіть акаунт, поповніть баланс від $5 і надішліть перший запит зі швидкого старту.