{"openapi":"3.1.0","info":{"title":"Refinea Public API","description":"Refinea Public API — interactive endpoint explorer. Full documentation at [/public/docs](/public/docs).","version":"1.0.0"},"paths":{"/public/domains":{"get":{"tags":["Domains"],"summary":"List the domains tracked under your account","description":"Returns the domains your account monitors with their brand identifiers (`brand_name`, `aliases`). Internal pipeline state, integration status, and per-domain sentiment snapshots are not exposed — fetch sentiment via `/public/domains/{domain_id}/sentiment/timeseries` instead.","operationId":"public_index_domains_public_domains_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDomainCollection"}}}}}}},"/public/domains/{domain_id}/mentions-aggregate":{"get":{"tags":["Mentions"],"summary":"Aggregate brand & competitor mention metrics for a domain","description":"Returns pre-computed share-of-voice and competitor ranking metrics for the given domain over the chosen time window. Includes totals, per-competitor counts, per-provider breakdowns, and an optional per-day rollup when `group_by=date` is set.\n\n**Time window**: pass `days=N` for a quick *last-N-days* window (today minus N days to now), or pass `from` / `to` (ISO 8601) for an explicit range. When both are supplied, `days` wins.\n\nFilter the per-provider breakdown by `provider` (repeat the parameter for multiple values, e.g. `provider=chat_gpt&provider=claude`). Scope to a specific prompt type with `layer` (`generic` or `persona`).","operationId":"public_mentions_aggregate_public_domains__domain_id__mentions_aggregate_get","parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To"}},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"description":"Shortcut for 'last N days'. Overrides `from`/`to` when both supplied.","title":"Days"},"description":"Shortcut for 'last N days'. Overrides `from`/`to` when both supplied."},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Provider"}},{"name":"layer","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(persona|generic)$"},{"type":"null"}],"description":"Filter by prompt type.\n- `generic` — broad industry questions (e.g. \"best CRM software\")\n- `persona` — questions from a specific buyer persona (e.g. \"best CRM for a sales director\")\n- omit for combined results","title":"Layer"},"description":"Filter by prompt type.\n- `generic` — broad industry questions (e.g. \"best CRM software\")\n- `persona` — questions from a specific buyer persona (e.g. \"best CRM for a sales director\")\n- omit for combined results"},{"name":"group_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"'date' returns a by_date rollup","title":"Group By"},"description":"'date' returns a by_date rollup"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMentionsAggregate"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/domains/{domain_id}/mentions":{"get":{"tags":["Mentions"],"summary":"List individual brand mentions extracted from LLM responses","description":"Returns paginated brand mentions (quote, polarity, confidence, theme, the model that generated the response, and the `question` the prompt asked) for the given domain. Results are ordered by `created_at` descending (most recent first).\n\n**Pagination** is cursor-based: pass the `next_cursor` from a previous response back as the `cursor` query parameter to fetch the next page. **`next_cursor` is `null` when there are no more results.**\n\nFilter by `polarity` (`positive` / `neutral` / `negative`) or `min_confidence` (0.0 - 1.0).","operationId":"public_list_mentions_public_domains__domain_id__mentions_get","parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"polarity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"positive | neutral | negative","title":"Polarity"},"description":"positive | neutral | negative"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"min_confidence","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"default":0.0,"title":"Min Confidence"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMentionsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/domains/{domain_id}/sentiment/timeseries":{"get":{"tags":["Sentiment"],"summary":"Daily sentiment rollup for a domain","description":"Returns daily buckets of brand-mention polarity counts (positive, neutral, negative, and total) for the given domain. Days with zero mentions are omitted from `buckets`.\n\n**Time window**: pass `days=N` for a quick *last-N-days* window (today minus N days to now), or pass `from` / `to` (ISO 8601) for an explicit range. When both are supplied, `days` wins.","operationId":"public_sentiment_timeseries_public_domains__domain_id__sentiment_timeseries_get","parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To"}},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"description":"Shortcut for 'last N days'. Overrides `from`/`to` when both supplied.","title":"Days"},"description":"Shortcut for 'last N days'. Overrides `from`/`to` when both supplied."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSentimentTimeseries"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/domains/{domain_id}/prompts-metrics":{"get":{"tags":["Prompts"],"summary":"Per-prompt metrics across LLM providers (snapshot or aggregate)","description":"For each active prompt tracked on the domain, returns metrics across LLM providers. The response shape depends on whether `days` is supplied — two distinct modes that callers should branch on.\n\n## Snapshot mode (default — `days` omitted)\nReturns the **latest run ever** per (prompt, provider), with no time window. Each item carries:\n- `visible_on` — booleans per provider for whether the brand showed up in that latest run\n- `sources_count_by_model`, `search_queries_count_by_model`\n- `details_by_provider` — the raw extraction payload (`target_mention` + ranked `competitors`)\n\n**`position` (inside `details_by_provider.<provider>.target_mention`) is a 1-based ordinal rank** (`1` = mentioned first, `null` = not mentioned in that response).\n\n## Aggregate mode (`days=N`)\nAggregates **all runs in the last N days** per (prompt, provider). Each item carries an `aggregation` block (`days`, `period.from`, `period.to`) and a `by_provider` map with:\n- `total_runs` — runs observed in the window\n- `visible_count` — runs where the brand was mentioned\n- `visibility_rate` = `visible_count / total_runs`\n- `position_avg` — mean 1-based position over runs where the brand was mentioned (skips non-mentioning runs; `null` if none mentioned)\n\n## Filters\n`layer` works in both modes: `generic` for broad industry questions, `persona` for buyer-persona questions, omit for combined.","operationId":"public_prompts_metrics_public_domains__domain_id__prompts_metrics_get","parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"description":"Switches response shape:\n- omit → **snapshot mode**, latest run ever per (prompt, provider)\n- `N` → **aggregate mode**, counts/rates over the last N days (max `365`)","title":"Days"},"description":"Switches response shape:\n- omit → **snapshot mode**, latest run ever per (prompt, provider)\n- `N` → **aggregate mode**, counts/rates over the last N days (max `365`)"},{"name":"layer","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(persona|generic)$"},{"type":"null"}],"description":"Filter by prompt type.\n- `generic` — broad industry questions (e.g. \"best CRM software\")\n- `persona` — questions from a specific buyer persona (e.g. \"best CRM for a sales director\")\n- omit for combined results","title":"Layer"},"description":"Filter by prompt type.\n- `generic` — broad industry questions (e.g. \"best CRM software\")\n- `persona` — questions from a specific buyer persona (e.g. \"best CRM for a sales director\")\n- omit for combined results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/domains/{domain_id}/overview":{"get":{"tags":["Domains"],"summary":"Single-call domain summary for client reports","description":"Consolidates the most-used metrics for a domain into one response so a report can be rendered with a single API call:\n\n- **Domain identity** (`domain.name`, `domain.brand_name`)\n- **Visibility totals** over the window: `sov`, `visibility_rate` (alias of `sov`), `target_position_avg`, `total_analyses`\n- **Sentiment snapshot** (latest aggregate stored on the domain)\n- **Top 5 competitors** by `mention_count`\n- **`visibility_by_provider`**: per-provider SOV and average position\n- **`prompts_coverage`**: how many tracked prompts produced at least one visible mention on any / all providers in the window\n\nUse `days` (default `30`, max `365`) to set the lookback window. Internally calls the same paths used by `/mentions-aggregate` and `/prompts-metrics` so numbers always agree across endpoints.","operationId":"public_domain_overview_public_domains__domain_id__overview_get","parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDomainOverview"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/domains/{domain_id}/sources":{"get":{"tags":["Prompts"],"summary":"URLs cited in LLM answers, grouped per prompt × provider","description":"For each active prompt, returns the **URLs cited by each LLM** in its response over the last `days`. Sources are flattened across all runs of a (prompt, provider) in the window and grouped by URL; each entry carries a raw `count` of how many times the URL was cited in that window. The first observed `title` wins. Entries are sorted by `count` descending; ties keep first-seen order.\n\nUse this to audit which third-party pages each model is grounding its brand answers on, or to feed an outreach pipeline.\n\n## Parameters\n- `days` — lookback window in days (1-365, default `7`).\n- `provider` — restrict to a single LLM (`chat_gpt`, `claude`, `gemini`, `perplexity`). Omit to include all.","operationId":"public_prompts_sources_public_domains__domain_id__sources_get","parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":7,"title":"Days"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(chat_gpt|claude|gemini|perplexity)$"},{"type":"null"}],"description":"Filter to a single provider. One of `chat_gpt`, `claude`, `gemini`, `perplexity`.","title":"Provider"},"description":"Filter to a single provider. One of `chat_gpt`, `claude`, `gemini`, `perplexity`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPromptSources"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/public/domains/{domain_id}/search-queries":{"get":{"tags":["Prompts"],"summary":"Search queries each LLM generated to ground its answer","description":"For each active prompt, returns the **search queries each LLM fanned out** to web search before composing its answer, over the last `days`. Queries are grouped case-insensitively within each provider; each entry carries a raw `count` of how many times the query was used in that window. First-seen casing is preserved. Entries are sorted by `count` descending.\n\nUseful for understanding what an LLM thought the user was really asking — and which keyword variants are worth optimizing for.\n\n## Parameters\n- `days` — lookback window in days (1-365, default `7`).\n- `provider` — restrict to a single LLM (`chat_gpt`, `claude`, `gemini`, `perplexity`). Omit to include all.","operationId":"public_prompts_search_queries_public_domains__domain_id__search_queries_get","parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":7,"title":"Days"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(chat_gpt|claude|gemini|perplexity)$"},{"type":"null"}],"description":"Filter to a single provider. One of `chat_gpt`, `claude`, `gemini`, `perplexity`.","title":"Provider"},"description":"Filter to a single provider. One of `chat_gpt`, `claude`, `gemini`, `perplexity`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPromptSearchQueries"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PublicCompetitor":{"properties":{"canonical_name":{"type":"string","title":"Canonical Name"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"mention_count":{"type":"integer","title":"Mention Count"},"analyses_appeared_in":{"type":"integer","title":"Analyses Appeared In"},"first_position_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"First Position Avg"},"by_provider":{"additionalProperties":{"$ref":"#/components/schemas/PublicCompetitorByProvider"},"type":"object","title":"By Provider"}},"type":"object","required":["canonical_name","mention_count","analyses_appeared_in"],"title":"PublicCompetitor"},"PublicCompetitorByProvider":{"properties":{"analyses_appeared_in":{"type":"integer","title":"Analyses Appeared In","default":0},"mention_count":{"type":"integer","title":"Mention Count","default":0}},"type":"object","title":"PublicCompetitorByProvider"},"PublicDateBucket":{"properties":{"analyses":{"type":"integer","title":"Analyses"},"analyses_with_target":{"type":"integer","title":"Analyses With Target"},"sov":{"type":"number","title":"Sov"},"target_position_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Position Avg"},"by_provider":{"additionalProperties":{"$ref":"#/components/schemas/PublicDateProviderBucket"},"type":"object","title":"By Provider"}},"type":"object","required":["analyses","analyses_with_target","sov"],"title":"PublicDateBucket"},"PublicDateProviderBucket":{"properties":{"analyses":{"type":"integer","title":"Analyses"},"analyses_with_target":{"type":"integer","title":"Analyses With Target"},"sov":{"type":"number","title":"Sov"},"target_position_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Position Avg"}},"type":"object","required":["analyses","analyses_with_target","sov"],"title":"PublicDateProviderBucket"},"PublicDomain":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url"},"brand_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Name"},"aliases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Aliases"}},"type":"object","required":["id","name","url"],"title":"PublicDomain"},"PublicDomainCollection":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PublicDomain"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"PublicDomainCollection"},"PublicDomainOverview":{"properties":{"domain":{"$ref":"#/components/schemas/PublicDomainSummary"},"sov":{"type":"number","title":"Sov"},"target_position_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Position Avg"},"total_analyses":{"type":"integer","title":"Total Analyses"},"visibility_rate":{"type":"number","title":"Visibility Rate"},"sentiment":{"anyOf":[{"$ref":"#/components/schemas/PublicOverviewSentiment"},{"type":"null"}]},"top_competitors":{"items":{"$ref":"#/components/schemas/PublicTopCompetitor"},"type":"array","title":"Top Competitors"},"visibility_by_provider":{"additionalProperties":{"$ref":"#/components/schemas/PublicVisibilityByProvider"},"type":"object","title":"Visibility By Provider"},"prompts_coverage":{"$ref":"#/components/schemas/PublicPromptsCoverage"}},"type":"object","required":["domain","sov","total_analyses","visibility_rate","prompts_coverage"],"title":"PublicDomainOverview"},"PublicDomainSummary":{"properties":{"name":{"type":"string","title":"Name"},"brand_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Name"}},"type":"object","required":["name"],"title":"PublicDomainSummary"},"PublicMention":{"properties":{"quote":{"type":"string","title":"Quote"},"polarity":{"type":"string","enum":["positive","neutral","negative"],"title":"Polarity"},"confidence":{"type":"number","title":"Confidence"},"theme":{"type":"string","title":"Theme"},"rationale":{"type":"string","title":"Rationale"},"question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["quote","polarity","confidence","theme","rationale","created_at"],"title":"PublicMention"},"PublicMentionsAggregate":{"properties":{"period":{"$ref":"#/components/schemas/PublicPeriod"},"totals":{"$ref":"#/components/schemas/PublicTotals"},"by_provider":{"additionalProperties":{"$ref":"#/components/schemas/PublicProviderAggregate"},"type":"object","title":"By Provider"},"competitors":{"items":{"$ref":"#/components/schemas/PublicCompetitor"},"type":"array","title":"Competitors"},"by_date":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/PublicDateBucket"},"type":"object"},{"type":"null"}],"title":"By Date"}},"type":"object","required":["period","totals","by_provider","competitors"],"title":"PublicMentionsAggregate"},"PublicMentionsPage":{"properties":{"mentions":{"items":{"$ref":"#/components/schemas/PublicMention"},"type":"array","title":"Mentions"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["mentions"],"title":"PublicMentionsPage"},"PublicOverviewSentiment":{"properties":{"score":{"type":"number","title":"Score"},"label":{"type":"string","enum":["positive","neutral","negative"],"title":"Label"},"total_mentions":{"type":"integer","title":"Total Mentions"},"positive_count":{"type":"integer","title":"Positive Count"},"neutral_count":{"type":"integer","title":"Neutral Count"},"negative_count":{"type":"integer","title":"Negative Count"}},"type":"object","required":["score","label","total_mentions","positive_count","neutral_count","negative_count"],"title":"PublicOverviewSentiment"},"PublicPeriod":{"properties":{"from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From"},"to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To"}},"type":"object","title":"PublicPeriod"},"PublicPromptSearchQueries":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PublicPromptSearchQueriesItem"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"PublicPromptSearchQueries"},"PublicPromptSearchQueriesItem":{"properties":{"question":{"type":"string","title":"Question"},"queries_by_provider":{"additionalProperties":{"items":{"$ref":"#/components/schemas/PublicSearchQuery"},"type":"array"},"type":"object","title":"Queries By Provider"}},"type":"object","required":["question"],"title":"PublicPromptSearchQueriesItem"},"PublicPromptSources":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PublicPromptSourcesItem"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"PublicPromptSources"},"PublicPromptSourcesItem":{"properties":{"question":{"type":"string","title":"Question"},"sources_by_provider":{"additionalProperties":{"items":{"$ref":"#/components/schemas/PublicSource"},"type":"array"},"type":"object","title":"Sources By Provider"}},"type":"object","required":["question"],"title":"PublicPromptSourcesItem"},"PublicPromptsCoverage":{"properties":{"total":{"type":"integer","title":"Total"},"visible_on_any":{"type":"integer","title":"Visible On Any"},"visible_on_all":{"type":"integer","title":"Visible On All"}},"type":"object","required":["total","visible_on_any","visible_on_all"],"title":"PublicPromptsCoverage"},"PublicProviderAggregate":{"properties":{"analyses":{"type":"integer","title":"Analyses"},"analyses_with_target":{"type":"integer","title":"Analyses With Target"},"sov":{"type":"number","title":"Sov"},"target_position_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Position Avg"}},"type":"object","required":["analyses","analyses_with_target","sov"],"title":"PublicProviderAggregate","description":"Per-provider stats for the *target brand* only. Competitor breakdowns\nmoved into each competitor entry — see `PublicCompetitor.by_provider`."},"PublicSearchQuery":{"properties":{"query":{"type":"string","title":"Query"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["query","count"],"title":"PublicSearchQuery"},"PublicSentimentBucket":{"properties":{"total":{"type":"integer","title":"Total"},"positive":{"type":"integer","title":"Positive"},"neutral":{"type":"integer","title":"Neutral"},"negative":{"type":"integer","title":"Negative"}},"type":"object","required":["total","positive","neutral","negative"],"title":"PublicSentimentBucket"},"PublicSentimentTimeseries":{"properties":{"period":{"$ref":"#/components/schemas/PublicPeriod"},"buckets":{"additionalProperties":{"$ref":"#/components/schemas/PublicSentimentBucket"},"type":"object","title":"Buckets"}},"type":"object","required":["period","buckets"],"title":"PublicSentimentTimeseries"},"PublicSource":{"properties":{"url":{"type":"string","title":"Url"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["url","count"],"title":"PublicSource"},"PublicTopCompetitor":{"properties":{"canonical_name":{"type":"string","title":"Canonical Name"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"mention_count":{"type":"integer","title":"Mention Count"},"first_position_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"First Position Avg"}},"type":"object","required":["canonical_name","mention_count"],"title":"PublicTopCompetitor"},"PublicTotals":{"properties":{"analyses":{"type":"integer","title":"Analyses"},"analyses_with_target":{"type":"integer","title":"Analyses With Target"},"sov":{"type":"number","title":"Sov"},"target_position_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Position Avg"}},"type":"object","required":["analyses","analyses_with_target","sov"],"title":"PublicTotals"},"PublicVisibilityByProvider":{"properties":{"sov":{"type":"number","title":"Sov"},"target_position_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Target Position Avg"}},"type":"object","required":["sov"],"title":"PublicVisibilityByProvider"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key issued from your Refinea account."}}},"tags":[{"name":"Domains","description":"Domains tracked under your account."},{"name":"Mentions","description":"Brand and competitor mention metrics extracted from LLM responses."},{"name":"Sentiment","description":"Time-series rollups of brand mention polarity."},{"name":"Prompts","description":"Per-prompt metrics across LLM providers — latest-run snapshot (omit `days`) or windowed aggregates (`days=N`)."}],"security":[{"ApiKeyAuth":[]}]}