Analiza konkurentów (getData)
/api/visibility_analysis/tools/competitors_analysis/getDataNarzędzie Analiza konkurentów porównuje frazy kluczowe domeny głównej z frazami konkurentów. W zależności od trybu (mode) zwraca frazy wspólne, frazy konkurentów, których brakuje domenie głównej, albo frazy domeny głównej. Każdy wiersz zawiera statystyki frazy (średnia liczba wyszukiwań, CPC, trendy, trudność) oraz pozycję i URL dla każdej z porównywanych domen. Wynik jest stronicowany.
| Fraza | Wyszukiwania/mies. | CPC | Trudność | Trend (12 mies.) | Parametry |
|---|---|---|---|---|---|
| nike | 673 000 | 1,31 | 77 | 673000, 673000, 673000, 673000, 673000, 673000, 1000000, 673000, 550000, 550000, 823000, 550000 | — |
| adidas | 368 000 | 0,68 | 77 | 450000, 368000, 368000, 450000, 368000, 301000, 368000, 301000, 301000, 368000, 550000, 450000 | — |
zalando.pl vs eobuwie.com.pl (mode: common_keywords, limit: 2). Wszystkie adresowalne pola stałe wiersza (pominięto klucze dynamiczne per domena — <domena>, <domena>_pos, <domena>_url — bo zawierają kropkę w nazwie i nie da się ich zaadresować ścieżką; są w JSON-ie i sekcji „Struktura odpowiedzi”).
Żądanie
POST /api/visibility_analysis/tools/competitors_analysis/getData
Nagłówki: Authorization: Bearer <token>, Content-Type: application/json.
Struktura żądania
Podstawowy
{
"main_domain": { "domain": "zalando.pl", "gte": 1, "lte": 50 },
"competitors_domains": [
{ "domain": "eobuwie.com.pl", "gte": 1, "lte": 50 }
],
"mode": "common_keywords"
}Parametry
| Name | Type | Default |
|---|---|---|
main_domain | DomainWithPositionRangeWymagane (walidator | |
competitors_domains | DomainWithPositionRange[]Wymagane. Niepusta tablica obiektów o tej samej strukturze co | |
mode | "common_keywords" | "competitors_keywords" | "main_domain_keywords"Wymagane. Tryb porównania (klasa
| |
country_id | numberID kraju (bazy słów kluczowych). | 1 (Polska) |
page | numberNumer strony paginacji. | 1 |
limit | numberRozmiar strony paginacji. Odbija się w | 10 |
filtering | Record<string, unknown>Filtrowanie wyników. Rejestr dostępnych pól filtrowania jest niezweryfikowany — używaj ostrożnie i testuj na małych zapytaniach. | |
order | Record<string, unknown>Sortowanie wyników. Podobnie jak |
Pamiętaj, że main_domain to obiekt (nie string), a competitors_domains to tablica obiektów — każdy z kompletem domain + gte + lte. Brak któregokolwiek z pól wymaganych kończy się odpowiedzią 418 z invalid_data i kluczem _required.
Endpoint obsługuje metodę POST z ciałem JSON (Authorization: Bearer <token>, Content-Type: application/json). Narzędzia z grupy tools mają dzienny limit użyć — po jego przekroczeniu API zwraca 418. Pułapka w strukturze odpowiedzi: poza polami stałymi (keyword, cpc, searches, trends, difficulty, params) każdy wiersz zawiera klucze dynamiczne per domena, zdublowane w dwóch postaciach — obiekt "<domena>": { pos, url } oraz spłaszczone pola "<domena>_pos" i "<domena>_url" z tymi samymi wartościami.
Odpowiedź
Po pomyślnym żądaniu otrzymujesz data (tablicę wierszy fraz kluczowych) oraz pagination. Wiersz składa się z pól stałych — keyword, cpc, searches, trends (12 miesięcy), difficulty, params — oraz z kluczy dynamicznych per domena dla domeny głównej i każdego konkurenta. Dane pozycji każdej domeny są zdublowane: raz jako obiekt "<domena>": { pos, url }, a raz jako spłaszczone pola "<domena>_pos" i "<domena>_url" z tymi samymi wartościami.
Skrócona
{
"success": true,
"data": [
{
"keyword": "nike",
"cpc": 1.31,
"searches": 673000,
"difficulty": 77,
"zalando.pl": { "pos": 3, "url": "zalando.pl/nike/" },
"eobuwie.com.pl": { "pos": 2, "url": "eobuwie.com.pl/c/eobuwie/marka:nike" }
}
],
"pagination": { "page_count": 37217, "current_page": 1, "has_next_page": true, "has_prev_page": false, "count": 74433, "limit": 2 }
}Struktura odpowiedzi
| Name | Type | Default |
|---|---|---|
success | boolean
| |
data | CompetitorsAnalysisRow[]Wiersze fraz kluczowych z pozycjami porównywanych domen | |
pagination | { page_count: number; current_page: number; has_next_page: boolean; has_prev_page: boolean; count: number; limit: number; }Metadane paginacji |
Błędy
| Name | Type | Default |
|---|---|---|
success | false | |
data | { error: { type: string; message: string; params?: Record<string, Record<string, string>>; }; } |
418 jest zwracane przy błędach walidacji: brak pól wymaganych (main_domain, competitors_domains, mode) skutkuje invalid_data z regułą _required dla brakującego pola. Pola gte i lte są wymagane wewnątrz obiektów domen — pominięcie ich w main_domain lub w elemencie competitors_domains również kończy się 418. Kod 418 pojawia się także po przekroczeniu dziennego limitu użyć narzędzi tools.
Powiązane akcje
getData— porównanie fraz domeny głównej z konkurentami (ta strona; jedyna akcja narzędzia)