Analytics

Get content gaps

Get content gap opportunities. By default the response EXCLUDES dismissed, completed and auto_resolved opportunities; pass ?status= to request them explicitly. The default response also EXCLUDES rows judged off-strategy - no cluster fit and no evidence from a CONFIRMED competitor (competitor URLs belonging to competitors still awaiting your review do not count, and relevance.reason then reads 'a competitor ranks for it, but that competitor is awaiting your review'); pass ?include_off_strategy=true to include them. competitor_urls is filtered to confirmed competitors' hosts. Requesting a terminal status (completed, dismissed, auto_resolved) always returns the full set for that status - a strategy filter never hides history. An unrecognized status or type value returns 400 rather than being ignored.

2026-08-17 - Competitors are confirmed, not assumed

BREAKING for default result sets: rows whose only competitor evidence belongs to unconfirmed competitors now default-exclude as off-strategy, and competitor_urls no longer includes unconfirmed competitors' hosts. Confirm competitors in Brand Hub to restore their evidence.

get/analytics/gaps

Request

  • Base URL: https://next.frase.io/api/v1
  • URL: https://next.frase.io/api/v1/analytics/gaps
  • Auth: one of:
    • API key in header X-API-KEY
    • HTTP bearer

Query parameters

pageinteger
page_sizeinteger
site_idstring uuid
status'new' | 'reviewed' | 'in_progress' | 'dismissed' | 'completed' | 'auto_resolved'

Filter by a single status. Omit for the default view, which excludes dismissed, completed and auto_resolved.

type'missing_content' | 'thin_content' | 'outdated_content' | 'competitor_gap'
include_off_strategyboolean

Include rows the default response filters out as off-strategy. Empty means not supplied; any other non-boolean value returns 400.

Response

Content gaps

request_idstring

Changes

No recorded changes to this operation across all 1 revision of this API.