Frazy: przypisania grup (getData)
/api/rank_tracker/reports/keywords/getDataZwraca listę fraz projektu Rank Tracker wraz z informacją o ich przynależności do grup. Każdy element zawiera id frazy, jej nazwę (keyword) oraz przypisane grupy w dwóch formach: keyword_groups (string) i groups (tablica). Endpoint nie zwraca statystyk pozycji — te udostępnia akcja getData kontrolera positions (/api/rank_tracker/reports/positions/getData). Wynik jest stronicowany.
| Fraza | ID | Grupy (string) | Grupy (tablica) |
|---|---|---|---|
| kiedy pierwsza cieczka u psa | 8301076 | piesek | piesek |
| jak wozic psa w aucie | 19940324 | piesek | piesek |
projekt i grupa Rank Trackera, limit: 2. Zwróć uwagę: id frazy to string, a te same nazwy grup zwracane są w dwóch formach — keyword_groups (string) i groups (tablica). Wszystkie adresowalne pola wiersza.
Żądanie
POST /api/rank_tracker/reports/keywords/getData
Nagłówki: Authorization: Bearer <token>, Content-Type: application/json.
Struktura żądania
Podstawowy
// bez group_id — wszystkie frazy projektu
{
"project_id": null,
"limit": 2
}Parametry
| Name | Type | Default |
|---|---|---|
project_id | numberWymagane. ID projektu Rank Tracker — jedyne pole twardo wymagane przez walidator ( | |
group_id | numberOpcjonalne. ID grupy słów kluczowych. Bez tego pola endpoint zwraca wszystkie frazy projektu
(zwalidowane: | |
limit | numberRozmiar strony paginacji. Odbija się w | 10 |
page | numberNumer strony paginacji. | 1 |
filtering działa tylko dla pola keyword. Filtr po keyword zawęża wynik poprawnie,
ale filtr po groups — mimo że to pole jest w odpowiedzi — kończy się 500. Nieznany klucz
również zwraca 500, a nie 418. Puste filtering ([] albo grupa bez warunków) jest
bezpieczne i nie zmienia wyniku.
order nie ma efektu na tej akcji — dir: "ASC" i "DESC" zwracają wynik w tej samej,
domyślnej kolejności. Sortuj po swojej stronie.
Pułapki potwierdzone na produkcji:
idfrazy orazpagination.countsą zwracane jako stringi ("8301076","94") — w odróżnieniu od pozostałych pól paginacji, które są liczbami. Rzutuj je po swojej stronie.keyword_groupsto jeden string z nazwami grup rozdzielonymi znakiem nowej linii (\n), np."szcze\nBez grupy". Polegroupszawiera tę samą informację jako tablicę — używajgroups, jeśli nie chcesz parsować stringa.group_idjest opcjonalne: bez niego endpoint zwraca wszystkie frazy projektu (countpodaje ich łączną liczbę), a z nim zawęża wynik do fraz wskazanej grupy (count: "62").
Odpowiedź
Po pomyślnym żądaniu otrzymujesz data (tablicę fraz z przypisaniami grup) oraz pagination. Zwróć uwagę na typy: id frazy i pagination.count to stringi, a keyword_groups to string wieloliniowy (separator \n) — jego tablicowym odpowiednikiem jest groups.
Skrócona
{
"success": true,
"data": [
{ "id": "8301076", "keyword": "kiedy pierwsza cieczka u psa", "keyword_groups": "piesek", "groups": ["piesek"] }
],
"pagination": { "page_count": 31, "current_page": 1, "has_next_page": true, "has_prev_page": false, "count": "62", "limit": 2 }
}Struktura odpowiedzi
| Name | Type | Default |
|---|---|---|
success | boolean
| |
data | KeywordWithGroups[]Frazy projektu (lub grupy, jeśli podano | |
pagination | { page_count: number; current_page: number; has_next_page: boolean; has_prev_page: boolean; count: string; 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 (invalid_data) — nie tylko przy ograniczaniu liczby żądań. Brak project_id → 418 z {"project_id":{"_required":"This field is required"}}. Cudzy lub nieistniejący project_id zwraca 418 z Unauthorized access, a nie 404.
Powiązane akcje
getData— frazy projektu z przypisaniami grup, bez statystyk pozycji (ta strona)getProjectKeywords— słowa kluczowe całego projektugetGroupKeywords— lekka lista (id+keyword) ograniczona do jednej grupygetSerpHtml— zapis HTML wyników SERPgetBestKeywords/getProjectsStatus— pozostałe akcje pomocnicze kontrolera