SEO

List keywords

The keywords the project tracks and the Search Console queries it is close to winning, with the latest and previous Google position, research metrics, and whether the results page shows an AI Overview.

GEThttps://api.vidrys.com/v1/projects/{project_id}/seo/keywords
Plan
Track and above
Key
read
Rate cost
1 unit

Authorization

Sent as a header on every request.

Authorizationstringrequired

A Vidrys API key, sent as Bearer vidrys_sk_…. A read key is enough. See Authentication.

Path parameters

project_idstringrequired

The project's id, from List projects.

Query parameters

pageintegerdefault 1

Page number, from 1.

page_sizeintegerdefault 50

Rows per page, 1–100.

Response · 200

application/json

keywordsobject[]

Tracked keywords and Search Console opportunities, alphabetical.

+Show child attributes
idstring

Keyword id.

keywordstring

The search term.

target_urlstringnullable

The page that should rank for it; decides which result counts as the brand's.

devicestring

Which results page is checked.

Values:desktopmobile

countrystring

Two-letter country code the check is made from.

trackedboolean

Whether its position is checked on the plan's cadence. A Search Console opportunity past the plan's keyword allowance is listed but not tracked.

sourcestring

Where it came from: added by hand, found in Search Console ranking 11–20, or created for a published draft.

Values:manualgsc_opportunitycontent_pipeline

search_volumeintegernullable

Monthly searches, from keyword research — or, on a Search Console opportunity, its impressions in the latest window.

difficultynumbernullable

Ranking difficulty, 0–100, from keyword research.

cpc_usdnumbernullable

Advertisers' cost per click in US dollars, from keyword research.

positionintegernullable

Latest Google position within the top 20. Null: not in the top 20, or never checked.

previous_positionintegernullable

The position on the check before that.

ai_overviewbooleannullable

Whether the latest rank check saw an AI Overview on this keyword's results page. Null: never checked.

pageobject

Where these rows sit in the full list.

+Show child attributes
pageinteger

This page's number, from 1.

page_sizeinteger

Rows per page.

totalinteger

Rows across every page.

Errors

403 plan_feature_unavailableThe feature is on a higher plan. Bulk exports and webhooks are Custom-only.
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.