# Public API Source: https://docs.videntic.com/api/overview Public API V2 private-preview access and the discoverable reference for existing, deprecated V1 integrations. Public API V1 is deprecated but remains operational. No Sunset date has been announced, and existing V1 clients are never silently redirected. New integrations should [review the V2 migration and private-preview guide](/api/v2-migration) and request access through `api@videntic.com`. The Videntic Public API lets enterprise customers connect their AI visibility data to BI warehouses, internal dashboards, sync pipelines, or partner integrations. Public API V2 is a separately versioned private preview that is disabled by default; it is not generally available or production-ready. The content below describes the discoverable V1 reference for existing integrations. V1 remains on its released contract while deprecated. Existing V1 customers with a docs password can [open the V1 reference](/api/authentication). For a new integration, request the [V2 private preview](mailto:api@videntic.com?subject=Public%20API%20V2%20private%20preview) instead of starting on V1. ## What you can pull Every URL tracked under your workspace, with country, language, niche, and last-scrape time. Every sentence captured from an LLM response where your brand was named, with the provider and position. Prompt-library text is not exposed. Metadata for every PDF report generated in your workspace, with a signed-URL download endpoint. Domains we've detected as competitors of your tracked websites, with appearance counts, average position, and first/last-seen timestamps. ## How it works * **Bulk snapshot** — one call returns websites, recent mentions, recent reports, and competitors in a single envelope. Use for nightly mirrors, BI loads, or quick exports. * **Paginated list endpoints** — newest-first, cursor-based, with `updated_since` filters for incremental sync. Use for steady-state operations. * **Cross-tenant isolation** — every key is scoped to exactly one workspace. The API never returns rows from another tenant, and unknown IDs return 404 without leaking whether they exist elsewhere. * **Deprecated V1 contract** — existing endpoints remain under `/public/v1/` and are never silently redirected. Consumers should ignore unknown fields and use the canonical metric names. If you integrated before the TypeScript cutover, follow the [older-client migration guide](/api/typescript-migration). ## Who it's for The Public API is part of the **Enterprise** plan. It's the right fit for: * Multi-location and multi-region brands that want their AI visibility data in BI tools (Looker, Tableau, Snowflake, BigQuery). * Agencies and platforms reselling AI visibility insights to their own customers. * Internal dashboards that combine Videntic data with first-party traffic, conversion, or CRM signals. If you're on a non-enterprise plan, the same data is available through the dashboard, scheduled email reports, and PDF exports. ## Access and reference Tell the API team your workspace, integration shape, current V1 routes if applicable, and expected request volume. Preview routing is disabled until access is explicitly enabled. Open the deprecated V1 reference. You'll be prompted for the docs password on the way in, and the session lasts until your browser clears it. # Migrate from Public API V1 to V2 Source: https://docs.videntic.com/api/v2-migration V1 deprecation status, the separately versioned V2 private preview, contract changes, prompt-import guidance, migration steps, and rollback guidance. Public API V1 is protocol-deprecated. Its prompt-import route remains operational only as a temporary bridge until the Public API V2 prompt-import production gate passes; it does not return `410` today and will retire without a redirect only after that gate. No Sunset date has been announced for the separately governed V1 read routes. Public API V2 is a separately versioned contract under `/public/v2`. It is currently a **private preview**, is **disabled by default**, and should not be treated as generally available or production-ready. To request preview access, email [api@videntic.com](mailto:api@videntic.com?subject=Public%20API%20V2%20private%20preview). This page describes the current migration boundary so you can plan and test a move without disrupting an existing V1 integration. The complete field map, SDK examples, and warehouse recipes will be added before a broader release. ## V1 and V2 coexistence * V1 continues to serve its released routes under `/public/v1` while it is deprecated. * V2 uses independent routes, schemas, OpenAPI documentation, and versioned client defaults. Changing a V1 base URL is always your decision. * V1 requests are not redirected or translated into V2 requests, including prompt imports. * The V1 prompt-import route is an accelerated exception to the broader V1 read-retirement process. It remains operational only until the V2 prompt-import production gate passes, then returns `410 version_retired`. There is no redirect, translation, mirroring, or dual write between versions. * No `Sunset` date or retirement date has been announced for the broader V1 read surface. * The Videntic MCP integration remains on V1 pending a separate consumer audit and rollout. Do not migrate or override its base URL as part of an API V2 preview. ## Current V2 private-preview surface Four routes return website or analytics data: | Method and route | Purpose | | -------------------------------------------------------- | ------------------------------------------------------- | | `GET /public/v2/websites` | List websites available to the authenticated workspace. | | `GET /public/v2/websites/{website_id}` | Get one website. | | `GET /public/v2/websites/{website_id}/analytics` | Get the latest finalized analytics snapshot. | | `GET /public/v2/websites/{website_id}/analytics/history` | Page through immutable finalized analytics points. | Two reads return paginated source evidence: | Method and route | Purpose | | ------------------------------------------------ | ------------------------------------ | | `GET /public/v2/websites/{website_id}/mentions` | Page through brand-mention evidence. | | `GET /public/v2/websites/{website_id}/citations` | Page through citation evidence. | ## V2 prompt-import surface The implemented private-preview write surface is an append-only, one-way, asynchronous bulk prompt workflow: | Method and route | Purpose | | ----------------------------------------------------------------- | ------------------------------------------------------------------- | | `POST /public/v2/websites/{website_id}/prompts:import` | Accept an append-only prompt batch and return an operation to poll. | | `GET /public/v2/websites/{website_id}/prompt-imports/{import_id}` | Get an import's status and redacted receipt. | V2 does not expose a prompt-library read, update, or delete API, and uploading a batch does not start an analysis. Both operations now appear in the separate V2 OpenAPI document served from `GET /public/v2/openapi.json`, but the production-readiness gate has not passed. Use them only in a preview-enabled workspace. See [Bulk prompt imports](/api/v2/prompt-imports) for exact limits, classification, idempotency, polling, retry, redaction, and migration rules. ## Contract differences to plan for Do not migrate by changing only `v1` to `v2` in the base URL. Adapt and validate these boundaries explicitly: | Area | V1 | V2 private-preview contract | | ---------------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Versioning | Released contract under `/public/v1` | Independent contract under `/public/v2`; disabled unless your preview access is enabled | | Resource identifiers | Existing V1 identifiers | Opaque, typed identifiers such as `web_…`, `ana_…`, and `pim_…`; do not parse or construct them | | Success responses | V1 endpoint-specific envelopes | Data plus request metadata; tolerate additive response fields | | Errors | V1 error and status behavior remains frozen | Versioned `{ error, meta }` envelope; insufficient authenticated scope is `403` rather than V1's `401` behavior | | Pagination | V1 cursor behavior | Opaque cursors with stable ordering and a fixed scan boundary where supplied; never edit or reuse a cursor with different filters | | Analytics | V1 metric shapes and formulas | Finalized, immutable snapshots with explicit contract, projection, metric-definition, precision, and taxonomy versions; missing measurements remain null rather than becoming zero | | Evidence | V1 mention data | Separate mention and citation evidence feeds, scoped to a website and analysis | | Prompt import | Website scope in the body, `dry_run`, and a synchronous V1 response | Website scope in the path, `validate_only`, an `Idempotency-Key`, asynchronous `202` acceptance, and a redacted receipt polled by import ID | | Prompt write semantics | V1 accepts `mode`, `partial`, and caller-controlled `source` fields | Append-only and atomic; removes `mode`, `partial`, and caller-controlled source; automatically classifies missing fields unless `classification.mode=provided_only` | | Prompt results | V1 results can echo prompt text | Receipt items correlate by zero-based `index` and optional `client_id`; prompt text is not returned | V1 retains its existing request and response contract. It does not gain V2 classification, receipt, idempotency, or atomic-operation semantics. ## Behaviors to design your client around These are not bugs and they will not change; they are contract properties your integration has to account for. ### A website appears before it has any analytics `GET /public/v2/websites` and `GET /public/v2/websites/{website_id}` return a website as soon as it is added to your workspace, before its first analysis has run. Such a website has a `null` `last_analysis_at`, and its `GET …/analytics` returns `404 not_found` until the first snapshot is published. This is intentional: the website directory reflects what you are tracking, not what has already been measured. A warehouse load should expect rows with null metrics and treat them as "tracked, not yet measured," not as an error. ### Incremental sync is at-least-once Every `updated_since` scan is inclusive at **both** ends of its window. A row whose timestamp falls exactly on a page boundary is returned by the scan that ends there **and** by the next scan that begins there, so the same row can arrive twice across two syncs. Remove duplicates by the resource's opaque `id` when you load — do not assume a row is delivered exactly once. This is the standard trade for never dropping a row: we would rather hand you a duplicate you can discard than miss one you cannot recover. For directory and analytics/evidence scans, advance a durable watermark between syncs by carrying the `scan_upper_bound` from a page's metadata and pass it back as the next sync's `updated_since`. Because the bound is a committed publication frontier, resuming from it never skips a row that committed after your scan began. Each resource family has its own frontier; do not reuse a website-directory frontier for an analytics feed. Revoked or deleted websites disappear immediately, including from in-flight scans. The directory does not emit deletion events: periodically reconcile a full listing if you need to detect removals. Reports support cursor pagination and `updated_since`, but do not expose an immutable publication frontier. ### Technical Audit reads refer to a specific Audit Run Use `audit_id` from the overview or Audit Run list when fetching scope, Findings and audited pages. Scope is the configuration captured for that run, not today's settings. Older runs without a captured scope return `404 not_found` for scope; start a new Technical Audit to capture it. Page lists contain summaries. Evidence, performance samples and inbound-link details are returned by the page-detail endpoint, not represented as empty collections in the list. Overview summaries are published with the Audit Run; an unpublished summary returns `503 temporarily_unavailable`. ### Rate limits are per workspace V2 permits 100 requests per minute across your workspace's keys and endpoints. Exhaustion returns `429 rate_limited`. A rate-limit storage outage returns `503 temporarily_unavailable`, not an indication that you used your quota. Honor `Retry-After` in either case. ### A snapshot may be published before it is complete An analytics snapshot can be published while some post-processing is still outstanding. When that is the case the response carries `is_partial_data: true` alongside a `postprocess_status` describing what is still pending. A partial snapshot is a real, usable measurement — but if you gate business logic on completeness, branch on `is_partial_data` rather than assuming every published snapshot is final. ### A dry run does not cost your quota A prompt import submitted with `validate_only: true` does not count against your per-minute, per-hour, or per-day import allowance. You can validate a batch as often as you need before committing it. A pending dry run does still occupy a worker slot briefly, so it counts toward the concurrent-import limit while it runs — but it never consumes the volume allowance a real write would. ## Practical migration plan 1. **Request private-preview access.** Email [api@videntic.com](mailto:api@videntic.com?subject=Public%20API%20V2%20private%20preview) with your workspace, current V1 routes, expected volume, and whether you use prompt imports. V2 remains unavailable until access is explicitly enabled. 2. **Inventory your V1 dependency.** Record every route, selected field, pagination assumption, metric calculation, retry rule, and downstream table. Treat MCP as a separate V1 consumer and leave it unchanged. 3. **Build a version-specific adapter.** Keep independent V1 and V2 base URLs, response parsers, cursor storage, and error handling. Store opaque V2 IDs as strings and preserve the version metadata returned with analytics. 4. **Run bounded dual reads.** For preview-approved read routes, fetch V1 and V2 independently into separate staging tables. Compare resource coverage, nullability, finalized-analysis timestamps, metric definitions, evidence counts, and pagination completion. Do not overwrite your V1 analytical baseline with V2 values during comparison. 5. **Approve a separate V2 baseline before cutover.** Do not pass this gate until your integration owner has recorded and explained every expected metric delta found during dual reads; preserved the returned V2 contract, projection, metric-definition, precision, and taxonomy version metadata; and approved a distinct V2 checkpoint and analytical baseline. Never splice V2 values into the V1 historical series. 6. **Test the write cutover in private preview.** Follow the [bulk prompt-import guide](/api/v2/prompt-imports) to build the dedicated write-key, two-idempotency-key validation, explicit bulk partitioning, asynchronous polling, and redacted-receipt paths behind a disabled client flag. You may exercise them in a preview-enabled workspace, but do not enable production use until Videntic announces that the production-readiness gate passed. The V1 prompt-import route remains operational today; after the gate it retires and is not a write fallback. 7. **Cut over in your client.** Move one controlled consumer at a time by changing its configured API version. Monitor your own results and retain the last known-good V1 configuration until the V2 preview is signed off for your integration. ## Roll back safely For read integrations, V1 remains operational and is never redirected, so rollback is a client configuration change rather than an API redirect. Prompt imports have a stricter boundary: after the V2 production gate passes, the V1 prompt-import route is retired and is not a rollback target. 1. Restore the affected read consumer's last known-good `/public/v1` base URL, V1-specific parser, credentials, and cursor state. Do not feed a V2 cursor or opaque ID into a V1 request. 2. Resume reads from the last committed V1 checkpoint. For an accepted V2 prompt import, continue polling its receipt to a terminal state; do not retry the batch through V1 or assume that changing the read version cancels it. 3. Disable new V2 prompt submissions in your client if the write path is unhealthy, retain the original idempotency key for transport-uncertain retries, and contact support before creating a replacement operation. 4. Send the request IDs, import IDs, timestamps, and affected routes to [api@videntic.com](mailto:api@videntic.com?subject=Public%20API%20V2%20preview%20support). Do not include API keys or prompt text. ## Existing V1 reference The deprecated V1 reference remains discoverable for existing integrations: Review the existing Bearer-key contract and V1-specific authentication behavior. Review the frozen V1 request, response, pagination, and ordering conventions. # Bulk prompt imports Source: https://docs.videntic.com/api/v2/prompt-imports Submit and monitor atomic, append-only prompt batches through the Public API V2 private preview. Public API V2 is a private preview and is disabled by default. The prompt import contract is implemented, but the production-readiness gate has not passed. Use it only in a preview-enabled workspace and do not treat it as a generally available production dependency yet. Bulk prompt import is an occasional, one-way write workflow. It appends new prompts to one website and gives you a redacted operation receipt to poll. It is **not** a prompt-library read, CRUD, replacement, reconciliation, or synchronization API, and an upload never starts an analysis. The V2 prompt surface contains exactly two operations: | Method and route | Purpose | | ----------------------------------------------------------------- | ----------------------------------- | | `POST /public/v2/websites/{website_id}/prompts:import` | Accept one append-only batch. | | `GET /public/v2/websites/{website_id}/prompt-imports/{import_id}` | Read that batch's redacted receipt. | The generated [V2 OpenAPI document](https://api.videntic.com/public/v2/openapi.json) is the authoritative machine-readable contract. ## Access and authorization Both operations require a V2-eligible, owner-issued API key with the `prompts_write` scope. A workspace owner must adopt or rotate an older write key into a V2 integration lineage before it can call these routes. A read key does not gain prompt-library access, and `prompts_write` does not add a prompt-list operation. ```http theme={null} Authorization: Bearer vid_... Content-Type: application/json Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000 ``` Missing or invalid authentication returns `401`. An authenticated key that is not V2-eligible or lacks `prompts_write` returns `403`. ## Submit a batch Each request must be JSON and must stay within both limits: * From 1 through 1,000 items. * At most 5 MiB for the encoded request body. Send an exact `Content-Type: application/json` media type, optionally with parameters such as `charset=utf-8`. Invalid JSON returns `400 invalid_request`, an encoded body over 5 MiB returns `413 payload_too_large`, and a different media type returns `415 unsupported_media_type`. These failures occur before an operation is created. Only `prompt_text` is required on an item. It is trimmed and must contain from 5 through 2,000 Unicode characters. Unknown fields are rejected. The generated OpenAPI request requires all four top-level fields: `items`, `defaults`, `classification`, and `validate_only`. Send empty `defaults` as `{}` when you do not need them, and send the selected classification mode and validation flag explicitly. ```bash cURL theme={null} curl --request POST \ "https://api.videntic.com/public/v2/websites/$WEBSITE_ID/prompts:import" \ --header "Authorization: Bearer $VIDENTIC_KEY" \ --header "Content-Type: application/json" \ --header "Idempotency-Key: $IMPORT_KEY" \ --data '{ "items": [ { "client_id": "catalog-001", "prompt_text": "Which accounting platform is best for a startup?" }, { "client_id": "catalog-002", "prompt_text": "How does Acme compare with other accounting tools?", "category": "Accounting software" } ], "defaults": { "language": "en", "tags": ["Discovery"], "search_intent": "informational" }, "classification": { "mode": "auto" }, "validate_only": false }' ``` `client_id` is an optional caller-owned correlation value. It must be unique inside the request and match `[A-Za-z0-9._-]{1,128}`. Receipt items preserve request order and return the zero-based `index` plus `client_id` when supplied. They never return prompt text. ### Optional fields and defaults An item can also supply `tags`, `language`, `search_intent`, `category`, `topic`, and `seed_keyword`. `defaults` can supply only `tags`, `language`, and `search_intent`. | Field | Contract | | --------------- | --------------------------------------------------------------------------------------------------------------------- | | `tags` | Up to 20 normalized-unique values, each at most 80 characters. Item tags replace rather than merge with default tags. | | `language` | Lowercase two-letter ISO 639-1 code, such as `en` or `sv`. | | `search_intent` | `informational`, `commercial`, or `transactional`. | | `category` | String up to 100 characters, or explicit `null`. | | `topic` | String up to 120 characters, or explicit `null`. | | `seed_keyword` | String up to 255 characters, or explicit `null`. | ## Preserve classification quality `classification.mode` controls how missing metadata is handled. ### `auto` mode `auto` is the default classification policy and derives only fields that are genuinely missing. Send `{ "classification": { "mode": "auto" } }` explicitly to match the generated OpenAPI contract. The precedence is: 1. An item value, including an explicit `null` on a nullable field. 2. A request default. 3. A value derived by `prompt-classifier-v1`. The classifier never overwrites caller-provided or defaulted values. It derives missing language, search intent, journey tags, category, topic, and seed keyword. Derived search intent uses the three-value enum above. Derived tags use the standard journey taxonomy: `Discovery`, `Comparison`, `Evaluation`, `Validation`, `Objections`, `Alternatives`, and `Implementation`. Caller-provided custom tags are allowed, but a provided tag array in `auto` mode must be nonempty and include at least one standard journey tag. Category, topic, and seed keyword remain subject labels rather than aliases for search intent. Every created or would-create item can include field-level classification provenance. Each field reports a source of `provided`, `defaulted`, `derived`, `not_applicable`, or `low_confidence`; only `derived` includes a confidence number. The public classifier version is also returned. Vendor and model names are not part of the public contract. Auto mode fails the whole operation if required language, search intent, or a journey tag cannot be classified confidently. It never silently writes a partially classified fallback. Optional category, topic, or seed keyword can instead be recorded as `not_applicable` or `low_confidence`. ### `provided_only` mode Use `provided_only` when your integration owns its taxonomy or prompt content must not be sent to the classification provider: ```json theme={null} { "items": [ { "client_id": "catalog-001", "prompt_text": "Which accounting platform is best for a startup?", "tags": [], "language": "en", "search_intent": "commercial", "category": "Accounting software" } ], "defaults": {}, "classification": { "mode": "provided_only" }, "validate_only": false } ``` This mode never invokes the classifier. Every item needs an effective `language`, either on the item or in `defaults`. An explicit empty `tags` array is allowed. Other omitted or nullable classification fields may remain empty. `provided_only` opts out of automatic classification completeness. To retain the same downstream filtering coverage, supply language, at least one standard journey tag, search intent, category, topic, and seed keyword where they apply. Omitted fields remain absent rather than being inferred, so related classifications and filters can be unavailable. Validate your own taxonomy before uploading. ## Validate, then write Set `validate_only: true` to run normalization, duplicate detection, classification, and prompt-limit projection without creating prompts. A successful validation receipt uses `would_create`, `active_count`, `projected_active_count`, and `prompt_limit`. Validation is a separate asynchronous operation. It does not reserve prompt capacity and cannot be promoted into a write, so state may change before the real upload. Use two different idempotency keys: 1. Submit `validate_only: true` with a validation key and poll it to a terminal receipt. 2. If validation succeeds, submit the same items with `validate_only: false` and a new write key. 3. Poll the write receipt independently. Reusing the validation key for the write returns `409 idempotency_conflict` because `validate_only` is part of the request fingerprint. ## Idempotency and retry rules Every POST requires an `Idempotency-Key` containing from 16 through 255 visible ASCII characters. Generate a random UUID for each new operation and persist it with the exact request body before sending. | Submission | HTTP result | Behavior | | ------------------------------------------------------------------------------------------------ | ----------: | --------------------------------------------------------------------------------------------------------------- | | New request | `202` | Creates one durable operation and returns its receipt and `Location`, even if processing finishes very quickly. | | Same key, same request after schema defaults and trimming, operation still pending or processing | `202` | Returns the existing operation and same `Location`; it does not execute again. | | Same key, same request after schema defaults and trimming, terminal operation | `200` | Returns the existing terminal receipt and same `Location`; it does not execute again. | | Same key, different website, body, item order, or `validate_only` value | `409` | Returns `idempotency_conflict`; no second operation is created. | Follow these retry rules: * If the POST response is lost or transport status is uncertain, resend the exact request with the **same** idempotency key. * JSON object-key order does not affect the fingerprint, but array order does. Preserve item and tag order when retrying rather than reconstructing a batch. * For a pre-acceptance `429`, wait for `Retry-After`, then retry the exact request with the same key. * For a POST `500` or `503`, the acceptance result may be uncertain. Retry the exact request with the same key using bounded exponential backoff and jitter; idempotency resolves it to at most one operation. * Replaying a terminal receipt never reruns it. If its error says `retryable: true` and `retry_strategy: "new_idempotency_key"`, start a new operation with a new key. * If `retryable` is `false`, do not automate a retry. Correct the request or resolve the reported capacity/classification issue first. ## Poll the receipt The POST response includes a relative `Location` such as: ```http theme={null} HTTP/1.1 202 Accepted Location: /public/v2/websites/web_.../prompt-imports/pim_... Cache-Control: private, no-store ``` Every receipt uses the common V2 success envelope. Every representation contains `id`, `object`, `website_id`, `status`, `validate_only`, `created_at`, and `expires_at`: ```json theme={null} { "data": { "id": "pim_example", "object": "prompt_import", "website_id": "web_example", "status": "pending", "validate_only": false, "created_at": "2026-07-17T10:00:00Z", "expires_at": "2026-08-16T10:00:00Z" }, "meta": { "request_id": "req_example" } } ``` GET that location until `data.status` is `succeeded` or `failed`: ```bash cURL theme={null} curl "https://api.videntic.com$LOCATION" \ --header "Authorization: Bearer $VIDENTIC_KEY" ``` Receipt GET always returns `200` while the receipt exists. A `pending` or `processing` receipt includes `Retry-After: 2`; wait at least that many seconds before polling again. Terminal receipts omit `Retry-After`. For a polling GET `429`, preserve the same URL and wait for `Retry-After`. For GET `500` or `503`, retry the same URL with bounded exponential backoff and jitter. Polling never creates an operation and does not use an idempotency key. Stop when the receipt is terminal or its documented `expires_at` has passed. | Status | Additional fields | | ------------ | --------------------------------------------------------------------------------- | | `pending` | No phase or result fields. | | `processing` | `phase` (`validating`, `classifying`, or `committing`) and `started_at`. | | `succeeded` | `summary`, ordered `items`, and `completed_at`. | | `failed` | `error`, ordered diagnostic `items`, optional safe `summary`, and `completed_at`. | Terminal item shapes are closed and safe to decode by `status`: ```json theme={null} [ { "index": 0, "client_id": "catalog-001", "status": "created" }, { "index": 1, "client_id": "catalog-002", "status": "skipped", "code": "skipped_active_duplicate" } ] ``` A successful validation uses `would_create` instead of `created`. A failed receipt uses `failed` with `classification_failed` only on classification failures, `skipped` for already-detected duplicates, and `not_processed` for other items. Branch on the closed `status` and `code` fields rather than a message string. `202` means the operation was durably accepted; it does not mean prompts were created. Prompts commit only when the terminal receipt is `succeeded` and `validate_only` is `false`. ## Atomic batches, duplicates, and capacity Each request is one atomic boundary. A successful write creates every eligible prompt that is not a duplicate. A classification, prompt-limit, or commit failure creates none of the submitted prompts; failed item results are diagnostic and do not mean a partial write occurred. The API does not silently chunk a request. If your upload exceeds 1,000 items or 5 MiB, partition it deliberately. Treat each partition as an independent atomic operation with its own idempotency key, preserve stable `client_id` values, and record which operations belong to your source upload. Atomicity does not span partitions. Prompt deduplication normalizes Unicode, case, and whitespace while preserving punctuation. The first normalized occurrence in a request wins. Existing duplicates are skipped rather than updated, reactivated, or reclassified: | Item code | Meaning | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | `skipped_request_duplicate` | A later normalized duplicate in this request. | | `skipped_active_duplicate` | The canonical prompt already exists and is active. | | `skipped_inactive_duplicate` | The canonical prompt exists but is inactive. Ask a workspace owner to reactivate it in the prompt-management surface if needed. | Duplicates are safe skips. The summary's three duplicate breakdown counts add up to `skipped_duplicates`. The website's `prompt_limit` counts active prompts. A validation reports the current and projected active counts. If a write would exceed the limit, the operation fails with `prompt_limit_exceeded`, every prompt that is not a duplicate remains `not_processed`, and `created` is zero. Remove or deactivate prompts in the management surface, reduce the batch, then validate again with a new key. ## Terminal failure strategies | Operation error | Retryable | What to do | | ------------------------------ | --------: | ----------------------------------------------------------------------------------------------------------------------- | | `prompt_limit_exceeded` | No | Reduce active capacity pressure, then start a new validation/write operation. | | `classification_failed` | No | Supply or correct the failed classification fields, or deliberately choose `provided_only`, then start a new operation. | | `classification_unavailable` | Yes | Retry the complete atomic batch with a new idempotency key. | | `commit_conflict` | Yes | Retry the complete atomic batch with a new idempotency key. | | `processing_deadline_exceeded` | Yes | Retry the complete atomic batch with a new idempotency key. | | `internal_processing_error` | Yes | Retry with a new idempotency key only when the receipt marks it retryable. | A deterministic `classification_failed` receipt identifies failed item indexes and safe `client_id` values but does not echo content. A transient classifier dependency is retried internally before it becomes `classification_unavailable`. Never split and retry only the failed items from an atomic operation unless you intentionally want a different upload. ## Receipt retention, redaction, and key rotation Receipts and their idempotency state expire together 30 days after acceptance. After `expires_at`, GET returns tenant-safe `404 not_found` and the old idempotency key may be reused. Normalized prompt deduplication still protects existing prompts. Receipts contain counts, item indexes, optional `client_id`, closed status/error codes, timestamps, and field-level classification provenance. They do not contain prompt text, prompt IDs, tags, languages, intent/category/topic values, seed keywords, or arbitrary provider details. Submitted content is held only in encrypted short-lived staging, removed after terminal processing, and subject to a 24-hour hard TTL. Receipt lookup is bound to the workspace, website, and integration lineage. If an owner rotates a key while preserving its lineage, the successor key can replay the original POST or GET the original receipt during the 30-day window. An independently issued integration cannot read that receipt and receives the same `404` as a missing resource. A workspace owner can recover a receipt through the authenticated management surface. For an operational rotation, a workspace owner opens [Settings → Public API Keys](https://app.videntic.com/settings?section=api), selects **Rotate key** on the existing integration, and replaces the secret in the client's secret store. Rotation keeps that integration's lineage; creating an unrelated key does not. If the client no longer has a lineage key, the owner can use **Recover a prompt import receipt** on the same settings page with the `web_…` and `pim_…` IDs. ## Migrate the V1 prompt upload Public API V1 is protocol-deprecated, but its prompt-import route is still operational today. It does **not** return `410` yet. It will retire without a redirect only after the V2 production-readiness gate passes and the public documentation is updated. Do not migrate by changing only `v1` to `v2`: | V1 prompt import | V2 prompt import | | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | | `POST /public/v1/prompts/import` | `POST /public/v2/websites/{website_id}/prompts:import` | | `website_id` in the body | Opaque website ID in the route path | | `dry_run` | `validate_only` asynchronous operation | | `mode` field; V1 accepts `append` and rejects `replace` for API keys | Removed; V2 is always append-only | | `partial` | Removed; each V2 request is atomic | | Caller-controlled `source` | Removed; the server records `public_api_v2` | | Synchronous `200` report | `202` acceptance plus receipt polling; terminal replay is `200` | | Results can echo prompt text | Redacted, ordered results correlated by `index` or `client_id` | | Caller supplies classification fields | Missing fields are derived in `auto`, or derivation is disabled with `provided_only` | ### Upgrade checklist * Request V2 private-preview access for the target workspace. * Have a workspace owner issue or adopt a V2-eligible `prompts_write` key and record its integration lineage in your key-rotation procedure. * Move website scope from the body to the path and remove `mode`, `partial`, and caller-controlled `source`. * Add stable `client_id` values so redacted receipt items can be reconciled to your source file without prompt text. * Choose `auto` or `provided_only` explicitly and verify taxonomy and provenance handling. * Enforce the 1,000-item and 5 MiB limits client-side. Make any larger partitioning explicit; never assume server-side chunking. * Persist request body, item order, idempotency key, import ID, and receipt expiry as one client operation record. * Implement separate validation and write idempotency keys, `Location` handling, `Retry-After` polling, terminal status handling, and the retry matrix above. * Treat a successful validation as a projection, not a reservation. Check the terminal receipt for the write before considering the upload complete. * Test key rotation and same-lineage receipt recovery before cutover. * Keep the V1 and V2 adapters separate. There is no redirect, dual write, or automatic fallback between versions. * Keep production use disabled until Videntic announces that the prompt-import production-readiness gate has passed. ## Private-preview status This endpoint has not passed its production-readiness gate and has no general availability or production SLA commitment. Videntic is still validating its availability, operational monitoring, regression detection, and support process before a broader release. Preview access and support expectations are agreed directly with each participating workspace. Until Videntic announces that the gate has passed, keep production use disabled, maintain your own client-side operation log, and alert on terminal failures or operations approaching the 30-minute processing deadline. To request access or report a preview issue, contact [api@videntic.com](mailto:api@videntic.com?subject=Public%20API%20V2%20prompt%20import%20preview) with request IDs, import IDs, timestamps, and affected routes. Never include API keys or prompt text. ## Related Review the broader version boundary, read migration, and rollback plan. Inspect the generated request and receipt schemas. # Managing your subscription Source: https://docs.videntic.com/billing/managing-your-subscription Upgrade, downgrade, cancel, or change payment details. All subscription management happens in **Settings → Billing** inside the app. This page explains what each action does and when to use it. Videntic uses Stripe as the billing provider. Payment method changes, invoices, and tax settings are handled through the Stripe Customer Portal, linked from Settings. ## Upgrade Upgrades take effect immediately. You get access to the new plan's features within a minute, and Stripe prorates the difference against your next invoice. Click your avatar → Settings → Billing. Plans are laid out side by side. The CTA will say **Upgrade** for higher-tier options. Stripe charges the prorated amount. Your plan updates instantly. If an upgrade unlocks a feature you were waiting on (e.g. Sira on Pro, or CMS publishing), try it right away — no reload needed. ## Downgrade Downgrades are scheduled for the end of your current billing cycle. You keep your current plan's features until then. Same place as upgrades. The CTA will say **Downgrade to \[plan]**. You'll see the date the downgrade takes effect. If you exceed the new plan's limits (e.g. you have 7 competitors and downgrade to Basic which caps at 3), the extras aren't deleted — they're *paused*. The oldest-added entries remain active up to the new cap. Upgrade again and they reactivate. ## Cancel Cancellation stops your subscription from renewing. You keep access until the end of the paid period. Same place. Near the bottom of the page. We'll ask for a reason (optional — it helps us improve). After the paid period ends, your account moves to a read-only state: you can still log in and view past reports, but new analyses won't run and features gated to paid plans are unavailable. Upgrade at any time to resume. ## Failed payments and grace period If a payment fails, Videntic doesn't immediately lock you out. Instead: 1. Stripe retries the charge on its standard schedule (typically 3 attempts over 2 weeks). 2. Videntic sends a notification email at each attempt so you can update your payment method. 3. If every retry fails, your account moves to a short grace period (about 7 days) where you still have full access. 4. After the grace period, paid features are restricted until a successful charge occurs. You can update your payment method any time via the **Stripe Customer Portal** link in Settings → Billing. ## Changing the billing contact The billing contact (the email address that receives invoices and payment notifications) is separate from report recipients. Change it in **Settings → Billing → Billing email**. ## Invoices and receipts All invoices are available in the Stripe Customer Portal. From Settings → Billing, click **Manage billing in Stripe** to open the portal, where you can: * Download every historical invoice as a PDF. * Update your billing address and tax ID (VAT, etc.). * Change your payment method. * Pay outstanding invoices manually. ## Data retention after cancellation Your data stays on your account indefinitely after cancellation — analyses, audits, drafts, brand documents, competitor history, everything. You can resubscribe and pick up where you left off. If you want to delete your account and all its data, email [support@videntic.com](mailto:support@videntic.com). Deletion is a permanent action we do manually to avoid accidents. ## Custom billing (VAT, POs, annual contracts) Enterprise plans and some Max customers can be invoiced annually, pay by wire transfer, and have custom VAT or PO workflows. If you need any of those, email [billing@videntic.com](mailto:billing@videntic.com). ## Related Side-by-side comparison. Common billing and account questions. For anything not covered here. # Plans Source: https://docs.videntic.com/billing/plans What each Videntic plan includes, and how to pick the right one. Videntic has four plans: **Basic**, **Pro**, **Max**, and **Enterprise**. They differ on three axes: how many **prompts** you can keep in your prompt library, how many **competitors** you can actively track, and how much **automation** (analysis frequency, Sira AI, CMS publishing) is included. Every new account starts with a **7-day free trial** of a paid plan. Pick Basic, Pro, or Max at signup and you get full access to that plan for 7 days. You won't be charged until the trial ends, and you can switch plans or cancel any time before then. Your data carries over when you subscribe. ## Plan comparison | | **Basic** | **Pro** | **Max** | **Enterprise** | | --------------------------------- | ------------------------ | ------------ | ------------ | -------------- | | **Price (excl. VAT)** | 1,990 SEK/mo | 4,490 SEK/mo | 7,990 SEK/mo | Custom | | **Websites tracked** | Up to 10 | Up to 10 | Up to 10 | Custom | | **Prompts in your library** | 25 | 100 | 200 | Custom | | **Competitors tracked** | 3 | 10 | 10 | Custom | | **Analysis frequency** | Twice weekly (Mon & Thu) | Daily | Daily | Daily | | **Technical audit pages** | Up to 250 | Up to 1,000 | Up to 5,000 | Up to 10,000 | | **Report recipients** | 1 | Unlimited | Unlimited | Unlimited | | **GEO‑16 audit** | ✓ | ✓ | ✓ | ✓ | | **Content gaps** | ✓ | ✓ | ✓ | ✓ | | **Sira AI — read** | ✓ | ✓ | ✓ | ✓ | | **Sira AI — write + audit** | — | ✓ | ✓ | ✓ | | **Blog generation + CMS publish** | — | ✓ | ✓ | ✓ | | **Onboarding call** | — | — | ✓ | ✓ | | **Quarterly strategy review** | — | — | ✓ | ✓ | | **Support** | Email | Priority | Priority | Dedicated | Prices are shown excluding VAT. Swedish VAT (25%) is added at checkout where applicable — the app and your invoices show the VAT-inclusive total. ## Picking a plan ### Basic For teams who want continuous AI visibility tracking but don't need automation. You'll get twice-weekly analyses, a ranked list of content gaps, and a full GEO‑16 audit — enough to run a monthly content sprint without any Sira drafting help. The Strategy Advisor and Data Analyst specialists answer questions about your data in read-only mode; you'll write drafts in your own tools and publish in your own CMS. ### Pro The most popular plan. Daily analyses, full Sira AI (including blog generation), unlimited report recipients, and CMS publishing via Shopify or WordPress. This is where most customers land once they realize how often they'd revisit the data. ### Max Same capabilities as Pro but with a larger prompt library (200 vs. 100), a deeper technical audit, and a dedicated onboarding call plus quarterly strategy reviews. Pick this if AI visibility is a formal KPI for your team and you want hands-on calibration. ### Enterprise Custom prompt library size, custom integration work, the deepest technical audit, and a dedicated support contact. Talk to us — [sales@videntic.com](mailto:sales@videntic.com). ## How prompts work Your **prompt library** is the set of customer-style queries Videntic runs against the major LLMs in every analysis. A **prompt** is one such stored query — for example, *"best project management tool for agencies"*. Each plan caps how many prompts you can keep **active** in your library at once: 25 on Basic, 100 on Pro, 200 on Max, and a custom limit on Enterprise. The cap is on the size of your active library, not on how many times a prompt runs — Videntic runs every active prompt against each LLM in your plan on your plan's analysis cadence, and running an analysis doesn't consume a separate budget. When you reach your plan's cap, Videntic asks you to **deactivate or delete an existing prompt** before adding a new one, or to upgrade for more slots. Deactivating a prompt frees a slot while keeping its history — you can reactivate it later. The **Run analysis** button runs your active prompts on demand; because the limit is on library size rather than on runs, on-demand runs don't draw down a monthly budget. ## Changing plans You can upgrade, downgrade, or cancel at any time from **Settings → Billing**. * **Upgrades** take effect immediately and you're prorated for the difference. * **Downgrades** take effect at the end of your current billing cycle — you keep higher-tier features until the renewal date. * **Cancellations** stop renewal; access continues until the end of the paid period. If a subscription lapses (e.g. payment fails), Videntic grants a short grace period before restricting features, so a failed charge doesn't surprise you with a locked dashboard. ## What happens to your data on downgrade All your historical analyses, audits, drafts, brand documents, and settings are preserved on any downgrade. You'll just be limited to the new plan's caps going forward — e.g. if you downgrade from Pro (10 competitors) to Basic (3), the first 3 competitors on your list remain active and the rest are paused until you upgrade again. ## Billing questions For invoicing, VAT, custom billing arrangements, or anything unusual, email [billing@videntic.com](mailto:billing@videntic.com). ## Related How to upgrade, downgrade, or cancel. What the paid features actually do. For Enterprise or non-standard needs. Common billing questions, answered. # Glossary Source: https://docs.videntic.com/concepts/glossary Every Videntic term, defined in plain language. A reference for the vocabulary used across the app and these docs. If a term is used anywhere in Videntic, it should be here. Alphabetical. *** **AI search** — The category of products (ChatGPT, Perplexity, Gemini, Claude, Google AI Overviews) where users ask questions conversationally and get synthesized answers instead of a list of links. **AI Visibility Score** — The equal-weight mean of each tracked provider's brand text-mention rate, expressed from 0–100. Providers with no responses are excluded. See [AI Visibility Score](/metrics/ai-visibility-score). **Analysis** — One end-to-end run of Videntic's pipeline on a website: generate prompts, simulate across models, score responses, audit the site, produce metrics. A report is produced from every analysis. **Audit (GEO audit)** — The on-site analysis that scores every tracked page against the GEO‑16 framework. Complements the off-site visibility metrics by telling you *why* you are (or aren't) being cited. **Brand document** — A file you upload to Videntic (brand guidelines, tone-of-voice doc, writing sample) that Sira uses as context to stay on-brand in its responses and drafts. **Cadence** — How often Videntic runs an analysis on a given website: daily, weekly, biweekly, monthly, or quarterly. Set per website in Settings → Reporting. **Citation** — A mention of your brand or domain in an LLM's response. Videntic counts a citation when the mention is attributional (not dismissive). **Citation Position** — How early your brand appears in an LLM response that cites you. Lower is better — position 1 is the first mention. See [Citation Position](/metrics/citation-position). **Competitor (tracked)** — A domain classified as a direct business rival in your competitor list. Only tracked competitors count toward your Share of Voice. **Content gap** — A prompt where your brand is *not* cited but your competitors are. Ranked by opportunity, with a recommended content type and suggested angles. See [Content gaps](/features/content-gaps). **Content Creator** — One of Sira's four specialists. Writes blog drafts, product pages, and other content artifacts. Available on Pro and Max plans. **Crawl** — The initial read of your website that Videntic performs after you add it. Builds a content index used for GEO‑16 scoring and Sira context. Different from an analysis. **Data Analyst** — One of Sira's four specialists. Answers numeric and analytical questions about your metrics, competitors, and trends. **Draft** — A blog post generated by Sira but not yet published. Drafts live in **Content → Drafts** and can be edited, regenerated, or pushed to a CMS as an unpublished article. **GEO (Generative Engine Optimization)** — The practice of making your content citable by LLMs. The GEO equivalent of SEO for traditional search engines. **GEO Auditor** — One of Sira's four specialists. Walks a single page through the GEO‑16 framework with specific, actionable fixes. **GEO‑16** — Videntic's 16-pillar framework for evaluating a page's readiness to be cited by LLMs. Grouped into Technical, Content, Authority & Trust, and UX themes. See the [GEO audit](/features/geo-audit) for how it's surfaced in the app. **Grace period** — The short window (about 7 days) after a payment failure during which your full plan remains active. Gives you time to update your payment method without losing access. **LLM** — Large Language Model. The underlying AI that powers ChatGPT, Perplexity, Gemini, Claude, and Google AI Overviews. Videntic simulates against the major LLMs in every analysis. **Pillar** — One of the sixteen categories in the GEO‑16 framework. Each pillar has a score, a status (passing, borderline, failing), and a list of specific issues found. **Plan** — The subscription level of a website: Basic, Pro, Max, or Enterprise. Each plan sets a different prompt library size, number of competitor slots, analysis frequency, and feature access. See [Plans](/billing/plans). **Prompt** — A single customer-style query stored in your prompt library and used to test LLM responses. In a Videntic analysis, each active prompt is run against every LLM included in your plan. Your plan caps how many prompts you can keep active at once. **Prompt library** — The set of prompts Videntic runs against the LLMs on every analysis for a website. Managed per website; your plan caps how many prompts can be active at a time. **Recipient** — An email address that receives scheduled or on-demand reports for a website. Configured per website in Settings → Reporting. **Report** — The PDF summary produced from an analysis, delivered by email to configured recipients. See [Reports](/features/reports). **Share of Voice (SOV)** — For each provider, your mentions divided by the combined mentions of you and tracked competitors; the headline is the equal-weight mean of non-empty provider pools. See [Share of Voice](/metrics/share-of-voice). **Sira** — Videntic's AI agent. Routes your request to the right specialist (Data Analyst, Content Creator, Strategy Advisor, or GEO Auditor) and returns an answer, a draft, or an audit. **Specialist** — One of the four roles Sira routes to. Each specialist is tuned for a specific kind of task. **Strategy Advisor** — One of Sira's four specialists. Answers planning and prioritization questions — what to work on first, how to respond to competitive moves, how to frame results for leadership. **Task** — A long-running Sira job (e.g. draft a full blog post, audit an entire site). Tasks run in the background; you get an email when they finish. **Tier (visibility tier)** — The human-readable category label for your AI Visibility Score: Building Visibility, Gaining Traction, Well Positioned, or Category Leader. (For subscription levels, see **Plan** above.) **UGC** — User-generated content. A classification for competitor candidates — Reddit, Quora, Stack Exchange — that's tracked for intel but excluded from Share of Voice. **Verification** — The one-time proof-of-ownership step after adding a website. Ensures you can only track sites you control. **Website** — A tracked domain in Videntic. Each website has its own analyses, audits, competitors, reports, and settings. ## Related How the measured concepts work together. The high-level primer. Common questions that use this vocabulary. # Blog generation Source: https://docs.videntic.com/features/blog-generation Turn a ranked content gap into a draft in your CMS — ready for editorial review. Blog generation is the last-mile of Videntic's workflow: take a content gap, hand it to Sira's Content Creator specialist, get back a draft, and publish it to Shopify or WordPress as an unpublished draft. Your team reviews, edits if needed, and clicks publish in the CMS. ## Why blog generation exists Closing content gaps is the single highest-leverage thing you can do for AI Visibility. But writing good GEO-aware content takes time — and most teams don't have the bandwidth to turn ten ranked gaps into ten shipped posts a month. Blog generation compresses that cycle. Every draft: * Targets a specific prompt from your gap list. * Follows GEO‑16 best practices by default (headings, microcontent, structured data, evidence). * Adapts to your brand voice if you've uploaded brand documents. * Lands in your CMS as a draft — never auto-publishes. ## The flow end-to-end From **Content gaps**, click the gap you want to close. You'll see the prompt, recommended content type, suggested angles, and competitor evidence. Click **Draft with Sira** inside the gap. The Content Creator specialist writes a full draft against the brief — usually in 30–90 seconds for a standard blog post. The draft opens in the Drafts editor. You can edit inline, ask Sira for revisions ("shorter", "add a comparison table", "more skeptical tone"), or regenerate entire sections. When you're happy, click **Publish to \[Shopify/WordPress]**. The draft is pushed to your CMS as an *unpublished* draft with title, body, metadata, and schema markup pre-populated. Your team opens the CMS, gives the draft a final pass, and hits publish. Videntic never publishes live posts on your behalf. Drafts are never published automatically. Videntic only creates drafts inside your CMS — the publish button stays with your team. ## What's in a generated draft Every draft includes: * **Title and slug** optimized for the target prompt. * **Meta description** inside the CMS metadata field. * **Structured body** with H2/H3 hierarchy, microcontent-friendly intros, and evidence-backed claims. * **Schema.org markup** (Article, FAQ, HowTo, or Product as appropriate) generated and attached automatically. * **Internal links** to relevant pages on your site, based on Videntic's content index. * **Suggested featured image placement** — you supply the asset in your CMS. ## Revise a draft with Sira From inside the Drafts editor, chat with Sira the same way you would anywhere else. Common revision requests: * *Shorten the intro to three sentences.* * *Add a comparison table with the competitors mentioned.* * *Make the tone more skeptical — less salesy.* * *Regenerate the conclusion with a stronger CTA.* * *Rewrite this paragraph without the word "leverage".* Sira edits inline — you don't lose work across the rest of the draft. ## Publish options per CMS ### Shopify Requires a one-time connection from **Settings → Integrations → Shopify**. See [Shopify integration](/integrations/shopify) for the connection flow. Once connected, drafts push to your store's blog section as unpublished articles. ### WordPress Requires your WordPress site URL and an application password. See [WordPress integration](/integrations/wordpress) for the setup. Drafts push as unpublished posts under the configured author. ## Plan availability Blog generation is available on **Pro** and **Max** plans. On **Basic**, you can see gap briefs and angles but can't hand briefs to Sira for drafting or push to a CMS. See [Plans & billing](/billing/plans). ## Where drafts live All drafts — whether sent to a CMS or not — are saved under **Content → Drafts** in the app. You can come back to a draft, edit it, regenerate sections, or delete it at any time. Sending to a CMS creates a draft there *and* keeps the Videntic draft for your records. ## Related The input end of the blog generation flow. The Content Creator specialist does the writing. Connect your Shopify store to enable one-click drafts. Connect WordPress for the same flow. # Competitor tracking Source: https://docs.videntic.com/features/competitor-tracking Decide who you're benchmarked against, prune noise, and spot who's winning the prompts you aren't. Competitors define the denominator of your Share of Voice and the narrative of your content gaps. Videntic tracks competitors automatically — and gives you full control to prune, promote, or extend the list. ## Why competitor tracking matters * **It anchors your SOV**. Your competitor set *is* the market you're measured against. Wrong set, wrong SOV. * **It reveals attack plans**. Every competitor citation in a prompt you missed is a potential content brief. * **It filters noise**. Wikipedia and Reddit appear constantly in AI answers. Unless you think of them as competitors, they shouldn't count as such. ## How competitors get added Videntic populates your competitor list two ways: ### Auto-detection After every analysis, Videntic scans the responses for domains that appear repeatedly alongside you. The top-cited non-you domains are proposed as competitors and classified into categories: * **Competitor** — direct business rivals (default for new domains in your category). * **UGC** — Reddit, Quora, Stack Exchange, and similar community sites. * **Media** — news, magazines, industry publications. * **Reference** — Wikipedia, educational sites, encyclopedic sources. * **Ecommerce** — marketplaces like Amazon or eBay. * **Tech** — developer docs, API references. Only domains classified as **Competitor** count toward your Share of Voice. The others are tracked but not used in the ratio. ### Manual addition You can add a competitor manually from **Competitors → Add competitor**. Paste their domain, optionally name them, and save. Manual competitors default to the **Competitor** category. ## Manage your competitor list From any website's dashboard, click **Competitors** in the left-hand nav. Auto-detected domains appear with a category badge and a confidence indicator. Accept the ones that belong on your list. Change any competitor's category with the dropdown on each row — e.g. reclassify an aggressive UGC site as a Competitor if it's your real rival for SOV purposes. Hit the trash icon on a row to stop tracking a domain entirely. Plans cap the number of competitors you can actively track. Basic includes 3; Pro and Max include 10. See [Plans & billing](/billing/plans). ## Read a competitor deep-dive Click any competitor's row to open its deep-dive page, which shows: * **Total appearances** — how many LLM responses cited them over your selected time range. * **Average position** — how early they tend to be cited, comparable to your own Citation Position. * **Per-model breakdown** — where they dominate (ChatGPT vs. Perplexity, etc.). * **Prompts won** — the specific queries where they were cited and you weren't. These are your richest content gaps. The **Prompts won** list is often the most useful artifact on the page. Every row is a prompt that the competitor already has an answer for. Close the gap and you take a slice of their SOV directly. ## Category strategy Here's how we'd recommend using categories: * Treat **Competitor** as narrow — real alternatives a buyer would consider. Don't lump in every loosely adjacent brand. * Keep **UGC** visible but excluded from SOV — Reddit and Quora threads are useful intel but not rivals. * Move **Media** to Competitor only if a publication is directly fighting you for the same buyer (rare but happens for listicle-heavy categories). * Leave **Reference** alone — you can't out-Wikipedia Wikipedia, and you don't want to pretend you're competing with them. ## Related The metric competitor tracking drives. The hands-on walkthrough. Where competitor wins become your to-do list. Include competitor breakdowns in your scheduled reports. # Content gaps Source: https://docs.videntic.com/features/content-gaps The prompts you should be winning but aren't — ranked by opportunity. A content gap is a prompt where your brand *should* be cited by an LLM, but isn't. Videntic surfaces gaps after every analysis and ranks them by opportunity so you know which one to fill next. ## Why content gaps matter * **They're directly actionable**. Every gap is one piece of content away from becoming a win. * **They come with context**. You see which competitors are cited instead and why the gap exists. * **They're pre-prioritized**. Each gap has a difficulty and an impact score, so you don't spend hours choosing what to work on. Most of the progress we see in AI Visibility across customers comes from systematically closing the top-ranked gaps. ## How a gap is identified After an analysis, Videntic looks at every prompt where your brand was *not* cited and scores it against: * **Category fit** — is this a query your site *should* have an answer for, given what you publish? * **Competitor concentration** — are your rivals dominating it? * **Model breadth** — is it a gap on one model or all four? * **Estimated effort** — based on the recommended content type, how heavy a lift is filling it? The result is a ranked list, each gap tagged with: * **Difficulty**: easy, medium, or hard. * **Impact score**: an opportunity number from 0 to 100. * **Recommended content type**: what kind of page to publish (comparison guide, how-to, product page, FAQ, etc.). * **Suggested angles**: a few directions the content could take. ## Read a gap From the dashboard, click **Content gaps** or click any gap tile on the homepage. Gaps are sorted by impact. The top rows are where to spend your next week. Click a row to see the original prompt, the LLM responses that missed you, and the competitors that were cited. Every gap has a short brief: the recommended content type, suggested angles, and evidence links from competitor responses. ## Act on a gap You have three paths from any gap brief: ### Write it yourself Export the brief to your own tools. The brief includes the prompt, recommended content type, angles, and competitor examples — everything a writer needs to start. ### Ask Sira to draft it Click **Draft with Sira** from inside a gap to hand the brief to the **Content Creator** specialist. Sira writes a draft blog post against the brief; you review, edit, and approve. See [Blog generation](/features/blog-generation). ### Publish straight to your CMS On **Pro** and **Max** plans, you can publish an approved draft directly to Shopify or WordPress as an unpublished draft — ready for a final editorial pass before you hit *Publish*. See [Shopify integration](/integrations/shopify) and [WordPress integration](/integrations/wordpress). ## Filter and refine The Content gaps page has filters for: * **Difficulty** — focus on quick wins, or stretch targets. * **Recommended content type** — line up a sprint of how-tos, for example. * **Model coverage** — gaps that appear across all four LLMs usually have the best compounding effect. * **Competitor** — see every gap that a specific rival is winning. Gaps refresh with every analysis. As you close them, they drop off the list, and new gaps surface as the prompt set evolves. It's normal for the top-ranked gap to change week to week. ## Why some gaps never close Not every gap is worth filling. Common reasons to skip one: * The prompt is adjacent to your ICP but not central — fixing it drives visibility without driving conversions. * The recommended content type doesn't fit your brand voice. * A dominant reference source (e.g. Wikipedia) owns the query, and a new piece of content can't realistically dethrone it. You can dismiss gaps you don't plan to close; they won't clutter the list again. ## Related Closed gaps show up here as SOV growth. Turn a gap brief into a published post in one flow. The Content Creator specialist lives inside content gap workflows. See which competitors are behind which gaps. # Dashboard Source: https://docs.videntic.com/features/dashboard Your home base in Videntic — every metric, every website, in one view. The dashboard is where every analysis run lands. It shows your four core metrics, your GEO‑16 breakdown, your top content gaps, and your competitor share — all grouped by website so you can switch between sites on the same account. ## Anatomy of the dashboard ### Headline metrics At the top of the dashboard, the four core metrics are shown as large tiles: * **AI Visibility Score** with the tier label (Building / Gaining Traction / Well Positioned / Category Leader). * **Share of Voice** against tracked competitors. * **Citation Position** with trend since last run. * **GEO‑16 Score** with pillar hit count (e.g. *12 of 16 passing*). Each tile shows the current value, the delta from the previous run, and a mini sparkline for context. Click any tile to drop into the full history for that metric. ### Per-model breakdown Below the headline tiles, the same metrics are broken out by model: **ChatGPT**, **Perplexity**, **Google AI Overviews**, and (on higher plans) **Gemini**. This is where you'll spot model-specific gaps — say, strong performance on ChatGPT but weakness on Perplexity. ### Top content gaps The highest-impact prompts where you're *not* cited, ranked by opportunity score. Each gap shows: * The prompt the LLM was asked. * Which competitors are cited instead. * A recommended content type (comparison, how-to, product page, etc.). * A difficulty label (easy / medium / hard) so you can sequence work. Click any gap to open the full brief. See [Content gaps](/features/content-gaps) for more. ### Competitor share chart A stacked bar chart of Share of Voice across your tracked competitors. Your slice is highlighted. Click any competitor to see which prompts they dominate. ### GEO‑16 pillar card A condensed view of your current audit: pillars passing, pillars borderline, pillars failing. Click through for the full page-by-page breakdown. ## Switching websites If you track multiple websites, use the website switcher at the top of the dashboard. Each site keeps its own analysis history, competitor list, and GEO‑16 audit. The website switcher shows the plan per website. Plans gate frequency of analysis (daily vs. twice-weekly), the size of your prompt library, and feature access — not which metrics you see. ## Filters and time ranges The time range selector (top right) controls every metric on the dashboard at once. Options: * **Last run** — just the most recent analysis. * **Last 30 days** — the default. Good for spotting trends without noise. * **Last 90 days** — useful for reviewing quarter-over-quarter change. * **Custom** — pick your own window. Filtering by specific prompts or competitor subsets is available on the deeper analytics pages, not on the dashboard itself. ## Running an analysis on demand Click **Run analysis** in the top right of the dashboard to trigger an off-schedule analysis. An on-demand run simply runs your active prompt library — there's no separate monthly budget it draws down — so use it freely to verify a fix or grab a fresh snapshot before a meeting. ## What to do from here Click through each metric tile to read how it's calculated. Turn the top-ranked gap into your next content sprint. Open a page's GEO‑16 report from the pillar card. "What should I work on first?" — the Strategy Advisor reads your dashboard and answers. # GEO audit Source: https://docs.videntic.com/features/geo-audit Score any page on your site against the GEO‑16 framework and get targeted fixes. The GEO audit is Videntic's diagnostic for *why* a page isn't getting cited. Every page on your tracked website is scored against the sixteen pillars of the GEO‑16 framework, with specific, actionable issues flagged for each pillar. ## Why GEO audits matter * **Actionable**: unlike a visibility score, the audit tells you *what to change*. Each pillar comes with a list of specific issues on specific pages. * **Page-level**: your homepage and product pages have different jobs. The audit scores them independently so you can prioritize. * **Connected to outcomes**: pillar results drive your [AI Visibility Score](/metrics/ai-visibility-score). Fixing what the audit flags moves the metric. ## Run an audit From your website dashboard, click **Audit** in the left-hand nav. You'll see your site-wide GEO‑16 score at the top, with the number of pillars passing, borderline, and failing. Click any pillar card to see which pages fail it and why. Failing items link directly to the page in question. From any page's row, click through to see *all sixteen pillar results* for that single URL — its strengths and weaknesses. Audits run automatically with every scheduled analysis. You don't need to trigger them separately unless you want an on-demand audit after shipping fixes. ## Understand a pillar result Each pillar result on a page has three parts: * **Status**: passing, borderline, or failing. * **Issues found**: specific problems Videntic detected (e.g. *"No schema.org/Article markup found"*, *"Publication date missing"*). * **Suggested fix**: a short recommendation you can hand to a developer or content editor. Some pillars — like Authority & Trust — will flag site-wide issues (e.g. *"No About page found"*) that apply to every page. Others, like Structured Data, are per-page. ## Prioritize fixes Videntic ranks pillar failures by **impact**, factoring in: * How much traffic/visibility the affected page drives. * How likely the pillar is to block citation on its own. * Whether the same issue repeats across many pages (fixing once, winning many). Your audit shows a **Top 5 fixes** card on the dashboard — the highest-leverage improvements across the whole site. Start there. ## Audit with Sira If you prefer a conversational read, ask Sira: > *Audit my pricing page against GEO‑16* The **GEO Auditor** specialist walks the sixteen pillars one by one, points out what's missing, and drafts the fix — so you can hand a concrete brief to your dev or content team. See [Sira AI](/features/sira-ai). ## After you ship fixes Fixes take one to two analysis cycles to reflect in the score — models need to re-encounter the updated pages. The fastest way to close the loop: 1. Ship the fix. 2. Re-run an analysis from the dashboard. 3. Compare the pillar result before/after on the audit page. Not every pillar moves at the same speed. Technical pillars (Semantic HTML, Structured Data, Metadata) update immediately. Authority pillars (Evidence & Citations, Transparency) can take several weeks to shift because they reflect external perception as much as on-page signals. ## Related The outcome metric the audit drives. The step-by-step for your first analysis end-to-end. The GEO Auditor specialist walks audits with you. The other half of the audit: what's missing, not what's broken. # Reports Source: https://docs.videntic.com/features/reports Scheduled PDF reports delivered to your inbox, summarizing every run. Reports are how Videntic shows up where the work happens — in your inbox. Every scheduled analysis produces a PDF report with the headline metrics, trends, top gaps, and audit summary, emailed to the recipients you've configured for the website. ## Why reports matter * **Async visibility**. Nobody has to log in to see how things are going. The report lands. * **Shareable snapshot**. Forward a PDF to a stakeholder without giving them an account. * **Audit trail**. A dated record of how your AI visibility changed week over week. ## What's in a report Every report is structured the same way so recurring readers always know where to find what they need: * **Summary page** — AI Visibility, Share of Voice, Citation Position, GEO‑16 Score, each with trend indicators. * **Trend chart** — the same metrics over the last 30–90 days. * **Per-model breakdown** — how you're doing on ChatGPT, Perplexity, Google AI Overviews, and Gemini. * **Top content gaps** — the five highest-impact gaps from the latest run, each with difficulty, recommended content type, and the competitors winning them. * **GEO‑16 pillar summary** — which pillars moved, which are still failing. * **Competitor movement** — who gained and lost SOV since the last report. The PDF is pixel-stable — good for printing, forwarding, or attaching to a meeting. ## Schedule a report From the website switcher, pick the site you want to configure and open **Settings**. Choose how often the report is produced and emailed: * **Daily** — available on Pro and Max plans. * **Weekly** — available on all paid plans. * **Biweekly** — the most common cadence. * **Monthly** — for lower-touch tracking. * **Quarterly** — for leadership or board reporting. Enter the email addresses that should receive the report. Basic plans allow one recipient per website; Pro and Max plans allow unlimited recipients. The next scheduled report will go out to the updated list. Past reports remain accessible from the **Reports** tab in the app. ## Generate a report on demand Beyond the schedule, you can generate a report whenever you want: 1. Open the **Reports** tab on your website's dashboard. 2. Click **Generate report**. 3. A PDF is produced from the latest analysis and emailed to the configured recipients. On-demand reports are useful before meetings, after shipping a major fix, or when sharing with an external stakeholder. On-demand reports use the latest completed analysis. If you want the freshest possible numbers, run an analysis first (from the dashboard), then generate the report. ## Access past reports Every generated report is stored on the **Reports** tab. Click any row to: * Download the PDF. * See exactly when it was generated and for what analysis run. * Resend to the current recipient list. Reports are retained for the lifetime of the website record. ## Email delivery Reports are delivered by email. The default subject is `Videntic report — [website name] — [date]`. If an email bounces, the error is surfaced in **Settings → Notifications**; otherwise delivery is silent. Some corporate email filters flag PDFs from unfamiliar senders. If you're not receiving reports, add `reports@videntic.com` to your allowlist. ## Related The step-by-step for setting cadence and recipients. How delivery works, troubleshooting, and custom sender options. The live version of what ends up in the report. Report frequency and recipient limits per plan. # Sira AI Source: https://docs.videntic.com/features/sira-ai Your AI agent for GEO strategy, content creation, and audits — with four specialists behind a single conversation. Sira is the AI agent at the center of Videntic. It reads your analysis, understands your brand, and does the expert work that used to need four different people — a data analyst, a content writer, a strategist, and a GEO auditor. You ask in plain language. Sira picks the right specialist, runs the task, and comes back with something you can ship. ## Why Sira exists Videntic gives you metrics, audits, and gaps. But most teams don't need more dashboards — they need someone to look at the dashboards and say *do this next*. Sira is that someone. * **Instant context**: Sira knows your website, your competitors, your GEO‑16 results, and your content gaps. * **Real output**: drafts, audits, and strategy notes, not just summaries. * **On-brand**: upload brand guidelines as [brand documents](#brand-documents) and every response is written in your voice. ## The four specialists Sira routes your message to the specialist best suited to the request. You don't pick — Sira does. Answers numeric questions about your metrics, runs comparisons, and surfaces trends. "*How did my SOV change vs. last month?*" Drafts blog posts, product pages, and short-form content. "*Draft a comparison post between us and Competitor X targeting \[prompt].*" Frames strategic questions and recommends priorities. "*What should I fix first this quarter to improve AI Visibility?*" Walks a page through the GEO‑16 framework with specific fixes. "*Audit /pricing against GEO‑16.*" When a question spans multiple areas, Sira runs the relevant specialists in sequence and synthesizes a single response — you don't get four walls of text. ## Start a conversation Click **Sira** in the left-hand nav of the app. If you track multiple websites, pick the one you want Sira to focus on. Most questions assume your currently selected website. Describe what you want. No need to name the specialist — Sira will route. Sira remembers your conversation, so "*make it shorter*" or "*try a different angle*" works without repeating the brief. ## Example prompts that work well * *What's my biggest GEO weakness right now?* * *Draft a how-to targeting \[content gap].* * *Audit my homepage against GEO‑16 — what's the top fix?* * *Which competitor is gaining the most SOV against me, and where?* * *Give me a content plan for the next four weeks.* * *Rewrite this paragraph for Authority & Trust.* ## Brand documents Sira writes on-brand when it has something to go on. Upload your brand guidelines, tone-of-voice documents, style guides, or canonical writing samples as **brand documents**, and Sira will pull the relevant sections into its context automatically. Supported types: * PDF documents (brand guidelines, style guides). * Plain-text writing samples. * Image assets (logos, visual references). Upload from **Settings → Brand documents**. Your uploads are private to your workspace and encrypted at rest. Brand documents are only surfaced when relevant to the current conversation. You can upload as many as you need; Sira picks the passages that fit. ## Tasks that run in the background Some requests — drafting a full blog post, auditing every page on your site — are too slow to stream in real time. Sira launches these as **tasks** and runs them in the background. You'll see a task card appear in the conversation; progress streams live, and the final output lands in-place when it's ready. You can close the tab. Tasks keep running. You'll get an email when they finish. ## Availability Sira is available on **Pro** and **Max** plans. The Strategy Advisor and Data Analyst specialists also appear in **Basic** in read-only mode — they'll answer questions about your data but won't launch content or audit tasks. See [Plans & billing](/billing/plans). ## Related Sira's Content Creator specialist, end-to-end. The companion flow for the GEO Auditor. Concrete examples and patterns that get the best out of Sira. Where most Sira conversations start. # Add a website Source: https://docs.videntic.com/getting-started/add-a-website Register a domain, prove you own it, and build the content index Videntic reasons from. Adding a website does two things at once: it registers the domain you want to track, and it triggers the crawl that gives Videntic the context it needs to analyze you well. ## Before you start You need: * The full domain URL (e.g. `https://www.example.com`). * The ability to publish a meta tag or upload a file to the site's root — usually a CMS admin login or access to the host. * A couple of minutes. Each plan allows a different number of tracked websites. See [Plans & billing](/billing/plans) for the limits, and [Manage competitors](/how-to/manage-competitors) for how competitor domains differ from tracked websites. ## Add the domain Click **Add website** on the dashboard home. Paste the full URL of the site you want to track. Include `https://` and the `www.` prefix if that's the canonical version. Add a few target keywords that describe your category and pick the country and language you sell in. These tune the queries Videntic simulates. You can edit them later. Videntic creates the website record and takes you to the verification screen. ## Verify ownership To prevent anyone from tracking a site they don't own, Videntic requires proof before any data is collected. Pick one of two verification methods: ### Method 1: Meta tag Copy the one-line `` tag shown in the app and paste it inside the `` of your homepage. Save and publish the page, then click **Verify**. **Your task:** make sure the meta tag is reachable at `https://yourdomain.com/` before clicking Verify. If your homepage is a CDN-cached static page, you may need to purge the cache first. ### Method 2: File upload Download the small verification file shown in the app and upload it to the root of your site so it's reachable at `https://yourdomain.com/`. Click **Verify**. Verification usually succeeds in seconds. If it fails, the most common causes are: a trailing redirect (e.g. `example.com` → `www.example.com`), the tag being placed in the `` instead of the ``, or a CDN cache serving the old HTML. See [Common issues](/troubleshooting/common-issues) for fixes. ## What happens after verification Once ownership is confirmed, Videntic starts an **initial crawl** of your site. This is not the same as running an analysis — it's how the platform learns what you publish, so later analyses and Sira answers are grounded in your actual content. The crawl: * Visits every reachable page starting from your homepage. * Extracts readable content (titles, body copy, structured data). * Builds an internal content index used for context and GEO‑16 scoring. Crawls typically complete in **2–5 minutes** for small-to-medium sites. Very large sites may take longer; Videntic will tell you when it's done. Videntic respects `robots.txt`. Pages you exclude from search engines are also excluded from the crawl. ## Remove or replace a website You can remove a website from **Settings → Websites**. Removing a website deletes its analysis history, GEO audit results, and competitor associations — there's no undo, so be sure before you confirm. If you're migrating domains (say, `old.com` → `new.com`) it's usually better to add the new domain, verify it, and run a fresh analysis than to try to carry state across. ## What's next? Kick off the analysis that produces your first report. Decide who you're benchmarked against. The 16-pillar framework used to score your pages. What every widget on the dashboard means. # What is Videntic? Source: https://docs.videntic.com/getting-started/introduction The platform for measuring and improving how AI search sees your brand. Videntic is a **Generative Engine Optimization (GEO)** platform. It answers a question traditional SEO tools can't: *when someone asks an LLM about your category, does your brand come up — and if not, why?* ## The problem GEO solves AI search is fundamentally different from keyword search: * A user asks a conversational question, not a three-word query. * The LLM synthesizes a single answer instead of showing ten blue links. * Sources are chosen by the model, not ranked by a public algorithm. * The answer is different on every model — ChatGPT, Perplexity, Gemini, and Claude all reason from different training data and tools. Ranking on Google isn't enough anymore. Your content has to be *citable* by models that summarize the web for users. ## What Videntic does Runs representative customer queries against the major LLMs and tracks whether your brand is cited, where you appear, and who's cited instead. Scores every tracked page against the GEO‑16 framework and tells you which pillars are blocking citations. Surfaces the highest-impact content gaps — prompts you *should* be winning but aren't — ranked by effort and opportunity. Sira, your AI agent, can draft blog posts, suggest fixes, and publish straight to your CMS. ## Who Videntic is for * **In-house marketing teams** who want a continuous read on AI visibility, not a one-off audit. * **SEO and content leads** whose traditional ranking reports no longer reflect where traffic is going. * **Agencies** managing GEO for multiple clients and needing a consistent, shareable measurement. * **Founders and product marketers** who want AI search to be a channel, not a blind spot. If "my competitors keep showing up in Perplexity and I don't" sounds familiar, you're in the right place. ## How Videntic measures visibility Every analysis run in Videntic follows the same pipeline: Your website is crawled and indexed so that Videntic — and Sira — can reason about what you actually publish. Prompts are derived from your keywords, your positioning, and common customer questions in your category. Each prompt is run through ChatGPT, Perplexity, Google AI Overviews, and (on higher plans) Gemini, under realistic web-grounded conditions. Videntic records who was cited, in what position, with what sentiment, and which sources the model referenced. Responses are aggregated into your AI Visibility Score, Share of Voice, Citation Position, and GEO‑16 audit. The same pipeline runs automatically on your chosen cadence — daily, weekly, or biweekly — so the trend is what moves, not the methodology. ## What happens on your very first run In your first session you'll: 1. **Add a website** and confirm ownership. Verification takes a minute. 2. Wait roughly **2–5 minutes** for the initial crawl. 3. **Pick a plan** (Basic, Pro, or Max — every new account starts with a 7-day free trial). 4. **Run your first analysis.** You'll see your AI Visibility Score, your top content gaps, and your GEO‑16 breakdown within a few minutes. From there, Videntic runs on the cadence your plan allows. You don't have to remember to "refresh the report". ## Where to go next The full 15-minute path from signup to your first results. Ownership verification and what the initial crawl does. Everything Videntic measures, in one page. Every term we use in the app, defined plainly. # Quickstart Source: https://docs.videntic.com/getting-started/quickstart From signup to your first AI visibility report in under 15 minutes. This is the fastest path from zero to a working Videntic account with your first analysis complete. Fifteen minutes, four steps. You'll need your website URL and a few minutes of uninterrupted time. Every new account starts with a 7-day free trial of a paid plan. ## Step 1: Create your account Head to [app.videntic.com/signup](https://app.videntic.com/signup) and sign up with your work email. **Your task:** confirm your email and log in. You'll land on the onboarding screen, ready to add your first website. ## Step 2: Add and verify your website Enter the domain you want to track — usually your company website. Videntic will ask you to prove you own it using one of two methods: * **Meta tag** — paste a one-line `` tag into your site's ``. * **File upload** — upload a small verification file to the root of your site. Once the tag or file is live, click **Verify** and Videntic will confirm ownership within a few seconds. **Quick tip:** verification is a one-time action. After it succeeds, you can remove the tag or file if you prefer. Videntic crawls your site right after verification to build its content index. This usually takes **2–5 minutes** and runs in the background while you do the next step. Don't close the browser tab, but you don't have to wait on this screen either. See [Add a website](/getting-started/add-a-website) for the detailed walkthrough. ## Step 3: Choose a plan Before you can run an analysis, pick a plan. Every new workspace starts with a **7-day free trial** of the plan you choose, so you can experience the full workflow before you're charged. **Your task:** pick **Basic**, **Pro**, or **Max** on the plans screen to start your trial. Higher plans add a larger prompt library, more competitor slots, more frequent analyses, and Sira AI. See [Plans & billing](/billing/plans) for a full comparison. ## Step 4: Run your first analysis With your site verified and a plan selected, hit **Run analysis** from the dashboard. Videntic will: 1. Generate a set of representative customer queries for your category. 2. Run them through the major LLMs (ChatGPT, Perplexity, Google AI Overviews, and Gemini). 3. Check every response for whether your brand was cited, where you appeared, and who was cited instead. 4. Score the tracked pages on your site against the GEO‑16 framework. The first run usually takes **3–6 minutes**. When it finishes, you'll see: * Your **AI Visibility Score** (the headline number). * Your **Share of Voice** against detected competitors. * Your top **content gaps** — queries you *should* be winning. * Your **GEO‑16 audit** and pillar breakdown. **Quick tip:** the first run is also the moment Videntic automatically discovers competitors for you. You can prune or extend that list at any time — see [Manage competitors](/how-to/manage-competitors). ## What's next? A tour of every widget on the dashboard and what it means. What AI Visibility means, how it's calculated, and how to move it. Weekly, biweekly, or daily — pick what fits your team. Hand your data to an AI agent that writes, audits, and recommends. # Manage competitors Source: https://docs.videntic.com/how-to/manage-competitors Curate the competitor list that drives Share of Voice and content gap analysis. Videntic auto-detects competitors after every analysis, but the default list is rarely exactly the set you want to measure against. This guide walks you through reviewing, refining, and maintaining it. Your competitor list is per-website. If you track multiple sites, each has its own list — they don't share. ## Step 1: Open the Competitors tab From the website switcher, pick the site you want to work on. In the left-hand nav, click **Competitors**. You'll see two sections: **Tracked competitors** (your current list) and **Suggestions** (domains Videntic has detected recently that you haven't added yet). ## Step 2: Review auto-detected suggestions Every domain detected in your analyses that isn't you comes with a category guess: * **Competitor** — direct business rivals. * **UGC** — Reddit, Quora, community forums. * **Media** — news and magazine sites. * **Reference** — Wikipedia, educational sites. * **Ecommerce** — marketplaces like Amazon. * **Tech** — developer docs. **Your task:** go through suggestions and **Accept** the ones that belong in your competitor set. Ignore or **Dismiss** the rest. **Quick tip:** be strict about the **Competitor** category. Only domains that genuinely compete for your buyer belong there — they're the ones that affect your Share of Voice. ## Step 3: Add competitors manually If there's a rival Videntic hasn't detected yet (e.g. a new entrant), add them manually. Top-right of the Competitors tab. Paste their domain (e.g. `competitor.com`). Videntic normalizes `www.` and `https://`. Defaults to Competitor. Change if they're really a media site, etc. They'll be tracked in your next analysis. ## Step 4: Reclassify or remove For any tracked competitor, you can: * **Change category** with the dropdown on the row. * **Remove** them with the trash icon. Removal is immediate and excludes them from future Share of Voice calculations. Historical data keeps its original classification so past reports stay consistent. You can't undo removal in the UI. If you remove a competitor by accident, add them back manually — the domain's appearance history will re-attach. ## Step 5: Read the competitor deep-dive Click any competitor row to see: * **Total appearances** over your selected time range. * **Average position** — how early they tend to be cited. * **Per-model breakdown**. * **Prompts won** — the specific queries where they were cited and you weren't. **Your task:** skim the **Prompts won** list for your top 2–3 competitors. Every row is a potential content gap. If a pattern emerges (e.g. *"they dominate comparison queries"*), you have a targeted content brief. ## Plan limits Each plan caps the number of competitors you can actively track: | Plan | Competitor slots | | ---------- | ---------------- | | Basic | 3 | | Pro | 10 | | Max | 10 | | Enterprise | Custom | Auto-detected suggestions are surfaced regardless of your limit — you can always see who's being cited — but only tracked competitors count toward Share of Voice. ## When to prune Review your competitor list every quarter. Things that signal a prune: * A competitor's SOV has been near zero for months. * A new rival has emerged and you're at your plan cap. * A previously accepted domain turned out to be a UGC site posing as a competitor. ## Related The full feature overview. The metric competitor tracking drives. Where competitor wins become your roadmap. Competitor slot limits per plan. # Publish a blog post Source: https://docs.videntic.com/how-to/publish-a-blog-post Close a ranked content gap by drafting with Sira and publishing to your CMS. This is the main value loop of Videntic: ranked gap → drafted post → CMS draft → published article. Twenty to forty minutes, depending on how much editorial polish you want to apply. Blog generation is available on **Pro** and **Max** plans. You'll also need an active CMS integration — see [Shopify](/integrations/shopify) or [WordPress](/integrations/wordpress) before starting. ## Step 1: Pick a gap Open **Content gaps** from the dashboard. Gaps are ranked by impact. **Your task:** pick one from the top five. In practice, the very top gap has the best ratio of effort to expected AI Visibility lift. **Quick tip:** scan the **Recommended content type** column and pick a format your team is good at. A gap tagged "comparison guide" produces a different artifact than one tagged "how-to". ## Step 2: Read the brief Click the gap to open its detail view. You'll see: * The prompt the LLM was asked. * The competitors cited instead of you. * The recommended content type. * A list of suggested angles. * Evidence from the competitor responses — quotes and cited sources. **Your task:** decide the angle you want to lead with. Sira can switch angles later, but giving it a clear starting point produces a tighter first draft. ## Step 3: Draft with Sira Click **Draft with Sira** inside the gap. Sira's Content Creator specialist writes a full draft targeting the prompt. For a standard blog post, expect **30–90 seconds**. You'll see the draft open in the Drafts editor when it's ready. Sira uses your uploaded [brand documents](/features/sira-ai#brand-documents), your site's content index, and the gap brief as context. If the first draft isn't on-brand, you're probably missing a brand document — adding one is usually the fastest fix. ## Step 4: Review and revise Read the draft. Most drafts will need a pass — either minor edits inline, or Sira revisions. Common revisions that work well: * *Shorten the intro to three sentences.* * *Add a comparison table with the competitors from the brief.* * *Rewrite section 2 with a more skeptical tone.* * *Make the conclusion less promotional.* * *Replace the second example — use \[specific thing] instead.* **Your task:** get the draft to "good enough that a subject-matter reviewer can finish it". Don't try to make it perfect in Videntic — your CMS is a better place for the final polish. ## Step 5: Send to your CMS When you're happy with the draft, click **Publish to Shopify** or **Publish to WordPress** (depending on your active integration). Videntic pushes to your CMS as an **unpublished draft** with: * Title and slug optimized for the prompt. * Meta description. * Full body with headings, microcontent, and internal links. * Schema.org markup (Article, HowTo, FAQ, or Product) already attached. * A placeholder spot for a featured image — you supply the asset in your CMS. Videntic never publishes live articles on your behalf. It creates drafts. The final publish action stays with your team. ## Step 6: Final editorial pass in the CMS In Shopify or WordPress: 1. Open the draft. 2. Add your featured image. 3. Have a human do a final editorial pass — fact-check claims, adjust tone, add links to your product pages if missing. 4. Publish. **Quick tip:** if the draft references competitor claims, double-check the claims are still accurate before publishing. LLMs can quote confidently-wrong facts, and Sira inherits that risk. ## Step 7: Watch the gap close The gap doesn't disappear from your list immediately — LLMs need to re-encounter the new article. In practice: * **1–2 weeks** for the model to notice the new page and start citing it (faster for news-heavy models like Perplexity). * **1–2 analysis cycles** for the gap to drop off your list. * AI Visibility and Share of Voice shifts show up as the next report's trend line. If a closed gap hasn't moved after three analysis cycles, your article probably hasn't been indexed properly. Check the page's GEO‑16 audit — often a Structured Data or Metadata pillar is failing. ## What's next? Go back for the next ranked gap. Make sure the new post is citable. Patterns for getting better drafts the first time. Track the Share of Voice lift in next week's report. # Run your first audit Source: https://docs.videntic.com/how-to/run-your-first-audit A complete walkthrough from empty account to your first full analysis. If you just signed up and want the fastest path to a real report, this is the guide. About 15 minutes end to end. You'll need your website URL and the ability to publish a meta tag or upload a file to your site. Every new account starts with a 7-day free trial of a paid plan. ## Step 1: Create your account Go to [app.videntic.com/signup](https://app.videntic.com/signup) and sign up with your work email. **Your task:** confirm your email and log in. You'll land on the onboarding screen. ## Step 2: Add and verify your website On the onboarding screen, enter the domain you want to track. **Your task:** paste the full URL (including `https://`), then pick a verification method. * **Meta tag** — Videntic will show you a one-line `` tag. Paste it into the `` of your homepage, save, and publish. * **File upload** — Download the small verification file and upload it to the root of your site so it's reachable at `https://yourdomain.com/`. Click **Verify**. Ownership is usually confirmed in seconds. **Quick tip:** the meta tag or file can be removed after verification succeeds — the check only runs once. If verification fails, the most common fixes are to clear your CDN cache or make sure the meta tag is inside ``, not ``. See [Common issues](/troubleshooting/common-issues). ## Step 3: Wait for the crawl Right after verification, Videntic starts crawling your site. This builds the content index used for GEO‑16 scoring and Sira context. It usually takes **2–5 minutes** for small-to-medium sites. You don't need to wait on the screen. Move on to the next step while it runs. ## Step 4: Pick a plan Before any analysis can run, pick a plan. Every new workspace starts with a **7-day free trial** of the plan you choose. **Your task:** pick **Basic**, **Pro**, or **Max** to start your trial. Higher plans unlock a larger prompt library, more competitor slots, more frequent analyses, and (on Pro and Max) Sira AI and CMS publishing. See [Plans & billing](/billing/plans) for the full comparison. ## Step 5: Run the analysis With your site verified, crawl complete, and a plan selected, hit **Run analysis** on the dashboard. Videntic will: 1. Generate representative customer queries for your category. 2. Run them through ChatGPT, Perplexity, Google AI Overviews, and (on higher plans) Gemini. 3. Score each response for brand citation, position, sentiment, and cited sources. 4. Score every tracked page on your site against the GEO‑16 framework. Your first analysis usually takes **3–6 minutes**. When it finishes, the dashboard unlocks. ## Step 6: Read your first report You'll see: * Your **AI Visibility Score** and tier label. * Your **Share of Voice** against the competitors Videntic auto-detected. * Your top **content gaps** — prompts where you *should* be winning but aren't. * Your **GEO‑16 pillar breakdown** — which on-site issues are blocking citations. **Quick tip:** the first thing to check is your **per-model breakdown**. Strong on one model and weak on another is common, and it's where the specific opportunities live. ## Step 7: Set the cadence From the website's settings, pick how often Videntic should re-run the analysis: daily, weekly, biweekly, monthly, or quarterly. The report goes out by email to the recipients you configure. Basic plans get one recipient per website; Pro and Max are unlimited. See [Schedule reports](/how-to/schedule-reports) for details. ## What's next? Close your first ranked gap with Sira. Auto-detection is a starting point, not a ceiling. Patterns that get the best out of the AI agent. Every widget on the dashboard, explained. # Schedule reports Source: https://docs.videntic.com/how-to/schedule-reports Set analysis frequency and pick who receives the PDF report by email. Videntic is most useful when it runs automatically. This guide walks through setting the analysis cadence for a website and choosing who sees the result. ## Step 1: Open the website settings From the website switcher, pick the site you want to configure. In the left-hand nav, click **Settings → Reporting**. You'll see two controls: **Cadence** and **Recipients**. ## Step 2: Pick a cadence **Your task:** choose the frequency that matches how often your team acts on the data. | Cadence | When to pick it | | ------------- | ------------------------------------------------------------------------------------- | | **Daily** | You're actively improving GEO and want a tight feedback loop. Pro and Max plans only. | | **Weekly** | Standard for most active GEO programs. Good balance of signal vs. noise. | | **Biweekly** | The default. Two data points a month is enough to spot real trends. | | **Monthly** | Lower-touch tracking. Typical for sites that change slowly. | | **Quarterly** | Leadership or board reporting. Track the big picture, not every run. | Analysis frequency is capped by your plan. See [Plans & billing](/billing/plans) for the specifics. **Quick tip:** more frequent ≠ better. If your team isn't shipping changes weekly, weekly reports become noise. Match the cadence to your actual content velocity. ## Step 3: Add recipients **Your task:** enter the email addresses that should receive the report. * Basic plans: one recipient per website. * Pro and Max plans: unlimited recipients. Recipients don't need Videntic accounts — reports are delivered as PDF attachments and inline summaries. **Examples** of sensible recipient setups: * Small team: just you. * Marketing team: [marketing-all@yourcompany.com](mailto:marketing-all@yourcompany.com) distribution list. * Agency setup: the client's main stakeholder plus your own strategy lead. ## Step 4: Save Click **Save**. The next scheduled run will honor the new cadence, and the next generated report will go to the updated recipient list. ## What happens on schedule On your chosen cadence, Videntic: 1. Runs an analysis (prompts + audit) in the background. 2. Generates a PDF with the full summary. See [Reports](/features/reports) for what's included. 3. Emails the report to every recipient. You don't need to be in the app. The report lands. ## Generate a report manually Between scheduled runs, you can generate a one-off report any time: From the website dashboard, click **Reports**. Videntic produces a PDF from the latest completed analysis. Defaults to your configured list. You can override for a one-off send (e.g. share with a stakeholder who isn't on the recurring list). On-demand reports use the most recent analysis. If you want the freshest numbers, run an analysis first from the dashboard. ## Change cadence without losing history Switching cadence doesn't affect past reports or your analysis history. Everything generated so far remains available on the **Reports** tab. ## Troubleshooting delivery If someone isn't receiving reports: * Confirm the address is listed in **Settings → Reporting → Recipients**. * Ask them to check spam, and add `reports@videntic.com` to their allowlist. * Corporate email gateways sometimes strip PDF attachments — check the inline summary in the email body as a fallback. * For persistent issues, see [Common issues](/troubleshooting/common-issues). ## Related What's in every report, section by section. How delivery works under the hood. Cadence and recipient limits by plan. The live counterpart of the report. # Work with Sira Source: https://docs.videntic.com/how-to/work-with-sira Patterns, prompts, and habits that get the best out of the AI agent. Sira is a general-purpose GEO assistant, but it's not magic. Good questions yield good answers. This guide is a short field manual for getting useful, on-brand output consistently. ## Mental model Sira sits on top of the data Videntic already has — your analyses, audits, content gaps, competitors, and brand documents. It reasons about *your* context, not a generic marketing textbook. Internally it routes your request to one of four specialists: * **Data Analyst** for numeric or analytical questions. * **Content Creator** for writing. * **Strategy Advisor** for planning and prioritization. * **GEO Auditor** for page-level audits. You don't pick the specialist. Sira does. What you control is the question. ## What gets good answers ### Be specific about the *target* Vague: *"Help me with my SEO."* Specific: *"My pricing page is scoring 0.52 on GEO‑16. What are the top three fixes?"* The specific version names the page, names the metric, and tells Sira what shape of output you want. ### Say what the output should look like Vague: *"Write me something about \[gap]."* Specific: *"Draft a 1,200-word how-to targeting \[gap]. Include a comparison table and a FAQ section. Use my brand document for tone."* Stating length, format, and constraints upfront cuts the revision cycle in half. ### Anchor to your data, not general knowledge Sira is strongest when it's reasoning about things it can see. Anchor prompts to specific metrics, specific competitors, specific pages. Avoid generic questions like *"what are best practices for GEO?"* — you'll get generic answers. ### Iterate in the same conversation Sira remembers the current thread. *"Shorter."* *"More skeptical tone."* *"Different angle."* — all work without repeating the brief. Only start a new conversation when you change topics completely. ## High-leverage prompts ### Strategic * *What's my single highest-leverage fix for AI Visibility this week?* * *Which competitor is closing on my SOV fastest, and what should I do about it?* * *Based on my last three reports, write a status update for my leadership team.* ### Analytical * *Compare my Citation Position on Perplexity vs. ChatGPT. What's the gap?* * *Which GEO‑16 pillar has moved the most across my tracked pages in the last month?* * *Which of my current content gaps are also gaps for Competitor X?* ### Writing * *Draft a comparison post targeting \[gap]. Use brand document `Tone of voice`. 1,500 words.* * *Rewrite this paragraph to hit Authority & Trust: \[paragraph].* * *Generate three headline variants for the current draft, each with a different emotional register.* ### Audits * *Audit /pricing against GEO‑16. Give me the top three fixes in ranked order.* * *Which of my product pages are failing Structured Data? List them with the specific issue.* * *Walk me through improving Evidence & Citations on my blog homepage.* ## Brand documents change everything If Sira's writing doesn't sound like you, it's because you haven't told it what "you" sounds like. Upload: * Your brand guidelines (PDF or doc). * A tone-of-voice document, if you have one. * Two or three of your best existing articles, as writing samples. From **Settings → Brand documents**. Sira automatically pulls the relevant sections into its context — you don't need to reference them explicitly. ## Long tasks Some requests — auditing every page on a site, drafting multi-article content plans — don't fit in a streaming response. Sira launches these as **tasks** that run in the background. You'll see a task card appear. Progress updates stream live. You can close the tab and keep working; Sira will email you when the task finishes. ## What Sira *won't* do * **Publish content on your behalf.** Drafts go to your CMS as drafts. The publish button is yours. * **Fabricate data.** If Sira doesn't know the answer, it will say so rather than guess. * **Make irreversible changes.** Sira edits drafts, not your live site or your CMS content. If Sira's response ever feels off — wrong context, wrong website, generic answers — start a fresh conversation. Long threads eventually accumulate noise, and a clean context usually fixes it. ## Related The feature overview. The most common Sira workflow end to end. The GEO Auditor's home base. The other place Sira conversations start. # Videntic Source: https://docs.videntic.com/index The operating system for Generative Engine Optimization. Your customers are no longer starting at Google. They're asking ChatGPT, Perplexity, Gemini, and Claude — and the AI decides who gets mentioned. Videntic tells you whether it's you. These docs cover how Videntic measures AI visibility, how to read the numbers, and how to actually improve them. ## Start here Go from signup to your first AI visibility report in under 15 minutes. Understand what the platform does and who it's built for. The four numbers that summarize your AI visibility. Your AI assistant for GEO strategy, content, and audits. ## What you'll find in these docs * **Getting started** — Sign up, add a website, and run your first analysis. * **Core metrics** — How AI Visibility, Share of Voice, Citation Position, and your GEO‑16 score are calculated and what they mean. * **Features** — A tour of every surface in the app, from the dashboard to blog generation. * **How‑to guides** — Task-focused walkthroughs for the flows you'll use most. * **Integrations** — Connect Shopify, WordPress, and email reporting. * **Plans & billing** — What each plan includes, and how to change yours. * **Reference** — Glossary, FAQ, and troubleshooting. ## How Videntic works, in one paragraph You add a website. Videntic crawls it, indexes its content, and runs representative customer queries through the major LLMs on your behalf. For every response, it records whether your brand was cited, where you appeared, and who was cited instead of you. On a schedule you choose, it re-runs the tests, tracks the trend, audits your site against the GEO‑16 framework, and surfaces the highest-impact content gaps to fill. Sira — your AI agent — can then help you act on what it finds. New to the space? Read [What is GEO?](/getting-started/introduction) first. It takes two minutes and the rest of the docs will make more sense. ## Need help? * Browse [troubleshooting](/troubleshooting/common-issues) and the [FAQ](/troubleshooting/faq). * Email us at [support@videntic.com](mailto:support@videntic.com). * Pro and Max customers have a priority channel in the in-app chat. # Email Source: https://docs.videntic.com/integrations/email How Videntic delivers scheduled reports to your inbox. Videntic uses email as its primary delivery channel for reports. There's no configuration you have to do — if you've scheduled reports and added recipients, delivery is automatic. This page explains how it works and how to troubleshoot when it doesn't. ## What Videntic sends by email * **Scheduled reports** — a PDF plus an inline summary, on the cadence you picked. * **On-demand reports** — when you click **Generate report** from the app. * **Transactional notifications** — verification confirmations, plan changes, integration errors. Videntic does not send marketing email to your tracked recipients. They only receive what you scheduled. ## Sender address Reports are sent from `reports@videntic.com` by default. Transactional email comes from `noreply@videntic.com`. If corporate email filters are rejecting messages, add both `reports@videntic.com` and `noreply@videntic.com` to your allowlist. Most enterprise mail gateways let you do this at the domain level for `@videntic.com`. ## What a report email looks like The email body has a short inline summary with the four headline metrics and the trend since the last report. The full PDF is attached. Most readers skim the inline summary; the PDF is for anyone who wants the detail. A "view online" link in the body opens the report inside the Videntic app — useful for stakeholders who *do* have an account and want to click through to specific widgets. ## Managing recipients Recipients are configured per website, from **Settings → Reporting**. See [Schedule reports](/how-to/schedule-reports) for the walkthrough. Basic plans allow one recipient per website. Pro and Max plans allow unlimited recipients, which makes distribution lists (e.g. `marketing-all@yourcompany.com`) a reasonable choice. ## Delivery reliability Videntic uses a professional transactional email provider, with authenticated sending (SPF, DKIM, and DMARC aligned for the sending domain). In practice this means: * Mail lands in the primary inbox for most mainstream providers (Gmail, Microsoft 365, iCloud). * Some strict corporate gateways may require you to allowlist the sender. * Bounces are surfaced in **Settings → Notifications** so you know when an address stops working. ## Troubleshooting **A recipient isn't getting reports** 1. Confirm the address is listed in **Settings → Reporting → Recipients**. 2. Ask the recipient to check their spam/junk folder. 3. Check **Settings → Notifications** for a bounce message against that address. 4. If the mail server rejected the message, your IT team will need to allowlist `@videntic.com`. **The PDF attachment is stripped** Some corporate gateways remove attachments from external senders. The inline summary in the email body still contains the headline metrics and a deep link to the online version of the report — use that as a fallback, or ask IT to allow PDF attachments from `@videntic.com`. **Duplicate reports** If a recipient appears in multiple places (e.g. direct recipient *and* a distribution list they're on), they'll get duplicates. Deduping happens at the address level, not across lists. **Want to use your own sender domain** Custom sender domains aren't available on self-serve plans. Enterprise customers can ask about custom sending; [contact sales](https://videntic.com/contact) to discuss. ## What email *doesn't* do yet Videntic doesn't currently offer: * Custom email triggers (e.g. *"email me when my SOV drops"*). * Digest emails across multiple websites in one message. * Inbound email (reply-to-send doesn't work; replies go to a monitored support address). Some of these are on the roadmap. If you have a specific need, let support know — it helps prioritize. ## Related What's in every report Videntic sends. Set cadence and manage recipients. Recipient limits and cadence by plan. Broader troubleshooting, including email specifics. # Shopify Source: https://docs.videntic.com/integrations/shopify Connect your Shopify store so Sira can push blog drafts straight into your blog. The Shopify integration gives Sira a one-click path from a content gap to a draft article inside your Shopify store. You keep full control — drafts arrive unpublished and wait for your editorial approval. ## What this unlocks * **One-click drafts** from Content gaps into your Shopify blog. * **Schema.org markup** automatically attached to each draft (Article, FAQ, HowTo where relevant). * **Store context for Sira** — Sira reads your existing products and articles to keep new drafts consistent. ## What you need * A Shopify store on any paid plan. * **Edit products** and **Edit articles** permissions in your Shopify account. * A Videntic plan that includes blog generation (**Pro** or **Max**). ## Connect your store In Videntic, open **Settings → Integrations → Shopify**. Paste your Shopify store URL (e.g. `your-store.myshopify.com` or your custom domain). You'll be redirected to Shopify to approve Videntic's requested permissions. Review and click **Install**. You'll be redirected back to Videntic. The integration card will show **Connected** with the store name. The Shopify integration is per-website. If you track multiple Shopify stores in Videntic, connect each one separately from its website settings. ## What happens when you publish a draft When you click **Publish to Shopify** from inside a draft in Videntic: 1. Videntic creates a new article in your default blog (`news` by default, or the first blog if you've renamed it). 2. The article is created as an **unpublished draft** — it is *not* live on your storefront. 3. The title, body, SEO fields, and schema markup are populated. 4. You get a link to open the draft directly in Shopify for a final pass. You review in Shopify, add a featured image, and click publish when you're ready. ## Data Videntic reads from Shopify To keep Sira's output consistent with your store, Videntic reads: * **Products** — titles, descriptions, pricing, and product types. * **Pages** — static pages (About, Contact, etc.) to understand brand context. * **Articles** — existing blog posts and authors. * **Blogs** — your blog sections, used to decide where drafts go. Videntic does not read customer data, orders, or any financial information. ## Data Videntic writes to Shopify Only article content. Specifically: * Creating new articles as drafts. * Updating articles Videntic previously created (if you edit a Videntic-originated draft in Videntic and re-push). Videntic never touches existing articles it did not create, never edits products, and never publishes articles live on your store. ## Troubleshooting **"Permission denied" on install** Your Shopify role is missing **Edit articles**. Ask a store admin to grant you the permission or install the integration under an admin account. **"Store not found" after clicking Connect** Check the spelling of the store URL. Use the `.myshopify.com` form if your custom domain is giving errors — it's the most reliable. **Draft didn't appear in Shopify after clicking Publish** Check **Content → Drafts** in Shopify under your default blog. If it's missing, look at the draft in Videntic — if the integration status is *Disconnected*, reconnect it and retry. **Draft appeared but formatting is wrong** Shopify strips some HTML attributes (like inline styles) on creation. This usually doesn't affect readability, but if a layout breaks, edit the article in Shopify's rich-text editor — the underlying structure is intact. ## Disconnect Open **Settings → Integrations → Shopify** and click **Disconnect**. Videntic stops publishing to your store and revokes the Shopify access token. Articles already published remain in your store — disconnection does not delete anything. ## Related The full gap-to-published flow. The feature this integration powers. If you're on WordPress instead, or in addition. The Content Creator specialist writes the drafts. # WordPress Source: https://docs.videntic.com/integrations/wordpress Push Sira-drafted blog posts to WordPress as unpublished drafts. The WordPress integration lets Sira send generated blog drafts directly into your WordPress site. Drafts arrive unpublished — your team reviews, edits, and publishes inside WordPress. ## What this unlocks * **One-click drafts** from content gaps to WordPress posts. * **Schema.org markup** automatically attached to each draft. * **Category and author assignment** during the push so drafts arrive in the right place. ## What you need * A self-hosted or managed WordPress site (WordPress 5.6 or later). * A WordPress user with **Editor** or **Administrator** role. * The **Application Passwords** feature enabled. It's on by default in WordPress 5.6+. * A Videntic plan that includes blog generation (**Pro** or **Max**). ## Create an application password WordPress application passwords are separate from your login password. They let integrations post on your behalf without using your main credentials. Log in to WordPress and go to **Users → Profile**. Near the bottom of the profile page. Name it `Videntic` (or anything you'll recognize later). Click **Add New Application Password**. WordPress will show you a one-time password like `abcd 1234 efgh 5678 ijkl 9012`. Copy it now — you won't be able to see it again. If **Application Passwords** isn't visible, it's likely been disabled by a security plugin. Temporarily disable the plugin or ask an admin to enable application passwords for your account. ## Connect from Videntic In Videntic, go to **Settings → Integrations → WordPress**. Paste the full URL (e.g. `https://yourblog.com`). Make sure it's reachable — Videntic pings it to confirm. The login username of the account you created the application password under. Spaces don't matter; paste as-is. Videntic verifies the credentials and marks the integration **Connected**. ## Configure default publishing settings From **Settings → Integrations → WordPress** you can set: * **Default author** — which WordPress user the draft is assigned to. * **Default category** — what category drafts land in. * **Default status** — usually `draft` (leave it here unless you have a review workflow that uses `pending`). You can override any of these when publishing an individual draft. ## What happens when you publish a draft When you click **Publish to WordPress** from inside a draft in Videntic: 1. Videntic creates a new post via the WordPress REST API. 2. The post is created as an **unpublished draft** — it does not appear on your live site. 3. Title, body, excerpt, slug, featured image alt text, and Yoast-compatible SEO fields are populated. 4. Schema.org markup is embedded in the body where appropriate. 5. You get a link to open the draft in WordPress for a final editorial pass. ## Data Videntic reads from WordPress To keep drafts consistent with your site, Videntic reads: * **Posts** — published post metadata (titles, categories, authors) for context. * **Categories and tags** — to assign drafts sensibly. * **Users** — to list available authors in the settings dropdown. Videntic doesn't read comments, user private data, or any WooCommerce order data. ## Data Videntic writes to WordPress Only new posts. Specifically: * Creating new posts as drafts. * Updating posts Videntic previously created (if you re-push an edited draft from Videntic). Videntic never modifies existing posts it didn't create, never deletes content, and never changes status from `draft` to `published` automatically. ## Troubleshooting **"Authentication failed"** The username or application password is wrong. Make sure you're using the *WordPress username* (not the email address), and that the application password hasn't been revoked. **"REST API unreachable"** Some security plugins (Wordfence, iThemes Security, etc.) block the REST API by default. Enable REST API access or temporarily allowlist Videntic's IPs — contact support for the current range. **Draft is missing featured image** Videntic doesn't upload images automatically. Add the featured image inside WordPress during your editorial pass. **Draft's schema markup broke the layout** Some themes override the `
` markup in ways that conflict with schema.org embedding. Switching to a theme-friendly Yoast schema output is usually the fastest fix — contact support if you need specific guidance. ## Disconnect Open **Settings → Integrations → WordPress** and click **Disconnect**. Videntic stops pushing to the site and forgets the stored application password. For extra safety, also revoke the application password from your WordPress profile page. ## Related The full gap-to-published flow. The feature this integration powers. The alternative CMS path. The Content Creator specialist writes the drafts. # AI Visibility Score Source: https://docs.videntic.com/metrics/ai-visibility-score How often your brand is mentioned across the LLM providers you track. **AI Visibility Score** is the headline metric on your dashboard. It answers the core GEO question in one number: *when customers ask an LLM about your category, how often does your brand come up?* ## Overview For every analysis run, Videntic simulates customer queries against the major LLMs and checks each response for a text mention of your brand or domain. It calculates a mention rate for each provider, then averages providers equally. Higher is better. A score of **35%** means one in three AI answers about your topics mentions you — a meaningful position in most categories. ## How AI Visibility is calculated ``` Provider visibility = responses mentioning your brand / responses from that provider × 100 AI Visibility Score = equal-weight mean of provider visibility values ``` A response counts when the answer text contains your brand name, domain, or a known alias recognized by Videntic's mention detection. URL citations are measured separately and do not add weight to this score. The score is computed per run and per model, then aggregated: * **Overall score** — averaged across all models in your plan, weighted evenly. * **Per-model score** — the same metric broken out by ChatGPT, Perplexity, Google AI Overviews, and Gemini (where included in your plan). Providers that produced no responses are excluded from the overall mean rather than counted as 0. Per-model scores often tell you more than the average. It's common to be strong on one model and weak on another, because each one sources information differently. ## How to read the number Scores fall into four human-readable tiers: | Tier | Range | What it means | | ----------------------- | ------ | --------------------------------------------------------------------------------------------------------- | | **Building visibility** | 0–5% | You're invisible in most AI answers. Focus on content gaps and baseline GEO‑16 fixes. | | **Gaining traction** | 5–15% | You show up in a meaningful minority of answers. Work on quality (Citation Position) and coverage. | | **Well positioned** | 15–35% | You're a recurring answer in your category. Consolidate wins and defend against competitors. | | **Category leader** | 35%+ | LLMs consistently mention you. At this point, the lever is depth — richer content, more specific queries. | Benchmarks vary by category. In high-competition consumer categories, 35% is excellent. In niche B2B domains, 60%+ is achievable. ## Why AI Visibility matters ### Business lens: demand capture A rising share of research and purchase decisions is now happening inside AI assistants. Every prompt where you're *not* cited is a prospect who saw a competitor's answer instead. ### Marketing lens: channel measurement AI visibility is to GEO what keyword rankings were to SEO. If you can't measure it, you can't report on it, budget for it, or defend its value internally. ### Product lens: positioning Which queries you win tells you how the market *frames* your product. If you win "best CRM for startups" but lose "CRM with advanced workflows", the LLMs — trained on the open web — are telling you something real about your brand's current associations. ## How to improve it In rough order of leverage: 1. **Fix GEO‑16 pillars** flagged red on your audit, especially Structured Data, Evidence & Citations, and Metadata & Freshness. These are the baseline requirements for being quoted. 2. **Publish content targeting your top content gaps**. Videntic ranks gaps by impact; start from the top. 3. **Work on Citation Position**. Being cited 5th is worth less than being cited 1st. See [Citation Position](/metrics/citation-position) for why. 4. **Expand to under-served LLMs**. Your per-model breakdown will show you which model you're weakest on; often one content fix lifts all four. ## Related metrics Same data, but normalized against your tracked competitors. How prominent your mention is when you are cited. The on-site signals that drive citation likelihood. Prompts where you're missing. The biggest lever for AI Visibility. # Citation Position Source: https://docs.videntic.com/metrics/citation-position How early and prominently your brand appears in LLM responses that cite you. **Citation Position** measures the quality of the citations you do earn. Being mentioned first in an LLM's answer is very different from being mentioned fifth — users tend to skim, and the first brand frames the entire response. ## Overview For every response that cites you, Videntic records where in the answer you appeared — first mention, second, third, and so on — and averages those positions over time. Lower is better: an average position of **1.0** means you're consistently the first brand named. Citation Position only includes responses where you were cited. If your AI Visibility is 20%, Citation Position is computed over that 20% — not over every run. ## How Citation Position is calculated ``` Citation Position = average(position of first mention) across all responses where you were cited ``` For each qualifying response, Videntic finds where your brand appears in the cited sources or the narrative, records its ordinal position (1 = first, 2 = second, etc.), and averages the values per run. Like the other metrics, it's computed per model and overall. A strong overall score with a weak per-model score on Perplexity often means Perplexity is surfacing a competitor ahead of you — a targeted problem to solve. ## How to read the number Roughly: * **1.0–1.5** — You're consistently the first or second citation. Category leader behaviour. * **1.5–2.5** — You're in the top tier but often sharing the answer. Normal for competitive categories. * **2.5+** — You're regularly cited but buried. Work on authority and structured data. Users read answers top-down and rarely click every source. A meaningful share of real-world intent goes to whichever brand is named first. ## Why Citation Position matters ### Conversion lens: attention hierarchy The first brand mentioned gets the most narrative weight, the most perceived authority, and — where the LLM surfaces clickable sources — the most clicks. Position 1 and position 5 are not equivalent citations. ### Competitive lens: share within share You can have healthy AI Visibility and healthy Share of Voice and still lose the category narratively because a competitor is always cited *first*. Citation Position surfaces that. ### Content lens: canonical authority When your domain is cited *first*, it tells you the LLM treats you as the canonical source for that query. That's the GEO equivalent of owning a keyword — and it's defensible. ## How to improve it Citation Position tracks authority signals more than coverage. Improving it is slower than fixing AI Visibility but pays off longer. 1. **Invest in GEO‑16 Authority & Trust**. About, Team, Policies, citations of your own work — these are the pillars LLMs weight when deciding who's the primary source. 2. **Ship structured data**. Well-marked articles, products, and FAQs make you easier to quote cleanly, which models prefer. 3. **Earn real references**. Being cited by high-authority external pages (docs, research, reputable press) still matters — LLMs learned from the web, and that hierarchy carried over. 4. **Be the definitive answer, not a footnote**. Publish full explanations on canonical pages, not scattered across short posts. Depth wins position. Position gains lag content changes by one or two analysis cycles, because LLMs need to re-encounter updated pages before citations shift. ## Related metrics Whether you're cited. Position is the quality layer on top. Your slice of citations versus competitors. The on-site authority signals that drive Citation Position. See which competitors tend to be cited ahead of you, per model. # Core metrics Source: https://docs.videntic.com/metrics/overview The four numbers that summarize your AI visibility. Videntic reports four headline metrics. Together they tell you *whether* you're visible in AI search, *how well* you're positioned when you are, *who else is being cited*, and *whether your site is technically ready* to be cited more. ## The four metrics The share of tracked prompts where your brand is cited, across all LLMs. Your citations divided by total citations of tracked competitors. How early you appear when you *are* cited. First mention vs. fifth is a big deal. Technical readiness for citation, scored against 16 pillars. ## How they fit together Think of them as four lenses on the same question — *are LLMs citing you when they should?* * **AI Visibility Score** is your headline result: *do they cite you at all?* * **Share of Voice** normalizes that against your competitors: *how does that compare to the rest of the market?* * **Citation Position** measures quality: *when you're cited, are you the star or the footnote?* * **GEO‑16 Score** — from your [GEO audit](/features/geo-audit) — measures cause: *is your site set up to be quoted by models?* You can move AI Visibility and Share of Voice by publishing better content or fixing technical issues flagged by the GEO audit. Citation Position is slower to shift and usually tracks alongside authority and structured-data improvements. None of these metrics are "one shot". They're tracked over time, per LLM, per website. The trend is what matters — a single report is a snapshot, not a verdict. ## Reading a report Every report shows the four metrics at the top, with: * **Current value** — what the most recent run measured. * **Trend** — change since the previous run, coloured up or down. * **Per-model breakdown** — the same metric computed separately for ChatGPT, Perplexity, Google AI Overviews, and Gemini, so you can spot model-specific gaps. Below the headline, the report surfaces your **top content gaps** and your **GEO‑16 pillar breakdown** — the actionable part. See [Dashboard](/features/dashboard) for a tour. ## What to look at first If you're reading your first report, start here: 1. **AI Visibility Score** — establishes your baseline. 2. **Citation Position** — tells you whether the citations you *do* get are meaningful. 3. **[GEO audit](/features/geo-audit)** — points at what to fix on-site. 4. **Share of Voice** — contextualizes everything against competitors. Then dig into individual content gaps. That's where action happens. ## Related Where these metrics live in the app. Every term used in a metric, defined. # Share of Voice Source: https://docs.videntic.com/metrics/share-of-voice Your brand mentions as a share of the competitive mention pool. **Share of Voice** (SOV) is the competitive version of AI Visibility. Instead of asking *are you cited?*, it asks *of all the brands being cited in your space, how much of the airtime is yours?* ## Overview For every provider, Videntic records brand mentions in the LLM response — yours and every tracked competitor's. SOV is your slice of that provider's competitive mention pool. SOV is a **relative** metric. If every brand in your category disappears from AI search, yours included, your SOV can stay flat while AI Visibility collapses. Always read it alongside AI Visibility. ## How Share of Voice is calculated ``` Provider SOV = your mentions / (your mentions + tracked-competitor mentions) × 100 Overall SOV = equal-weight mean of non-empty provider SOV values ``` The denominator includes your brand plus every domain on your **Tracked Competitors** list — both the ones you add manually and the ones Videntic auto-detects from past runs. Uncategorized sources (UGC, news, reference sites) are excluded; SOV is a brand-vs-brand measure. SOV is computed per run and per provider. Providers with an empty competitive pool carry no signal and are excluded from the overall mean rather than counted as 0. Provider market weights do not affect canonical SOV. ## How to read the number Good benchmarks depend on how many competitors you track and how concentrated your category is. Rough guidance: | You track | Healthy SOV | | ---------------- | ----------- | | 1–2 competitors | 40%+ | | 3–5 competitors | 25%+ | | 6–10 competitors | 15%+ | More important than the absolute number is the **trend** — is your slice of the pie growing or shrinking, and at whose expense? The SOV chart on the dashboard stacks every tracked brand so you can see the handoff: if you gained 5 points and your nearest competitor lost 5, you know exactly where the gain came from. ## Why Share of Voice matters ### Business lens: competitive positioning AI Visibility can rise on a growing tide — the whole category becoming more visible in LLMs. SOV strips out the tide and shows whether you're winning the category or just benefiting from it. ### Strategy lens: content attack plan SOV points at *specific* competitors to take market share from. If "Competitor X" dominates prompts about "onboarding" and you're absent, you have a targeted content brief. ### Exec lens: share narrative Board and leadership audiences understand market share intuitively. SOV translates AI visibility into a story they already know how to interpret. ## How to improve it 1. **Audit the competitors outgunning you**. Click a dominant competitor in the SOV chart to see which prompts they're winning. That list *is* your content roadmap. 2. **Refine your competitor list**. Auto-detection may include UGC or media sites that shouldn't count as competitive. Promote real rivals, demote the rest. See [Manage competitors](/how-to/manage-competitors). 3. **Win citation-quality, not just citation-count**. A first-position mention is worth more narrative weight than a fifth-position one. Pair SOV work with Citation Position work. If your SOV is very high but AI Visibility is low, you're the biggest fish in a small pond — your category simply isn't being discussed much in AI search yet. That's a content-creation opportunity, not a competitive threat. ## Related metrics The absolute version of SOV. How the citations you earn are weighted. How to add, classify, and review your competitor set. Prompts your competitors are winning that you aren't. # Common issues Source: https://docs.videntic.com/troubleshooting/common-issues The handful of issues that account for most support tickets, and how to fix them. The top problems customers hit during setup and normal operation, each with the fix. If yours isn't here, check the [FAQ](/troubleshooting/faq) or email [support@videntic.com](mailto:support@videntic.com). ## Website verification ### "Verification failed" when I know the tag is there Almost always one of four causes: * **The page is cached by a CDN.** Purge the CDN cache (or wait for TTL) and retry. Cloudflare, Fastly, and Akamai all cache HTML aggressively by default. * **The tag is in `` instead of ``.** Move it into `` — many CMS block editors default to body injection. * **Your homepage redirects.** If `example.com` redirects to `www.example.com` (or the other way), add the canonical version as the website URL in Videntic. * **Your site is gating the page behind an interstitial** (cookie banner, geo wall, bot protection). Add Videntic's verification path or IP range to your bot protection's allowlist. ### "File upload" method returns 404 on check The verification file needs to be reachable at `https://yourdomain.com/` — at the root. Placing it in `/public/` locally works if your framework serves `public/` at the root (Next.js, Nuxt, most static generators). If your build puts it elsewhere, adjust the deploy path and re-verify. ### Verification worked but crawl didn't start Give it a minute. If the crawl hasn't started within ten minutes, try adding the site again — most of the time it's a one-off transient and a retry gets you moving. ## Running an analysis ### Analysis is stuck at "running" for more than 15 minutes Our pipeline times out per-step, so a run should never hang forever. If yours has: 1. Refresh the page — the progress indicator occasionally goes stale even though the run completed. 2. Check **Settings → Notifications** for any error messages attached to the run. 3. If nothing has resolved after 20 minutes, email support with the website name and approximate start time. ### "Prompt limit reached" error Your **prompt library** is full — you've hit the number of active prompts your plan allows (25 on Basic, 100 on Pro, 200 on Max). This is a cap on how many prompts you can keep active at once, not a monthly run allowance. Options: * **Deactivate a prompt** you no longer need — this frees a slot while keeping its history, and you can reactivate it later. * **Delete a prompt** to remove it permanently. * **Upgrade to a higher plan** for more slots — takes effect immediately. See [Plans & billing](/billing/plans) for the prompt library size on each plan. ### Analysis results look wildly different between runs Some variance is normal — LLMs aren't deterministic, and Perplexity especially can be noisy run-to-run. That said, a 20%+ swing in AI Visibility between adjacent runs usually means: * One of the LLMs had downtime or degraded quality during the run (rare, but happens). * Your site changed significantly (e.g. migration, CDN issue) between runs. * Your prompt set changed — did you edit keywords or target audience? Compare the per-model breakdown: if one model swung hard and the others held steady, it's probably that one model's volatility rather than a real visibility change. ## Reports and email ### A recipient isn't getting reports 1. Confirm the address is listed in **Settings → Reporting → Recipients**. 2. Ask the recipient to check spam/junk. 3. Check **Settings → Notifications** for a bounce against that address. 4. If there's a bounce, the fix is usually on the recipient's mail server — add `reports@videntic.com` to their allowlist or remove the forwarding rule that's dropping the mail. ### The PDF is stripped from my emails Some corporate mail gateways strip attachments from external senders. The email body contains an inline summary plus a link to view the report online. If you need the PDF, ask IT to allow PDF attachments from `@videntic.com`. ### Reports are empty or missing sections Usually means the analysis hasn't completed yet. Check the analysis run status on the website dashboard — if it's still running, the report generated against incomplete data. Re-run the analysis and regenerate the report. ## Sira ### Sira is writing generic or off-brand content Upload at least one **brand document** (guidelines, tone-of-voice, a best-in-class past article) and ask Sira to try again. The drafts Sira produces without any brand context are necessarily generic — it has nothing to anchor to. See [Work with Sira](/how-to/work-with-sira#brand-documents-change-everything). ### Sira is answering about the wrong website Check the website switcher in the top-left of the chat. Sira's context is scoped to the currently selected site. Switch, then rephrase the question. ### A Sira task has been running for an hour Long tasks — full-site audits, multi-article content plans — can take that long. Check the task card in the conversation for progress. If it's clearly stuck (no progress messages for 15+ minutes), email support with the task ID. ## Integrations ### Shopify install fails with "Permission denied" Your Shopify role needs **Edit articles**. Either ask an admin to grant it, or install the integration under an admin account. ### WordPress says "Authentication failed" Two common causes: * You entered your *email address* where the username field is — WordPress needs the username. * A security plugin (Wordfence, iThemes) is blocking REST API access. Allowlist Videntic, or temporarily disable the plugin to test. ### Drafts appear in the wrong blog/category Set the default blog (Shopify) or default category (WordPress) in the integration settings. Videntic pushes there unless you override per-draft. ## Billing ### Downgrade didn't take effect Downgrades take effect at the end of the current billing cycle, not immediately. Until then, you keep your higher-tier features. This is intentional so you don't lose what you paid for. ### I was charged after cancelling Check the charge date — Stripe sometimes processes a final renewal charge if the cancel happened after the billing cutover. Email [billing@videntic.com](mailto:billing@videntic.com) with the invoice number and we'll review. ### "Payment failed" notification but my card works fine Usually a 3D Secure / SCA challenge your bank issued that wasn't completed. Go to **Settings → Billing → Manage billing in Stripe** and retry the latest invoice — the portal will walk you through authentication. ## Still not working? If the fix here doesn't solve your problem — or the issue isn't listed — email [support@videntic.com](mailto:support@videntic.com) with: * The website name / URL affected. * The approximate time it happened. * A screenshot if the error is visual. * What you'd already tried. We usually reply within a business day; Pro and Max customers get priority support. # FAQ Source: https://docs.videntic.com/troubleshooting/faq Common questions about Videntic — product, data, billing, and privacy. Short answers to the questions that come up most often. For anything that's not here, email [support@videntic.com](mailto:support@videntic.com). ## Product ### How is Videntic different from a regular SEO tool? Traditional SEO tools track where you rank in Google's organic search results. Videntic tracks whether LLMs — ChatGPT, Perplexity, Gemini, Claude — cite you in their answers. The techniques that move Google rankings don't automatically move AI visibility; Videntic measures the new channel, audits your site for it, and tells you how to improve. ### How often does Videntic re-run my analyses? Depends on your plan's cadence. Daily scheduled analysis is available on Pro, Max, and Enterprise; Basic runs twice weekly (Monday & Thursday). You can also run an analysis on demand at any time. Report delivery cadence is configured per website in Settings → Reporting. ### Can I run an analysis on demand? Yes. Click **Run analysis** from the dashboard any time. An on-demand run executes your active prompt library — it doesn't draw down a separate monthly budget. ### Which LLMs does Videntic test against? ChatGPT, Perplexity, Google AI Overviews, and Gemini. The list evolves as AI search evolves; we prioritize the models real customers ask our customers' categories about. ### How long before I see results after publishing a new blog post? Usually one to two analysis cycles. LLMs need to re-encounter the new page in their crawl or index before citations shift, so expect 1–3 weeks depending on the model. Perplexity tends to pick up new content fastest; ChatGPT is slower. ### Does Videntic publish content on my behalf? No. Sira can draft content and push it to Shopify or WordPress as an **unpublished draft**. The final publish action is always yours. ## Data and privacy ### Does Videntic train AI models on my data? No. Your content, your analyses, your drafts, and your uploaded brand documents are used only to serve your workspace. They're not used to train shared models or any other customer's data. ### Where is my data stored? In the EU. Our infrastructure runs in European data centers and we use EU-hosted subprocessors where available (see our [privacy page](https://videntic.com) for the current list). ### Can I delete my data? Yes. Cancelling your subscription keeps your data accessible so you can pick up later. If you want permanent deletion, email [support@videntic.com](mailto:support@videntic.com) and we'll wipe your account — permanent action, no undo. ### Who can see my data inside Videntic? Your workspace is private to the accounts invited to it. Videntic employees can only access customer data with explicit permission for support purposes and under audit. A small number of senior engineers have standing access to production for incident response. ## Billing ### How does the free trial work? Every new account gets a **7-day free trial** of a paid plan. You pick Basic, Pro, or Max at signup and get full access to that plan — including its prompt library size, competitor slots, and features — for the length of the trial. You won't be charged until the trial ends, and you can switch plans or cancel any time before then. See [Plans](/billing/plans). ### Can I change plans later? Yes, any time. Upgrades are prorated and take effect immediately. Downgrades take effect at the end of the current billing cycle. See [Managing your subscription](/billing/managing-your-subscription). ### Do you offer annual billing? Yes, for Max and Enterprise plans. Email [billing@videntic.com](mailto:billing@videntic.com). ### What happens if my payment fails? Stripe retries on its standard schedule, and Videntic gives you a \~7-day grace period with full access after the last retry fails. You won't suddenly lose access on a failed charge. ### Does Videntic charge VAT? Yes, where applicable. Invoices include VAT for EU customers. Add your VAT ID in the Stripe Customer Portal (Settings → Billing → Manage billing in Stripe) to get it reflected on invoices. ## Team and access ### Can I invite my teammates? Team accounts are rolling out gradually. For now, every Videntic account is single-user. Reports can be emailed to an unlimited number of recipients (on Pro and Max), so stakeholders can follow progress without a login. ### Can my agency manage multiple clients from one account? Today, each client would need their own Videntic account. Multi-client agency features are on the roadmap — [contact us](https://videntic.com/contact) if you want to talk about your use case. ## Integrations ### Which CMSes do you support? Shopify and WordPress. See [Shopify](/integrations/shopify) and [WordPress](/integrations/wordpress) for setup. ### Do you integrate with Google Analytics? Not directly yet. We're evaluating a GA integration that would let Videntic correlate AI visibility with downstream traffic. If that would be valuable to you, let support know. ### Can I export my data to Looker / BigQuery / a warehouse? Not yet. Reports export as PDF; programmatic data export is on the roadmap. For urgent needs, email support. ## Still stuck? [Email support](mailto:support@videntic.com). We typically respond within a business day; Pro and Max customers get priority support with a faster SLA.