Rank Tracker Pages
const url = 'https://sitechecker.pro/api/v1/pages?project_id=12345&date_from=2026-02-22&date_to=2026-05-22&search_engine=google&device=desktop&location_id=loc_TmV3IFlvcmssVW5pdGVkIFN0YXRlcw&language_code=en&group_id=SG9tZSBQYWdlcw&rankings=all&movement_window=1d&serp_feature=ads&fields=keyword_refs&limit=50&offset=0';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://sitechecker.pro/api/v1/pages?project_id=12345&date_from=2026-02-22&date_to=2026-05-22&search_engine=google&device=desktop&location_id=loc_TmV3IFlvcmssVW5pdGVkIFN0YXRlcw&language_code=en&group_id=SG9tZSBQYWdlcw&rankings=all&movement_window=1d&serp_feature=ads&fields=keyword_refs&limit=50&offset=0' \ --header 'Authorization: Bearer <token>'Returns URL-level Rank Tracker metrics for pages ranking for the project’s tracked keywords over the selected date range. Filters such as device or location choose the keywords the page aggregates are built from, rather than filtering the pages themselves.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Example
12345Project ID.
Example
2026-02-22Start of the Rank Tracker date range (inclusive, Y-m-d). Clamped to the project’s available indicator dates.
Example
2026-05-22End of the Rank Tracker date range (inclusive, Y-m-d). Visibility-style fields are snapshots for the latest available check within this range (as_of_date).
Free-text search over connected keyword text.
Substring filter on the ranked/page URL.
Example
googleSearch engine machine value from rank_tracker_filter_values (e.g. google).
Device filter.
Example
loc_TmV3IFlvcmssVW5pdGVkIFN0YXRlcwOpaque location id from rank_tracker_filter_values tracking_profiles (loc_… value).
Example
enLanguage code (ISO alpha-2) from rank_tracker_filter_values.
Example
SG9tZSBQYWdlcwKeyword group id from the groups endpoint (opaque value).
Ranking filter. Bucket filters are cumulative (top_10 = positions 1-10); response distribution buckets are exclusive. Movement filters (moved_up/moved_down/not_changed) compare against the movement_window snapshot.
Comparison window for movement rankings filters. Only valid with rankings=moved_up, moved_down or not_changed. Default: 7d.
Filter keywords whose SERP contains the feature.
Minimum search volume.
Maximum search volume.
Use fields=keyword_refs to attach lightweight {tracked_keyword_id, keyword} references per page.
Sort as “
Page size. Rank Tracker list endpoints cap at 50 rows per request.
Pagination offset.
Responses
Section titled “Responses”Paginated URL-level aggregates
object
URL-level aggregates computed over the filtered keyword pool. url_visibility is a percentage snapshot for as_of_date; keyword_refs appear only with fields=keyword_refs.
object
Page URL.
Best-performing tracked keyword this page ranks for.
Monthly search volume of that keyword.
Position this page holds for that keyword.
Visibility of this page across the filtered keyword pool, as a percentage snapshot for as_of_date.
Visibility change over the last day, in percentage points.
Visibility change over the last 7 days, in percentage points.
Visibility change over the last 30 days, in percentage points.
Visibility change over the last 90 days, in percentage points.
Visibility change since tracking began, in percentage points.
Tracked keywords this page ranks for.
How many of them return an AI Overview.
Combined monthly search volume of those keywords.
Mean position across those keywords.
Traffic potential score for the page, weighting volume by position.
Keyword groups the page ranks in.
object
Id of the group, as returned by the groups endpoint.
Display name of the group.
Tracked keywords this page ranks for inside the group.
Only with fields=keyword_refs. Lightweight references without metrics.
object
Pagination meta plus the snapshot date used for visibility-style fields.
object
Rows matching the request, before pagination.
Page size that was applied.
Pagination offset that was applied.
Date the visibility-style fields were snapshotted on.
Example
{ "data": [ { "page_url": "/youtube-keyword-tool/", "top_keyword": "youtube keyword tool", "top_keyword_volume": 2400, "top_keyword_position": 23, "url_visibility": 15.22, "url_visibility_change_1d": -6, "url_visibility_change_7d": -13, "url_visibility_change_30d": 14, "url_visibility_change_90d": 18, "url_visibility_change_all_time": 27, "tracked_keywords_count": 2, "ai_overview_keywords_count": 0, "url_keywords_volume": 3120, "url_average_position": 21.5, "url_potential_rank": 140.4, "groups": [ { "group_id": "RXh0cmEgVG9vbHM", "group_name": "Extra Tools", "keywords_count": 2 } ], "keyword_refs": [ { "tracked_keyword_id": 123456, "keyword": "youtube keyword tool" } ] } ], "meta": { "total": 137, "limit": 50, "offset": 0, "as_of_date": "2026-05-22" }}Missing or invalid API key
Returned as INVALID_API_KEY when the key is missing or unknown, and as REVOKED_API_KEY when the key exists but was revoked — the latter needs a new key.
object
object
Example
{ "error": { "code": "INVALID_API_KEY", "message": "Invalid or missing API key." }}No active API entitlement for the account, or the project belongs to another account
Returned as MISSING_PUBLIC_API_ACCESS when the account has no active API entitlement, and as ACCESS_DENIED when the requested project belongs to another account.
object
object
Example
{ "error": { "code": "MISSING_PUBLIC_API_ACCESS", "message": "API access is not available: the account has no active API entitlement." }}Project not found
The exact missing resource is in error.code: PROJECT_NOT_FOUND, SEGMENT_NOT_FOUND, CRAWL_NOT_FOUND, KEYWORD_NOT_FOUND, OPPORTUNITY_NOT_FOUND, SNAPSHOT_UNAVAILABLE or NOT_FOUND.
object
object
Example
{ "error": { "code": "PROJECT_NOT_FOUND", "message": "Project not found." }}Validation error
Rejected query parameters. error.code is VALIDATION_ERROR for parameter validation (including a query parameter the endpoint does not accept), or INVALID_DATE_RANGE / INVALID_FILTER / INVALID_EVENT_TYPE / UNSUPPORTED_FILTER / UNSUPPORTED_DIMENSION / UNSUPPORTED_METRIC / UNSUPPORTED_SCOPE / SEGMENT_FILTER_UNSUPPORTED for module-specific rules.
object
object
Example
{ "error": { "code": "VALIDATION_ERROR", "message": "project_id is required." }}Rate limit exceeded — retry after the interval in the Retry-After header
object
object
Example
{ "error": { "code": "RATE_LIMIT_EXCEEDED", "message": "Rate limit exceeded. Try again later." }}Internal server error
object
object
Example
{ "error": { "code": "INTERNAL_ERROR", "message": "Internal server error." }}