list_rank_history
Read dated DataForSEO thousand-scale rank evidence and candidate-only alerts. Unknown is not loss or zero.
Development preview. This command is absent from the verified deployed bundle. Use a matching development environment.
This read does not start a verification job.
Example request
Connect through MCP, CLI, or HTTP. Replace example identifiers with records from your workspace.Returned result
Illustrative data validated against the documented response schema. IDs and dates are examples, not a live account capture. MCP returns this data instructuredContent and in a text content block; generic HTTP and CLI return the JSON result directly.
Response formats
format selects the row shape. detailed is the example above: every field. concise keeps, per row: overview_run_id, slot_at, rank, observed_at, retrieved_at, freshness, outcome, execution, cost; every top-level field (cursors, counts, coverage, metadata) is kept in both. The observation state an unknown-versus-absent decision depends on is never dropped. MCP and code mode default to concise; the CLI and HTTP default to detailed; the response names the default it applied in defaults_applied.
Input fields
Omit optional fields when you do not want to supply them. Null is accepted only where listed. Unknown input properties are rejected.Validation and omitted values
scheduleId is required. Retained synthetic attempts sort by slot time; limit ranges from one to 100. A preceding comparison record supports alert candidates without adding an extra returned item. Use next_cursor for the same schedule under current authority. Cursors bind to the schedule collection and current grants. INVALID_CURSOR requires restarting that same listing without its cursor; config-only pause preserves the collection binding. Rank uses the DataForSEO 0-1000 scale. Zero is a measured value; null denotes unknown evidence. observed_at remains null, while retrieved_at records retrieval time when known. The saved threshold determines freshness. Execution and cost fields retain attempt and reconciliation facts. Missing evidence, stale evidence and unresolved cost do not establish a rank decrease or confirmed loss. alert_candidates carry delivery_state candidate_only. This read neither persists nor sends an alert and exposes no internal quotes, query hashes, leases or credential material. History pages can change between calls. They do not provide a frozen full export, restore guarantee or live supplier acceptance.Defaults when omitted
Output fields
Fields inside optional or nullable parents apply only when that parent exists. Common schema conventions explain evidence states, empty lists and extensions.schedule_id(string, required): Identifier returned by the related operation. pattern: ”^[a-zA-Z0-9_-]{1,128}$”schedule_revision(integer, required): maximum: 9007199254740991; exclusiveMinimum: 0project_id(string, required): Project that owns this record. pattern: ”^[a-zA-Z0-9_-]{1,128}$”target(string, required): minLength: 1; maxLength: 253include_subdomains(boolean, required).provider(string, required): must equal “dataforseo”data_mode(string, required): must equal “synthetic”metric(string, required): must equal “rank”scale(object, required): additional fields rejecteditems(array, required): Records in this bounded page. maxItems: 100alert_candidates(array, required): maxItems: 100has_more(boolean, required): True when another page is available.next_cursor(string / null, required): Opaque continuation for the same listing; null means no further page.
All fields and nested objects
All fields and nested objects