SEO

get_seo_rankings

Each tracked keyword's Google position on every day it was checked over the range.

readReads only. Annotated read-only, so a client can call it without asking.
Plan
Track and above
Rate cost
2 units

Try asking

“Chart our position for 'gst invoicing software' over the last three months.”

Arguments

Passed as the tool call's arguments.

project_idstringrequired

The project to read, from list_projects.

rangeenum<string>default 90d

How far back to measure.

Values:7d30d90d

Result

The same object as Get rankings, returned as structured output.

rangestring

The range read.

Values:7d30d90d

keywordsobject[]

One series per keyword with a check in the range.

+Show child attributes
keyword_idstring

Keyword id.

keywordstring

The search term.

pointsobject[]

One per day the position was checked, oldest first.

+Show child attributes
datestring

Day, as YYYY-MM-DD.

positionintegernullable

Position within the top 20; null when not in it.

ai_overviewbooleannullable

Whether the latest check saw an AI Overview. Null: never checked.

Errors

404 not_foundThe project or item doesn't exist in this workspace. A project from another workspace also returns 404, never 403.
422 invalid_requestA parameter or body field is missing or has the wrong type or value. The message names the field. Also returned when a write would pass the plan's prompt limit.
401 unauthorizedNo key was sent, or the key is unknown, revoked or expired, or the member who created it has left the workspace or been deactivated.
402 plan_requiredThe workspace's plan doesn't include API access. It's included on every plan from Track up — Solo is the one without it.
403 workspace_not_approvedThe workspace is still waiting for approval, or wasn't approved.
429 rate_limitedToo many requests this minute. Wait for the number of seconds in the `Retry-After` header, then retry.

Every code, and what to retry, is in Errors.

Failures arrive as a tool error — isError: true with code: message as text. See Using the tools.