SEO

List SEO fixes

Vidrys's proposed fixes to page titles, meta descriptions and canonical tags: what each page has, what it would get, and where each fix stands. Approving is done on the dashboard.

GEThttps://api.vidrys.com/v1/projects/{project_id}/seo/fixes
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

modestring

Whether this deployment writes fixes: off, dry runs only, or on.

Values:offshadowon

deploys_remaininginteger

Fixes the plan still allows this month.

fixesobject[]

Every fix of the project, newest first.

+Show child attributes
idstring

Fix id.

urlstring

The page.

fix_typestring

The field it changes.

Values:titlemeta_descriptioncanonical

labelstring

The field's name on the screen.

statusstring

Where the fix stands. verified means the live page carries the value; unverified means it was written but the page does not show it.

Values:proposedapproveddeployingdeployedverifiedunverifiedfailedrolling_backrolled_backdismissed

current_valuestringnullable

What the page had when the fix was proposed. Null: nothing.

proposed_valuestringnullable

What the fix sets.

rationalestringnullable

Where the value came from.

providerstringnullable

The CMS it is written through, once known.

dry_runboolean

Approving now would run, or ran, as a dry run.

writtenbooleannullable

Whether Vidrys itself wrote the value. False when it was found already in place.

deployed_atstringnullable

When it was written, ISO 8601.

verified_atstringnullable

When the live page was found carrying it.

errorstringnullable

Why it failed, when it did.

created_atstring

ISO 8601.

updated_atstring

ISO 8601.

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.