--- title: "Kanibalizacja: URL-e frazy (`getUrlsRanking`)" source: https://docs.senuto.com/modules/rank_tracker/rt-cannibalization-getUrlsRanking api: POST /api/rank_tracker/tools/cannibalization/getUrlsRanking --- # Kanibalizacja: URL-e frazy (`getUrlsRanking`) **`POST /api/rank_tracker/tools/cannibalization/getUrlsRanking`** Przykładowe żądanie: ```json { "project_id": null, "keyword": "generator słów kluczowych", "date_min": "2026-06-20", "date_max": "2026-06-29" } ``` Przykładowa odpowiedź: ```json { "success": true, "data": [ { "url": "https://www.senuto.com/pl/baza-slow-kluczowych/", "avg_pos": "40.20", "occurrences": 5 }, { "url": "https://www.senuto.com/pl/blog/planer-slow-kluczowych/", "avg_pos": "31.75", "occurrences": 4 } ], "pagination": { "page_count": 1, "current_page": 1, "has_next_page": false, "has_prev_page": false, "count": 2, "limit": 10 } } ``` Uszczegółowienie kanibalizacji dla **jednej frazy**: zwraca konkurujące URL-e wraz ze średnią pozycją (`avg_pos`) i liczbą pomiarów, w których dany URL wystąpił (`occurrences`) w zadanym zakresie dat. Frazę wskazujesz nazwą (`keyword`), a projekt przez `project_id`. | URL | Średnia pozycja | Liczba pomiarów | | --- | --- | --- | | https://www.senuto.com/pl/baza-slow-kluczowych/ | 40.20 | 5 | | https://www.senuto.com/pl/blog/planer-slow-kluczowych/ | 31.75 | 4 | _projekt Rank Trackera, keyword „generator słów kluczowych”, 2026-06-20 → 2026-06-29. `avg_pos` jest stringiem (2 miejsca po przecinku)._ --- ## Żądanie `POST` `/api/rank_tracker/tools/cannibalization/getUrlsRanking` Nagłówki: `Authorization: Bearer `, `Content-Type: application/json`. ```jsonc filename="żądanie.jsonc" { "project_id": null, "keyword": "generator słów kluczowych", "date_min": "2026-06-20", "date_max": "2026-06-29" } ``` ### Parametry ```ts type RtCannibalizationGetUrlsRankingRequest = { /** **Wymagane**. ID projektu Monitoringu. Realny `project_id` pobierzesz z `POST /api/rank_tracker/management/projects/getMyActiveProjects`. */ project_id: number; /** **Wymagane**. Fraza (dopasowanie po `Keywords.name`). */ keyword: string; /** Data początkowa (RRRR-MM-DD). */ date_min?: string; /** Data końcowa (RRRR-MM-DD). */ date_max?: string; /** Liczba wierszy na stronę. @default 10 */ limit?: number; /** Numer strony. @default 1 */ page?: number; } export default RtCannibalizationGetUrlsRankingRequest ``` > **Ostrzeżenie:** > `keyword` jest dopasowywane po dokładnej nazwie frazy — użyj wartości z `tools/cannibalization/getKeywords` (pole `keyword`). Nieistniejąca fraza da pustą listę. ## Odpowiedź `data` to lista konkurujących URL-i (`url`, `avg_pos` jako string, `occurrences`). ```ts type RtCannibalizationGetUrlsRankingResponse = { success: boolean; data: Array<{ url: string; /** Średnia pozycja — **string**, 2 miejsca po przecinku */ avg_pos: string; /** Liczba pomiarów, w których URL wystąpił */ occurrences: number; }>; pagination: { page_count: number; current_page: number; has_next_page: boolean; has_prev_page: boolean; count: number; limit: number }; } export default RtCannibalizationGetUrlsRankingResponse ``` ## Błędy Błędy tego endpointu przychodzą we [wspólnej kopercie ze statusem `418`](/types/errors). ## Powiązane akcje - `tools/cannibalization/getKeywords` — lista fraz z kanibalizacją (źródło `keyword`).