Skip to main content
Rank history is stored as rank-check rows. Each row belongs to one keyword.

Rank check resource

status can be running, completed, or failed. Async rank-check requests create a running row first. Workers or inline execution later update that row to completed, or persist a failed row with an error message when the provider run fails. attempts records provider fallback attempts ({ "provider", "message" }) before the final status; it is null when no fallback attempts were recorded.

List rank checks for a keyword

Query parameters: Response:

Get one rank check

Returns one rank-check resource or 404. For checks started asynchronously, poll this endpoint until status changes from running to completed or failed.

Export project rank history

The project export supports the same history filters as the app: JSON uses the standard data and meta.next_cursor envelope. Every row includes keyword_id, keyword, checked_at, position, previous_position, and ranking_url. Send Accept: text/csv or format=csv for a streamed CSV download. CSV exports include the same fields and are not cursor-paginated.

Async polling flow

The API returns 202 with a running rank-check resource when the workflow is queued. Use the returned id with GET /api/v1/rank-checks/{check_id} to poll for the final status. If the scheduler is unavailable, the request returns 503 and no running row is kept.