Gaps & citations

List gaps

The prompts you're losing: on which engines, to whom, in what order the answers name everyone, and whether it's getting better or worse.
GEThttps://api.vidrys.com/v1/projects/{project_id}/gaps
Plan
Grow and above
Key
read
Rate cost
2 units
MCP tool
list_gaps

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

gapsobject[]

Prompts being lost, highest impact first.

+Show child attributes
prompt_idstring

The prompt being lost.

prompt_refinteger

The prompt's short number.

prompt_textstring

The prompt.

platforms_losingstring[]

Engine ids losing it in the latest run.

platforms_winningstring[]

Engine ids winning it.

top_competitorstring

The competitor most often winning where the brand is absent. Empty string when none.

suggested_content_typestring

The kind of page likely to win it back, from the prompt's wording.

Values:comparisonpricingfaqdefinitiondocumentationintegrationhow-touse-caseproductcase-studytrust-signalsresearch

impactstring

high when 3 or more engines lose it, medium for 2, low for 1.

Values:highmediumlow

reasoning_card_idsstring[]

“Why?” cards for the losing engines. Each matches a result's reasoning_card_id.

win_rate_historyobject[]

The last 8 days with answers.

+Show child attributes
datestring

Day, as YYYY-MM-DD.

win_rateinteger

Share of that day's answers won, 0–100, rounded.

probesinteger

Answers that day, all engines.

trendstring

The latest day's win rate against the day before.

Values:newimprovingworseningflat

open_runsinteger

Consecutive recent days with at least one lost answer.

answer_orderobject[]

Who the answers name, in order of first mention. Up to 6.

+Show child attributes
namestring

Brand or competitor.

is_brandboolean

True for your brand.

answers_totalinteger

Latest-run answers for the prompt.

rival_appearancesinteger

Of those, answers naming top_competitor.

your_appearancesinteger

Of those, answers naming your brand at all.

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

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 Grow, Scale and Custom.
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.