Skip to content

SeoApi

Defined in: packages/sdk/src/resources/SeoApi.ts:21

The SEO/GEO surface — tier management, on-demand scans, GEO probes, AI helpers (alt-text, meta-description, blog draft, local page), competitor + citation editors, manual cron trigger, and Google Search Console OAuth.

  • Resource

new SeoApi(opts): SeoApi

Defined in: packages/sdk/src/request.ts:93

VantageClientOptions

SeoApi

Resource.constructor

altText(websiteId, input): Promise<{ limit: number; suggestion: string; used: number; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:61

string

string

string

Promise<{ limit: number; suggestion: string; used: number; }>


blogDraft(websiteId, input): Promise<{ limit: number; markdown: string; used: number; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:77

string

string

number

string

Promise<{ limit: number; markdown: string; used: number; }>


contentAudit(websiteId, input): Promise<{ cached: boolean; cachedAt?: string; findings: SeoContentAuditFinding[]; limit: number; overallScore: number; used: number; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:95

Audit the website’s CMS content document and return a structured 8-dimension rubric report. Growth+ only. Content-hashed cache: a repeat call with the same siteContent returns the cached result with cached: true and does NOT consume a quota slot.

string

Record<string, unknown>

Promise<{ cached: boolean; cachedAt?: string; findings: SeoContentAuditFinding[]; limit: number; overallScore: number; used: number; }>


disable(websiteId): Promise<{ website: Website; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:44

string

Promise<{ website: Website; }>


geoProbe(websiteId, input): Promise<{ limit: number; primaryHost: string | null; run: GeoProbeRun; used: number; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:50

string

string

string

Promise<{ limit: number; primaryHost: string | null; run: GeoProbeRun; used: number; }>


get(websiteId): Promise<SeoStatusResponse>

Defined in: packages/sdk/src/resources/SeoApi.ts:31

Read current tier + capability snapshot + every cached datum the SEO panel renders. Return shape is the canonical SeoStatusResponse from @vantageconnections/shared — bundles enabled, tier, capabilities, lastScan, geoProbes, citations, competitorUrls, competitorSnapshots, competitorDiffs, gscMetrics, gsc (connection state), and aiUsage (running monthly quota counters).

string

Promise<SeoStatusResponse>


getCitations(websiteId): Promise<{ citations: CitationEntry[]; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:127

Read just the citations checklist (subset of get() if that’s all you need).

string

Promise<{ citations: CitationEntry[]; }>


gscConnect(websiteId): Promise<{ authUrl: string; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:149

Begin a Google Search Console OAuth flow for the website. The returned authUrl opens Google’s consent screen; once the client approves, Google redirects back to /oauth/google/callback and the token is stored. Until that round-trip completes, GSC pulls are skipped.

string

Promise<{ authUrl: string; }>


gscDisconnect(websiteId): Promise<{ disconnected: true; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:157

Drop the stored GSC token + clear cached metrics.

string

Promise<{ disconnected: true; }>


gscRefresh(websiteId): Promise<{ metrics: GscMetricsSummary; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:153

Force an immediate Search Console metrics pull.

string

Promise<{ metrics: GscMetricsSummary; }>


localPage(websiteId, input): Promise<{ limit: number; markdown: string; used: number; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:83

string

string

string

string

Promise<{ limit: number; markdown: string; used: number; }>


metaDescription(websiteId, input): Promise<{ limit: number; suggestion: string; used: number; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:67

string

string

string

string

Promise<{ limit: number; suggestion: string; used: number; }>


runCron(websiteId, opts?): Promise<{ report: unknown; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:135

Trigger the same tier-cadence work the 6-hour SEO cron does, on demand for a single site. Pass force: true to bypass cadence gating (essentials = monthly, growth = weekly, premium+ = daily).

string

boolean

Promise<{ report: unknown; }>


scan(websiteId): Promise<{ scan: SeoScanResult; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:47

string

Promise<{ scan: SeoScanResult; }>


setCitations(websiteId, citations): Promise<{ citations: CitationEntry[]; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:118

string

CitationEntry[]

Promise<{ citations: CitationEntry[]; }>


setCompetitors(websiteId, urls): Promise<{ competitorUrls: string[]; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:112

string

string[]

Promise<{ competitorUrls: string[]; }>


setTier(websiteId, tier): Promise<{ capabilities: SeoCapabilities; tier: SeoTier; website: Website; }>

Defined in: packages/sdk/src/resources/SeoApi.ts:34

string

SeoTier

Promise<{ capabilities: SeoCapabilities; tier: SeoTier; website: Website; }>