get_keyword_rank_history
Get the stored day-by-day ranking history for one keyword on one search engine over a date range. Reads RankParse snapshots synced on a schedule; it is not a live SERP check. History is inherently single-engine, so engine is required (use get_keyword_rankings first to compare across engines). Days with no synced data are simply absent from rows rather than filled with a zero or placeholder value -- do not treat a missing date as "not ranking". Bing and Yandex are opt-in and lower-frequency than Google; their responses may report availability as provider_limited, meaning that provider did not return enough data for that day rather than the keyword ranking nowhere.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| engine | Yes | Search engine to get history for (required -- history is always single-engine) | |
| site_id | Yes | Logical RankParse website ID, from list_rank_tracking_sites | |
| end_date | Yes | End of the range, inclusive, as YYYY-MM-DD | |
| dimension | No | Breakdown of the daily rows. Default "total" is one row per day; "device" is one row per day per device (desktop/mobile/tablet) with a device field on each row. Device rows exist only where the provider synced them (always for Google; Yandex only when its device breakdown is enabled), so an empty device history for a keyword with total history means "not synced per-device", not "no traffic". | |
| keyword_id | Yes | Tracked keyword ID, from list_tracked_keywords | |
| start_date | Yes | Start of the range, inclusive, as YYYY-MM-DD |