--- title: "Pozostałe: lista grup (`list`)" source: https://docs.senuto.com/modules/rank_tracker/rt-groups-list api: GET /api/rank_tracker/management/groups/list --- # Pozostałe: lista grup (`list`) **`GET /api/rank_tracker/management/groups/list`** Zwraca grupy fraz kluczowych zdefiniowane w projekcie Rank Tracker wraz z podstawowymi metadanymi każdej grupy (`id`, `name`, `is_dynamic`, `keywords_number`). Odpowiedź jest opakowana w kopertę z paginacją (`pagination`). | Nazwa | ID grupy | Dynamiczna | Liczba fraz | | --- | --- | --- | --- | | eee | 21423 | 0 | 0 | _limit 2 — grupy fraz zdefiniowane w projekcie Rank Tracker. Wszystkie adresowalne pola wiersza._ --- ## Żądanie `GET` `/api/rank_tracker/management/groups/list` Nagłówki: `Authorization: Bearer `. Parametry przekazuj w **query stringu** (np. `?project_id=87913&limit=2&page=1`) — przekazanie ich w body żądania zostanie zignorowane i zwróci `418`. ### Struktura żądania **Podstawowy** ```jsonc filename="żądanie-podstawowe.jsonc" { "project_id": null } ``` **Rozszerzony** ```jsonc filename="żądanie-rozszerzone.jsonc" { "project_id": null, "limit": 2, "page": 1 } ``` **cURL** ```bash curl --location --request GET 'https://api.senuto.com/api/rank_tracker/management/groups/list?project_id=87913&limit=2&page=1' \ --header 'Authorization: Bearer $YOUR_TOKEN_HERE' ``` ### Parametry ```ts type GroupsListRequest = { /** * **Wymagane**. ID projektu Rank Tracker. Użytkownik musi mieć dostęp do projektu * (właściciel, admin lub udostępnienie ACL); w przeciwnym razie `418` `Unauthorized access`. * Realny `project_id` pobierzesz z `POST /api/rank_tracker/management/projects/getMyActiveProjects`. */ project_id: number; /** * Liczba grup na stronę (paginacja). Nieujemna liczba całkowita. * Gdy pominięte, zwracane są wszystkie grupy (`pagination.limit = null`). */ limit?: number; /** * Numer strony (paginacja). Nieujemna liczba całkowita. * @default 1 */ page?: number; } export default GroupsListRequest ``` > **Ostrzeżenie:** > Ten endpoint używa metody **`GET`** — parametry należy przekazywać w **query stringu** (kontroler odczytuje `getQuery()`, a nie `getData()`). Żądanie `POST` z parametrami w body zwraca `418` `invalid_data` (`params.project_id._required = "This field is required"`), ponieważ body jest ignorowane. Wymagany jest wyłącznie **`project_id`**; brak dostępu do projektu również skutkuje `418` (`Unauthorized access`). ## Odpowiedź Po pomyślnym żądaniu otrzymujesz `data` (płaską tablicę grup) oraz `pagination`. **Skrócona** ```json filename="przykładowa-odpowiedź (skrócona)" { "success": true, "data": [ { "id": 21423, "name": "eee", "is_dynamic": 0, "keywords_number": 0 } ], "pagination": { "page_count": 1, "current_page": 1, "has_next_page": false, "has_prev_page": false, "count": 1, "limit": 2 } } ``` **Pełna** ```json filename="przykładowa-odpowiedź (200)" { "success": true, "data": [ { "id": 21423, "name": "eee", "is_dynamic": 0, "keywords_number": 0 } ], "pagination": { "page_count": 1, "current_page": 1, "has_next_page": false, "has_prev_page": false, "count": 1, "limit": 2 } } ``` ### Struktura odpowiedzi ```ts type GroupsListResponse = { /** `true` przy powodzeniu; przy błędzie `false` i koperta z `error` */ success: boolean; /** Zwrócone grupy fraz kluczowych */ data: Group[]; /** Metadane paginacji */ pagination: { page_count: number; current_page: number; has_next_page: boolean; has_prev_page: boolean; count: number; /** Zastosowany `limit`; `null`, gdy parametr `limit` został pominięty */ limit: number | null; }; } type Group = { /** ID grupy */ id: number; /** Nazwa grupy */ name: string; /** * Czy grupa jest dynamiczna. UWAGA: akcja `list` zwraca surową liczbę całkowitą 0/1 * (nie wartość boolean). Dla porównania akcja `get` mapuje to pole na boolean i dodaje pole `filtering`. */ is_dynamic: 0 | 1; /** * Liczba fraz kluczowych w grupie. Pochodzi z `SUM(...)` w SQL — może być zwracana * jako liczba lub string, zależnie od sterownika bazy danych. */ keywords_number: number | string; } export default GroupsListResponse ``` ## Błędy ```ts type ErrorResponse = { success: false; data: { error: { /** np. invalid_data, unauthorized, unknown */ type: string; message: string; /** pole -> reguła -> komunikat (dla invalid_data) */ params?: Record>; }; }; } export default ErrorResponse ``` > **Błąd:** > **`418`** jest zwracane również w przypadku błędów walidacji — nie tylko przy ograniczaniu liczby żądań. Brak `project_id` (lub przekazanie parametrów w body zamiast w query stringu) → > `{"success":false,"data":{"error":{"type":"invalid_data","params":{"project_id":{"_required":"This field is required"}}}}}`. > Brak dostępu do wskazanego projektu → `418` z komunikatem `Unauthorized access`. ## Powiązane akcje - `list` — lista grup z paginacją (ta strona) - `get` — pojedyncza grupa po `group_id` (operacja odczytu, czyta `group_id` z query stringu; `is_dynamic` jako boolean + pole `filtering`) - `create` / `createDynamic` — utworzenie grupy statycznej / dynamicznej (`POST`, body przez `getData`) - `edit` / `editDynamic` — edycja grupy statycznej / dynamicznej (`POST`, body przez `getData`) - `delete` — usunięcie grupy (`POST`, body przez `getData`)