openapi: 3.2.0 info: title: External Reports API version: 6551bd49db665ffb7f80780b3e150b8e8b780cc3 servers: - url: https://api.tryprofound.com description: Production Server tags: - name: Reports paths: /v1/reports/citations: post: tags: - Reports summary: Query Citations description: 'Get citations for a given category. The ``mentioned`` filter supports ``is true`` and ``is false``. It uses the latest page analysis available at or before ``end_date``; pages without an analysis by then are excluded from both values. ``citation_share`` keeps all otherwise eligible citations in its denominator when this filter is used.' operationId: query_citations_v1_reports_citations_post requestBody: content: application/json: schema: $ref: '#/components/schemas/CitationsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CitationsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/citations/stream: post: tags: - Reports summary: Stream Citations description: Stream citations with the same filter semantics as the non-streaming route. operationId: stream_citations_v1_reports_citations_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/StreamCitationsQuery' required: true responses: '200': description: Server-sent events stream. Emits a `summary` event first, then one `row` event per streamed row. content: text/event-stream: schema: oneOf: - properties: query: additionalProperties: true type: object title: Query description: The normalized query used to build the stream. total_rows: type: integer title: Total Rows description: Total number of rows available before pagination is applied. type: object required: - query - total_rows title: SSESummaryEventData - additionalProperties: true type: object description: A streamed citations report row payload. examples: summary: summary: Initial summary event payload value: query: category_id: 12345678-1234-5678-1234-567812345678 metrics: - count dimensions: - model total_rows: 2 row: summary: Streamed row event payload value: model: id: 11111111-1111-1111-1111-111111111111 name: GPT-4 count: 42 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/visibility: post: tags: - Reports summary: Query Visibility description: Query visibility report. operationId: query_visibility_v1_reports_visibility_post requestBody: content: application/json: schema: $ref: '#/components/schemas/VisibilityQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/visibility/stream: post: tags: - Reports summary: Stream Visibility operationId: stream_visibility_v1_reports_visibility_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/StreamVisibilityQuery' required: true responses: '200': description: Server-sent events stream. Emits a `summary` event first, then one `row` event per streamed row. content: text/event-stream: schema: oneOf: - properties: query: additionalProperties: true type: object title: Query description: The normalized query used to build the stream. total_rows: type: integer title: Total Rows description: Total number of rows available before pagination is applied. type: object required: - query - total_rows title: SSESummaryEventData - additionalProperties: true type: object description: A streamed visibility report row payload. examples: summary: summary: Initial summary event payload value: query: category_id: 12345678-1234-5678-1234-567812345678 metrics: - count dimensions: - model total_rows: 2 row: summary: Streamed row event payload value: asset: id: 11111111-1111-1111-1111-111111111111 name: Brand A mentions_count: 7 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/sentiment: post: tags: - Reports summary: Query Sentiment description: Get citations for a given category. operationId: query_sentiment_v1_reports_sentiment_post requestBody: content: application/json: schema: $ref: '#/components/schemas/SentimentQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/sentiment/stream: post: tags: - Reports summary: Stream Sentiment operationId: stream_sentiment_v1_reports_sentiment_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/StreamSentimentQuery' required: true responses: '200': description: Server-sent events stream. Emits a `summary` event first, then one `row` event per streamed row. content: text/event-stream: schema: oneOf: - properties: query: additionalProperties: true type: object title: Query description: The normalized query used to build the stream. total_rows: type: integer title: Total Rows description: Total number of rows available before pagination is applied. type: object required: - query - total_rows title: SSESummaryEventData - additionalProperties: true type: object description: A streamed sentiment report row payload. examples: summary: summary: Initial summary event payload value: query: category_id: 12345678-1234-5678-1234-567812345678 metrics: - count dimensions: - model total_rows: 2 row: summary: Streamed row event payload value: theme: price occurrences: 12 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/sentiment-v2: post: tags: - Reports summary: Query Sentiment V2 operationId: query_sentiment_v2_v1_reports_sentiment_v2_post requestBody: content: application/json: schema: $ref: '#/components/schemas/SentimentV2ReportQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SentimentV2ReportResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/web-search-results: post: tags: - Reports summary: Query Web Search Results description: Get web search results for a given category. operationId: query_web_search_results_v1_reports_web_search_results_post requestBody: content: application/json: schema: $ref: '#/components/schemas/WebSearchResultsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebSearchResultsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/web-search-results/stream: post: tags: - Reports summary: Stream Web Search Results operationId: stream_web_search_results_v1_reports_web_search_results_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/StreamWebSearchResultsQuery' required: true responses: '200': description: Server-sent events stream. Emits a `summary` event first, then one `row` event per streamed row. content: text/event-stream: schema: oneOf: - properties: query: additionalProperties: true type: object title: Query description: The normalized query used to build the stream. total_rows: type: integer title: Total Rows description: Total number of rows available before pagination is applied. type: object required: - query - total_rows title: SSESummaryEventData - additionalProperties: true type: object description: A streamed web-search-results report row payload. examples: summary: summary: Initial summary event payload value: query: category_id: 12345678-1234-5678-1234-567812345678 metrics: - count dimensions: - model total_rows: 2 row: summary: Streamed row event payload value: model: id: 11111111-1111-1111-1111-111111111111 name: GPT-4 count: 42 '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/referrals: post: tags: - Reports summary: Get Referrals Report V1 description: 'Get referral traffic report from the daily aggregated materialized view. This endpoint queries pre-aggregated daily referral data, making it efficient for large date ranges and high-traffic sites.' operationId: get_referrals_report_v1_v1_reports_referrals_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ReferralsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/bots: post: tags: - Reports summary: Get Bots Report V1 description: 'Get bot traffic report from the daily aggregated materialized view. This endpoint queries pre-aggregated daily bot data, making it efficient for large date ranges and high-traffic sites. Metrics: - count: unique bot visits - citations: unique citation events - indexing: unique indexing events - training: unique training events - last_visit: most recent visit timestamp' operationId: get_bots_report_v1_v1_reports_bots_post requestBody: content: application/json: schema: $ref: '#/components/schemas/BotsReportQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/query-fanouts: post: tags: - Reports summary: Query Fanouts operationId: query_fanouts_v1_reports_query_fanouts_post requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryFanoutsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/visibility: post: tags: - Reports summary: Shopping Visibility operationId: shopping_visibility_v1_reports_shopping_visibility_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingVisibilityQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/item-visibility: post: tags: - Reports summary: Shopping Item Visibility operationId: shopping_item_visibility_v1_reports_shopping_item_visibility_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingItemVisibilityQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/merchant-distribution: post: tags: - Reports summary: Shopping Merchant Distribution operationId: shopping_merchant_distribution_v1_reports_shopping_merchant_distribution_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingMerchantDistributionQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/merchant-visibility-by-brand: post: tags: - Reports summary: Shopping Merchant Visibility By Brand operationId: shopping_merchant_visibility_by_brand_v1_reports_shopping_merchant_visibility_by_brand_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingMerchantVisibilityByBrandQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/merchant-by-items: post: tags: - Reports summary: Shopping Merchant By Items operationId: shopping_merchant_by_items_v1_reports_shopping_merchant_by_items_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingMerchantByItemsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/all-items-with-merchants: post: tags: - Reports summary: Shopping All Items With Merchants operationId: shopping_all_items_with_merchants_v1_reports_shopping_all_items_with_merchants_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingAllItemsWithMerchantsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/trigger-rate: post: tags: - Reports summary: Shopping Trigger Rate operationId: shopping_trigger_rate_v1_reports_shopping_trigger_rate_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingTriggerRateQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/triggered-prompts: post: tags: - Reports summary: Shopping Triggered Prompts operationId: shopping_triggered_prompts_v1_reports_shopping_triggered_prompts_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingTriggeredPromptsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/triggered-topics: post: tags: - Reports summary: Shopping Triggered Topics operationId: shopping_triggered_topics_v1_reports_shopping_triggered_topics_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingTriggeredTopicsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/merchant-share: post: tags: - Reports summary: Shopping Merchant Share operationId: shopping_merchant_share_v1_reports_shopping_merchant_share_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingMerchantShareQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/product-merchant-urls: post: tags: - Reports summary: Shopping Product Merchant Urls operationId: shopping_product_merchant_urls_v1_reports_shopping_product_merchant_urls_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingProductMerchantUrlsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/shopping/executions: post: tags: - Reports summary: Shopping Executions operationId: shopping_executions_v1_reports_shopping_executions_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingExecutionsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingRowsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/overview: post: tags: - Reports summary: Accuracy Overview operationId: accuracy_overview_v1_reports_accuracy_overview_post requestBody: content: application/json: schema: $ref: '#/components/schemas/AccuracyOverviewQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AccuracyOverviewResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/breakdown: post: tags: - Reports summary: Accuracy Breakdown operationId: accuracy_breakdown_v1_reports_accuracy_breakdown_post requestBody: content: application/json: schema: $ref: '#/components/schemas/AccuracyBreakdownQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AccuracyBreakdownResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/citation-analysis: post: tags: - Reports summary: Accuracy Citation Analysis operationId: accuracy_citation_analysis_v1_reports_accuracy_citation_analysis_post requestBody: content: application/json: schema: $ref: '#/components/schemas/AccuracyCitationAnalysisQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AccuracyCitationAnalysisResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/topic-ids: post: tags: - Reports summary: Accuracy Topic Ids operationId: accuracy_topic_ids_v1_reports_accuracy_topic_ids_post requestBody: content: application/json: schema: $ref: '#/components/schemas/AccuracyTopicIdsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: items: type: string type: array title: Response Accuracy Topic Ids V1 Reports Accuracy Topic Ids Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/inaccurate-themes: post: tags: - Reports summary: Accuracy Inaccurate Themes operationId: accuracy_inaccurate_themes_v1_reports_accuracy_inaccurate_themes_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InaccurateThemesQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/InaccurateThemesResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/inaccurate-clusters: post: tags: - Reports summary: Accuracy Inaccurate Clusters operationId: accuracy_inaccurate_clusters_v1_reports_accuracy_inaccurate_clusters_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InaccurateClustersQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/InaccurateClustersResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/inaccuracy-drivers: post: tags: - Reports summary: Accuracy Inaccuracy Drivers operationId: accuracy_inaccuracy_drivers_v1_reports_accuracy_inaccuracy_drivers_post requestBody: content: application/json: schema: $ref: '#/components/schemas/InaccuracyDriversQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/InaccuracyDriversResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/top-inaccurate-claims: post: tags: - Reports summary: Accuracy Top Inaccurate Claims operationId: accuracy_top_inaccurate_claims_v1_reports_accuracy_top_inaccurate_claims_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TopInaccurateClaimsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TopInaccurateClaimsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/claim-breakdown: post: tags: - Reports summary: Accuracy Claim Breakdown operationId: accuracy_claim_breakdown_v1_reports_accuracy_claim_breakdown_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ClaimBreakdownQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClaimBreakdownResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/claim-citations: post: tags: - Reports summary: Accuracy Claim Citations operationId: accuracy_claim_citations_v1_reports_accuracy_claim_citations_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ClaimCitationsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClaimCitationsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/cluster-example-runs: post: tags: - Reports summary: Accuracy Cluster Example Runs operationId: accuracy_cluster_example_runs_v1_reports_accuracy_cluster_example_runs_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ClusterExampleRunsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClusterExampleRunsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/cluster-verification-pairs: post: tags: - Reports summary: Accuracy Cluster Verification Pairs operationId: accuracy_cluster_verification_pairs_v1_reports_accuracy_cluster_verification_pairs_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ClusterVerificationPairsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ClusterVerificationPairsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v1/reports/accuracy/factcheck-setup-status: post: tags: - Reports summary: Accuracy Factcheck Setup Status operationId: accuracy_factcheck_setup_status_v1_reports_accuracy_factcheck_setup_status_post requestBody: content: application/json: schema: $ref: '#/components/schemas/FactCheckSetupStatusQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/FactCheckSetupStatusResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/referrals: post: tags: - Reports summary: Get Referrals Report V2 description: 'Get referral traffic report from the hourly aggregated materialized view (UTC-based). Supports date_interval="hour", calendar intervals through "year", "quarter", and "relative_week".' operationId: get_referrals_report_v2_v2_reports_referrals_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ReferralsQueryV2' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/bots: post: tags: - Reports summary: Get Bots Report V2 description: 'Get bot traffic report from the hourly aggregated materialized view (UTC-based). Supports date_interval="hour", calendar intervals through "year", "quarter", and "relative_week". Metrics: - count: unique bot visits - citations: unique citation events (ai_assistant bot type) - indexing: unique indexing events (index bot type) - training: unique training events (ai_training bot type) - last_visit: most recent visit timestamp Dimensions: - date, path, bot_name, bot_provider, bot_type' operationId: get_bots_report_v2_v2_reports_bots_post requestBody: content: application/json: schema: $ref: '#/components/schemas/BotsReportQueryV2' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/visibility: post: tags: - Reports summary: Query Visibility V2 operationId: query_visibility_v2_v2_reports_visibility_post requestBody: content: application/json: schema: $ref: '#/components/schemas/VisibilityV2Query' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/VisibilityV2Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/visibility/stream: post: tags: - Reports summary: Stream Visibility V2 operationId: stream_visibility_v2_v2_reports_visibility_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/VisibilityV2Query' required: true responses: '200': description: Server-sent events stream. Emits one `summary` event (the report `info` block) first, then one `result` event per row. content: text/event-stream: schema: oneOf: - $ref: '#/components/schemas/VisibilityV2Info' description: '`summary` event payload (the report `info` block).' - $ref: '#/components/schemas/VisibilityRow' description: '`result` event payload — one visibility row.' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/citations: post: tags: - Reports summary: Query Citations V2 operationId: query_citations_v2_v2_reports_citations_post requestBody: content: application/json: schema: $ref: '#/components/schemas/CitationsV2Query' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CitationsV2Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/citations/stream: post: tags: - Reports summary: Stream Citations V2 operationId: stream_citations_v2_v2_reports_citations_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/CitationsV2Query' required: true responses: '200': description: Server-sent events stream. Emits one `summary` event (the report `info` block) first, then one `result` event per row. content: text/event-stream: schema: oneOf: - $ref: '#/components/schemas/CitationsV2Info' description: '`summary` event payload (the report `info` block).' - $ref: '#/components/schemas/CitationRow' description: '`result` event payload — one citation row.' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/sentiment: post: tags: - Reports summary: Query Sentiment V2 operationId: query_sentiment_v2_v2_reports_sentiment_post requestBody: content: application/json: schema: $ref: '#/components/schemas/SentimentV2Query' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SentimentV2Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/sentiment/stream: post: tags: - Reports summary: Stream Sentiment V2 operationId: stream_sentiment_v2_v2_reports_sentiment_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/SentimentV2Query' required: true responses: '200': description: Server-sent events stream. Emits one `summary` event (the report `info` block) first, then one `result` event per row. content: text/event-stream: schema: oneOf: - $ref: '#/components/schemas/SentimentV2Info' description: '`summary` event payload (the report `info` block).' - $ref: '#/components/schemas/SentimentRow' description: '`result` event payload — one sentiment row.' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/query-fanouts: post: tags: - Reports summary: Query Fanouts V2 operationId: query_fanouts_v2_v2_reports_query_fanouts_post requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryFanoutsV2Query' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/QueryFanoutsV2Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/query-fanouts/stream: post: tags: - Reports summary: Stream Query Fanouts V2 operationId: stream_query_fanouts_v2_v2_reports_query_fanouts_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryFanoutsV2Query' required: true responses: '200': description: Server-sent events stream. Emits one `summary` event (the report `info` block) first, then one `result` event per row. content: text/event-stream: schema: oneOf: - $ref: '#/components/schemas/QueryFanoutsV2Info' description: '`summary` event payload (the report `info` block).' - $ref: '#/components/schemas/QueryFanoutRow' description: '`result` event payload — one query-fanout row.' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/factcheck: post: tags: - Reports summary: Query Scores operationId: query_scores_v2_reports_factcheck_post requestBody: content: application/json: schema: $ref: '#/components/schemas/FactcheckScoresQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/FactcheckScoresResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/factcheck/stream: post: tags: - Reports summary: Stream Scores operationId: stream_scores_v2_reports_factcheck_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/FactcheckScoresQuery' required: true responses: '200': description: Server-sent events stream. Emits one `summary` event (the report `info` block) first, then one `result` event per row. content: text/event-stream: schema: oneOf: - $ref: '#/components/schemas/FactcheckScoresInfo' description: '`summary` event payload (the report `info` block).' - $ref: '#/components/schemas/FactcheckScoreRow' description: '`result` event payload — one accuracy score row.' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/factcheck/claims: post: tags: - Reports summary: Query Claims operationId: query_claims_v2_reports_factcheck_claims_post requestBody: content: application/json: schema: $ref: '#/components/schemas/FactcheckClaimsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/FactcheckClaimsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/factcheck/claims/stream: post: tags: - Reports summary: Stream Claims operationId: stream_claims_v2_reports_factcheck_claims_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/FactcheckClaimsQuery' required: true responses: '200': description: Server-sent events stream. Emits one `summary` event (the report `info` block) first, then one `result` event per row. content: text/event-stream: schema: oneOf: - $ref: '#/components/schemas/FactcheckClaimsInfo' description: '`summary` event payload (the report `info` block).' - $ref: '#/components/schemas/FactcheckClaimsRow' description: '`result` event payload — one inaccurate claim.' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/social/youtube/channels: post: tags: - Reports summary: Query Youtube Channels description: Rank the YouTube channels cited in a category, or the video categories they publish in. operationId: query_youtube_channels_v2_reports_social_youtube_channels_post requestBody: content: application/json: schema: $ref: '#/components/schemas/YoutubeChannelsQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/YoutubeChannelsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/social/youtube/videos: post: tags: - Reports summary: Query Youtube Videos description: Rank cited YouTube videos, for one channel or across all of them. operationId: query_youtube_videos_v2_reports_social_youtube_videos_post requestBody: content: application/json: schema: $ref: '#/components/schemas/YoutubeVideosQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/YoutubeVideosResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/social/youtube/summary: post: tags: - Reports summary: Query Youtube Summary description: Report how much of youtube.com the channel and video rankings account for. operationId: query_youtube_summary_v2_reports_social_youtube_summary_post requestBody: content: application/json: schema: $ref: '#/components/schemas/YoutubeSummaryQuery' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/YoutubeSummaryResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/shopping/brands: post: tags: - Reports summary: Query Shopping Brands V2 operationId: query_shopping_brands_v2_v2_reports_shopping_brands_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingBrandsV2Query' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingBrandsV2Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/shopping/brands/stream: post: tags: - Reports summary: Stream Shopping Brands V2 operationId: stream_shopping_brands_v2_v2_reports_shopping_brands_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingBrandsV2Query' required: true responses: '200': description: Server-sent events stream. Emits one `summary` event (the report `info` block) first, then one `result` event per row. content: text/event-stream: schema: oneOf: - $ref: '#/components/schemas/ShoppingBrandsV2Info' description: '`summary` event payload (the report `info` block).' - $ref: '#/components/schemas/ShoppingBrandRow' description: '`result` event payload — one visibility row.' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/shopping/products: post: tags: - Reports summary: Query Shopping Products V2 operationId: query_shopping_products_v2_v2_reports_shopping_products_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingProductsV2Query' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingProductsV2Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/shopping/products/stream: post: tags: - Reports summary: Stream Shopping Products V2 operationId: stream_shopping_products_v2_v2_reports_shopping_products_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingProductsV2Query' required: true responses: '200': description: Server-sent events stream. Emits one `summary` event (the report `info` block) first, then one `result` event per row. content: text/event-stream: schema: oneOf: - $ref: '#/components/schemas/ShoppingProductsV2Info' description: '`summary` event payload (the report `info` block).' - $ref: '#/components/schemas/ShoppingProductRow' description: '`result` event payload — one product row.' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/shopping/merchants: post: tags: - Reports summary: Query Shopping Merchants V2 operationId: query_shopping_merchants_v2_v2_reports_shopping_merchants_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingMerchantsV2Query' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingMerchantsV2Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/shopping/merchants/stream: post: tags: - Reports summary: Stream Shopping Merchants V2 operationId: stream_shopping_merchants_v2_v2_reports_shopping_merchants_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingMerchantsV2Query' required: true responses: '200': description: Server-sent events stream. Emits one `summary` event (the report `info` block) first, then one `result` event per row. content: text/event-stream: schema: oneOf: - $ref: '#/components/schemas/ShoppingMerchantsV2Info' description: '`summary` event payload (the report `info` block).' - $ref: '#/components/schemas/ShoppingMerchantRow' description: '`result` event payload — one merchant row.' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/shopping/trigger-rate: post: tags: - Reports summary: Query Shopping Trigger Rate V2 operationId: query_shopping_trigger_rate_v2_v2_reports_shopping_trigger_rate_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingTriggerRateV2Query' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ShoppingTriggerRateV2Response' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] /v2/reports/shopping/trigger-rate/stream: post: tags: - Reports summary: Stream Shopping Trigger Rate V2 operationId: stream_shopping_trigger_rate_v2_v2_reports_shopping_trigger_rate_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ShoppingTriggerRateV2Query' required: true responses: '200': description: Server-sent events stream. Emits one `summary` event (the report `info` block) first, then one `result` event per row. content: text/event-stream: schema: oneOf: - $ref: '#/components/schemas/ShoppingTriggerRateV2Info' description: '`summary` event payload (the report `info` block).' - $ref: '#/components/schemas/ShoppingTriggerRateRow' description: '`result` event payload — one trigger row.' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] - BearerAuth: [] components: schemas: SentimentV2ModelIdFilter: properties: field: type: string const: model_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: SentimentV2ModelIdFilter app__routes__v2__answer_engine_insights__reports__query_fanouts__SortSpec: properties: field: type: string title: Field dir: type: string enum: - asc - desc title: Dir default: desc additionalProperties: false type: object required: - field title: SortSpec AccuracyThemeTrendPoint: properties: date: type: string title: Date total: type: integer title: Total accurate: type: integer title: Accurate ratio: type: number title: Ratio type: object required: - date - total - accurate - ratio title: AccuracyThemeTrendPoint AccuracyThemeTrendSeries: properties: id: type: string title: Id label: type: string title: Label data: items: $ref: '#/components/schemas/AccuracyThemeTrendPoint' type: array title: Data type: object required: - id - label - data title: AccuracyThemeTrendSeries ShoppingTriggeredPromptsQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: type: 'null' title: Pagination include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false type: object required: - category_id - start_date - end_date title: ShoppingTriggeredPromptsQuery ShoppingProductRow: properties: product: anyOf: - additionalProperties: true type: object - type: 'null' title: Product date: anyOf: - type: string - type: 'null' title: Date topic: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' prompt: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' visibility_score: anyOf: - type: number - type: 'null' title: Visibility Score average_position: anyOf: - type: number - type: 'null' title: Average Position visibility_rank: anyOf: - type: integer - type: 'null' title: Visibility Rank position1_percentage: anyOf: - type: number - type: 'null' title: Position1 Percentage position2_percentage: anyOf: - type: number - type: 'null' title: Position2 Percentage position3_percentage: anyOf: - type: number - type: 'null' title: Position3 Percentage position_above3_percentage: anyOf: - type: number - type: 'null' title: Position Above3 Percentage product_rating: anyOf: - type: number - type: 'null' title: Product Rating product_num_reviews: anyOf: - type: integer - type: 'null' title: Product Num Reviews product_url: anyOf: - type: string - type: 'null' title: Product Url product_image_urls: anyOf: - items: type: string type: array - type: 'null' title: Product Image Urls merchants: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Merchants description: Per-product merchant offers `{name, price}` (only with `include_merchants`). additionalProperties: true type: object title: ShoppingProductRow description: One product row. Merchant fields present only when `include_merchants` is true. TopicIdFilter: properties: field: anyOf: - type: string const: topic_id - type: string const: topic deprecated: true title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: TopicIdFilter description: Filter by topic UUID. YoutubeChannelsInfo: properties: total_results: type: integer title: Total Results description: Distinct leading channels matching the window; this can differ from the number of rows returned. count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. category_id: type: string format: uuid title: Category Id description: Echoed category id this report covers. source_types: items: type: string enum: - video - short - channel - playlist - other type: array title: Source Types description: Source types this report covers. Derived from the request, not returned rows, so a listed type may have no rows. cursor: anyOf: - type: string - type: 'null' title: Cursor description: Echoed request cursor; omitted on the first page. limit: type: integer title: Limit description: Effective page size in leading channels, not returned rows. interval: anyOf: - type: string enum: - day - week - month - type: 'null' title: Interval description: Effective channel time-series interval, or null when the channel report covers the full window. group_by: items: type: string type: array title: Group By description: Echoed dimensions that define a row. Channel reports echo `["channel"]` when group_by is omitted. additionalProperties: true type: object required: - total_results - count - models - start_date - end_date - category_id - source_types - limit - group_by title: YoutubeChannelsInfo description: Channel report metadata, including effective paging and grouping settings. ReferralsQueryV2: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - date - hour - host - path - referral_source - referral_type type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - visits - last_visit type: array title: Metrics order_by: additionalProperties: type: string enum: - asc - desc propertyNames: enum: - date - hour - host - path - referral_source - visits - last_visit - referral_type type: object title: Order By description: "\nCustom ordering of the report results.\n\nThe order is a record of key-value pairs where:\n- key is the field to order by, which can be a metric or dimension\n- value is the direction of the order, either 'asc' for ascending or 'desc' for descending.\n\nWhen not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc pagination: $ref: '#/components/schemas/Pagination' description: Pagination settings for the report results. domain: type: string title: Domain description: Domain to query logs for. start_date: type: string format: date-time title: Start Date description: 'Start date for logs. Accepts: YYYY-MM-DD, YYYY-MM-DD HH:MM, YYYY-MM-DD HH:MM:SS, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: End date in UTC. Accepts same formats as start_date. Defaults to now UTC if omitted. organization_id: anyOf: - type: string format: uuid - type: 'null' title: Organization Id timezone: type: string title: Timezone description: IANA timezone name for date bucketing and filter boundaries. default: UTC metric_filters: items: $ref: '#/components/schemas/NumericMetricFilter' type: array title: Metric Filters description: Numeric filters applied after report metrics are calculated. filters: items: oneOf: - $ref: '#/components/schemas/PathFilter' - $ref: '#/components/schemas/ReferralSourceFilter' - $ref: '#/components/schemas/ReferralTypeFilter' discriminator: propertyName: field mapping: path: '#/components/schemas/PathFilter' referral_source: '#/components/schemas/ReferralSourceFilter' referral_type: '#/components/schemas/ReferralTypeFilter' type: array title: Filters description: Filters for referrals report. type: object required: - metrics - domain - start_date title: ReferralsQueryV2 AccuracyOverviewQuery: properties: start_date: type: string title: Start Date end_date: type: string title: End Date comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date category_id: type: string format: uuid title: Category Id topic_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Topic Ids exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false tag_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Tag Ids tag_filter_type: type: string enum: - all - any title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false region_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Region Ids platform_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Platform Ids persona_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Persona Ids include_no_persona: type: boolean title: Include No Persona default: false prompt_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Prompt Ids citation_categories: anyOf: - items: type: string type: array - type: 'null' title: Citation Categories date_bucket: anyOf: - type: string - type: 'null' title: Date Bucket group_by: type: string enum: - period - theme title: Group By default: period type: object required: - start_date - end_date - category_id title: AccuracyOverviewQuery DimensionRef: properties: id: anyOf: - type: string - type: 'null' title: Id name: anyOf: - type: string - type: 'null' title: Name type: object title: DimensionRef description: An ``{id, name}`` reference for a grouped dimension value. CitationsV2Query: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive entity: type: string enum: - domain - page - citation_category title: Entity description: 'What each row represents: `domain` (default), `page`, or `citation_category`. Legacy: `group_by: ["page"]` (with `entity` omitted) is still accepted and is equivalent to `entity: "page"`. `citation_category` uses the dashboard split view: a citation counts under both its page-level and domain-level category, so category shares can sum to more than 100%.' default: domain group_by: items: type: string enum: - page - date - model - topic - region - persona - prompt type: array title: Group By metrics: anyOf: - items: type: string enum: - count - citation_share - rank - first_cited_at type: array - type: 'null' title: Metrics interval: type: string enum: - day - week - month title: Interval default: day scope: type: string enum: - all - owned title: Scope description: '`all` (every cited domain) or `owned` (only your owned domains). Applies to `entity=domain`.' default: all filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' description: '`citation_category` filters on a cited URL''s single category; `citation_tag` filters on the custom citation tags a URL carries (a URL can carry several). List the category''s tags with `GET /v1/org/categories/{category_id}/citation-tags`.' limit: anyOf: - type: integer maximum: 50.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Page size; default 10, max 50. max_results: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Max Results description: 'Stream endpoint only: cap the number of streamed rows (default: all).' cursor: anyOf: - type: string - type: 'null' title: Cursor additionalProperties: false type: object required: - category_id - start_date - end_date title: CitationsV2Query ShoppingRowsResponse: properties: info: $ref: '#/components/schemas/Info' data: items: additionalProperties: true type: object type: array title: Data type: object required: - info - data title: ShoppingRowsResponse VisibilityV2Info: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total rows matching the query before pagination (null when not computed). count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. scope: type: string title: Scope description: 'Asset scope: `all` or `owned`.' asset_filter: anyOf: - additionalProperties: true type: object - items: type: string type: array - type: string - type: 'null' title: Asset Filter description: Echoed `assets` selection (filter clause, name, or list), or null. additionalProperties: true type: object required: - count - models - start_date - end_date - scope title: VisibilityV2Info SentimentV2Response: properties: info: $ref: '#/components/schemas/SentimentV2Info' data: items: $ref: '#/components/schemas/SentimentRow' type: array title: Data type: object required: - info - data title: SentimentV2Response ClusterVerificationPairsResponse: properties: data: items: $ref: '#/components/schemas/ClusterVerificationPair' type: array title: Data clusterReasoning: anyOf: - type: string - type: 'null' title: Clusterreasoning type: object required: - data title: ClusterVerificationPairsResponse CitationsV2Info: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total rows matching the query before pagination (null when not computed). count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. scope: type: string title: Scope description: 'Citation scope: `all` or `owned`.' metrics: items: type: string type: array title: Metrics description: Metrics returned per row. analysis_types: items: type: string type: array title: Analysis Types description: Analysis types the citations were drawn from. additionalProperties: true type: object required: - count - models - start_date - end_date - scope - metrics - analysis_types title: CitationsV2Info FactcheckScoresInfo: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total rows matching the query before pagination (null when not computed). count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. group_by: items: type: string type: array title: Group By description: Dimensions the scores are sliced by (empty → headline). additionalProperties: true type: object required: - count - models - start_date - end_date - group_by title: FactcheckScoresInfo ClaimCitationsQuery: properties: start_date: type: string title: Start Date end_date: type: string title: End Date comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date category_id: type: string format: uuid title: Category Id topic_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Topic Ids exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false tag_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Tag Ids tag_filter_type: type: string enum: - all - any title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false region_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Region Ids platform_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Platform Ids persona_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Persona Ids include_no_persona: type: boolean title: Include No Persona default: false prompt_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Prompt Ids citation_categories: anyOf: - items: type: string type: array - type: 'null' title: Citation Categories cluster_id: type: string format: uuid title: Cluster Id limit: type: integer minimum: 1.0 title: Limit default: 10 offset: type: integer minimum: 0.0 title: Offset default: 0 search_query: anyOf: - type: string - type: 'null' title: Search Query sort_order: type: string enum: - asc - desc title: Sort Order default: desc type: object required: - start_date - end_date - category_id - cluster_id title: ClaimCitationsQuery ShoppingMerchantsV2Info: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total rows matching the query before pagination (null when not computed). count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. view: type: string title: View description: '`distribution`, `brand_share`, or `top_products`.' metrics: items: type: string type: array title: Metrics description: Metrics returned per row. additionalProperties: true type: object required: - count - models - start_date - end_date - view - metrics title: ShoppingMerchantsV2Info ShoppingTriggerRateQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false dimensions: items: type: string enum: - period - date - model_id - topic_id - region_id - persona_id - prompt_id - prompt type: array title: Dimensions metrics: items: type: string enum: - total_runs - shopping_triggered_runs - trigger_rate_percentage type: array title: Metrics type: object required: - category_id - start_date - end_date title: ShoppingTriggerRateQuery ShoppingProductsV2Info: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total products matching the query before pagination. count: type: integer title: Count description: Number of products on this page. When grouped by `date`/`topic`/`prompt`, `data` holds one row per product x bucket, so `len(data)` can exceed `count`. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. include_merchants: type: boolean title: Include Merchants description: Whether merchant offers are included in each row. metrics: items: type: string type: array title: Metrics description: Metrics returned per row. additionalProperties: true type: object required: - count - models - start_date - end_date - include_merchants - metrics title: ShoppingProductsV2Info CitationsResponse: properties: info: $ref: '#/components/schemas/Info' data: items: $ref: '#/components/schemas/CitationsResult' type: array title: Data type: object required: - info - data title: CitationsResponse examples: - data: - dimensions: - example.com - /some/path - '2023-10-01' metrics: - 10 - 0.05 info: query: date_interval: day dimensions: - hostname - path - date filters: - field: hostname operator: is value: example.com metrics: - count - citation_share total_rows: 200 ShoppingMerchantsV2Query: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive group_by: items: type: string enum: - date - brand - product type: array title: Group By description: '`[]` = distribution; `[brand]` = brand share within each merchant; `[product]` = top products per merchant. `date` (distribution only) adds a time series.' metrics: anyOf: - items: type: string enum: - merchant_share - merchant_share_rank - merchant_visibility - merchant_visibility_rank - visibility_rank - brand_share - product_visibility - product_rank type: array - type: 'null' title: Metrics description: Defaults to the chosen view's metrics; must be valid for that view. interval: type: string enum: - day - week - month title: Interval default: day filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' limit: anyOf: - type: integer maximum: 50.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Page size; default 10, max 50. max_results: anyOf: - type: integer maximum: 50000.0 exclusiveMinimum: 0.0 - type: 'null' title: Max Results description: 'Stream endpoint only: cap streamed rows.' cursor: anyOf: - type: string - type: 'null' title: Cursor additionalProperties: false type: object required: - category_id - start_date - end_date title: ShoppingMerchantsV2Query WebSearchResultsResult: properties: metrics: items: anyOf: - type: integer - type: number - type: string type: array title: Metrics dimensions: items: anyOf: - type: string - type: string format: uuid - type: 'null' type: array title: Dimensions type: object required: - metrics - dimensions title: WebSearchResultsResult SentimentV2ReportResponse: properties: info: $ref: '#/components/schemas/SentimentV2ReportInfo' data: items: $ref: '#/components/schemas/SentimentV2ReportDataPoint' type: array title: Data type: object required: - info title: SentimentV2ReportResponse SentimentV2PromptIdFilter: properties: field: type: string const: prompt_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: SentimentV2PromptIdFilter ModelIdFilter: properties: field: anyOf: - type: string const: model_id - type: string const: model deprecated: true title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: ModelIdFilter description: Filter by AI model/platform UUID. ThemeFilter: properties: field: type: string const: theme title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: ThemeFilter description: Filter by theme ShoppingMerchantByItemsQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false dimensions: items: type: string enum: - period - merchant_name - product_name - brand_name - product_image_urls - product_price - merchant_prices - has_instant_checkout - delivery_options - merchant_url type: array title: Dimensions metrics: items: type: string enum: - merchant_visibility - product_visibility - product_rank - avg_position - total_count type: array title: Metrics product_name: anyOf: - type: string - type: 'null' title: Product Name type: object required: - category_id - start_date - end_date title: ShoppingMerchantByItemsQuery ShoppingTriggerRateV2Info: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total rows matching the query before pagination (null when not computed). count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. metrics: items: type: string type: array title: Metrics description: Metrics returned per row. additionalProperties: true type: object required: - count - models - start_date - end_date - metrics title: ShoppingTriggerRateV2Info AccuracyBreakdownQuery: properties: start_date: type: string title: Start Date end_date: type: string title: End Date comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date category_id: type: string format: uuid title: Category Id topic_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Topic Ids exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false tag_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Tag Ids tag_filter_type: type: string enum: - all - any title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false region_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Region Ids platform_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Platform Ids persona_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Persona Ids include_no_persona: type: boolean title: Include No Persona default: false prompt_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Prompt Ids citation_categories: anyOf: - items: type: string type: array - type: 'null' title: Citation Categories breakdown_by: type: string enum: - citation - platform - topic - prompt - tag - region - persona - theme title: Breakdown By default: citation group_by: anyOf: - items: type: string enum: - platform - topic - prompt - tag - region - persona - theme - date type: array - type: 'null' title: Group By date_bucket: anyOf: - type: string - type: 'null' title: Date Bucket limit: type: integer minimum: 1.0 title: Limit default: 10 offset: type: integer minimum: 0.0 title: Offset default: 0 search_query: anyOf: - type: string - type: 'null' title: Search Query sort_by: type: string enum: - citationShare - accuracy title: Sort By default: citationShare sort_order: type: string enum: - asc - desc title: Sort Order default: desc pagination: anyOf: - $ref: '#/components/schemas/AccuracyPagination' - type: 'null' type: object required: - start_date - end_date - category_id title: AccuracyBreakdownQuery FactcheckClaimsInfo: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total rows matching the query before pagination (null when not computed). count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. group_by: items: type: string type: array title: Group By description: Dimension the claims are sectioned by (empty → one flat list). include: items: type: string type: array title: Include description: Per-claim detail fields requested. additionalProperties: true type: object required: - count - models - start_date - end_date - group_by title: FactcheckClaimsInfo YoutubeVideoRow: properties: video_id: type: string title: Video Id description: YouTube video id, as in the watch URL. source_type: type: string enum: - video - short - channel - playlist - other title: Source Type description: 'YouTube source type: `video`, `short`, `channel`, `playlist` or `other`.' title: anyOf: - type: string - type: 'null' title: Title description: Resolved title, or null when unavailable. channel_title: anyOf: - type: string - type: 'null' title: Channel Title description: Publishing channel title, or null when unknown. channel_handle: anyOf: - type: string - type: 'null' title: Channel Handle description: Handle of the publishing channel; select it with a `channel` filter of `in`. Null when unknown. url: anyOf: - type: string - type: 'null' title: Url description: Openable video URL, or null when unavailable. channel_url: anyOf: - type: string - type: 'null' title: Channel Url description: Openable URL for the publishing channel, or null when unknown. rank: type: integer title: Rank description: 1-based position in the full ranked set, continuing across pages. published_at: anyOf: - type: string - type: 'null' title: Published At description: Upload date, or null when unknown. duration_seconds: anyOf: - type: integer - type: 'null' title: Duration Seconds description: Length in seconds, or null when unknown. video_category: anyOf: - type: string - type: 'null' title: Video Category description: YouTube content category, or null when unknown. count: type: integer title: Count description: Citations attributed to this video. citation_share: type: number title: Citation Share description: Share of every YouTube citation in the window (attributed and unattributed alike), regardless of `source_types`. Shares sum to at most 1, reaching about 1 only with `attribution="all"` and no `source_types` filter; a narrowed ranking sums to its slice's share. additionalProperties: true type: object required: - video_id - source_type - rank - count - citation_share title: YoutubeVideoRow BrandNameFilter: properties: field: type: string const: brand_name title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: BrandNameFilter FactcheckClaim: properties: cluster_id: anyOf: - type: string - type: 'null' title: Cluster Id claim: anyOf: - type: string - type: 'null' title: Claim occurrence: anyOf: - type: number - type: 'null' title: Occurrence theme: anyOf: - type: string - type: 'null' title: Theme reasoning: anyOf: - type: string - type: 'null' title: Reasoning models: anyOf: - items: $ref: '#/components/schemas/ClaimModelOccurrence' type: array - type: 'null' title: Models evidence: anyOf: - items: $ref: '#/components/schemas/ClaimEvidence' type: array - type: 'null' title: Evidence citation_sources: anyOf: - items: $ref: '#/components/schemas/ClaimCitationSource' type: array - type: 'null' title: Citation Sources additionalProperties: true type: object title: FactcheckClaim description: One inaccurate claim. `theme`/`reasoning`/`models`/`evidence`/`citation_sources` follow `include`. FactCheckSetupStatusResponse: properties: activeAccuracyPromptCount: type: integer title: Activeaccuracypromptcount hasVerificationData: type: boolean title: Hasverificationdata isSetupComplete: type: boolean title: Issetupcomplete setupCreatedAt: anyOf: - type: string - type: 'null' title: Setupcreatedat setupKnowledgeBaseId: anyOf: - type: string - type: 'null' title: Setupknowledgebaseid type: object required: - activeAccuracyPromptCount - hasVerificationData - isSetupComplete title: FactCheckSetupStatusResponse YoutubeSummaryResponse: properties: info: $ref: '#/components/schemas/YoutubeSummaryInfo' data: $ref: '#/components/schemas/YoutubeCoverage' type: object required: - info - data title: YoutubeSummaryResponse ShoppingMerchantShareQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false dimensions: items: type: string enum: - period - topic_id - prompt_id type: array title: Dimensions metrics: items: type: string const: merchant_share type: array title: Metrics target_asset_names: items: type: string type: array title: Target Asset Names owned_asset_names: items: type: string type: array title: Owned Asset Names type: object required: - category_id - start_date - end_date title: ShoppingMerchantShareQuery ShoppingMerchantsV2Response: properties: info: $ref: '#/components/schemas/ShoppingMerchantsV2Info' data: items: $ref: '#/components/schemas/ShoppingMerchantRow' type: array title: Data type: object required: - info - data title: ShoppingMerchantsV2Response SentimentV2TopicIdFilter: properties: field: type: string const: topic_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: SentimentV2TopicIdFilter SentimentV2SentimentFilter: properties: field: type: string const: sentiment title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string enum: - positive - negative - items: type: string enum: - positive - negative type: array title: Value type: object required: - field - operator - value title: SentimentV2SentimentFilter SentimentV2ThemeFilter: properties: field: type: string const: theme title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: SentimentV2ThemeFilter SearchQueryFilter: properties: field: type: string const: search_query title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: SearchQueryFilter description: Filter by web-search query string. TagNameFilter: properties: field: type: string const: tag_name title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: TagNameFilter description: Filter by tag name. YoutubeVideosInfo: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total rows matching the query before pagination (null when not computed). count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. category_id: type: string format: uuid title: Category Id description: Echoed category id this report covers. source_types: items: type: string enum: - video - short - channel - playlist - other type: array title: Source Types description: Source types this report covers. Derived from the request, not returned rows, so a listed type may have no rows. cursor: anyOf: - type: string - type: 'null' title: Cursor description: Echoed request cursor; omitted on the first page. limit: type: integer title: Limit description: Effective page size applied to this paged report. attribution: type: string enum: - attributed - unattributed - all title: Attribution description: Effective video attribution mode. additionalProperties: true type: object required: - count - models - start_date - end_date - category_id - source_types - limit - attribution title: YoutubeVideosInfo description: Video report metadata, including effective paging and attribution settings. QueryFanoutsQuery: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - prompt - query - model - region - date type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - fanouts_per_execution - total_fanouts - share - query_variations type: array minItems: 1 title: Metrics description: Metrics to return for each row. order_by: additionalProperties: type: string enum: - asc - desc propertyNames: enum: - fanouts_per_execution - total_fanouts - share - query_variations - date type: object title: Order By description: Custom ordering. Keys must be a requested metric or the ``date`` dimension. Values are ``asc`` or ``desc``. Defaults to first metric descending. default: {} examples: - fanouts_per_execution: desc pagination: $ref: '#/components/schemas/Pagination' description: Pagination settings for the report results. category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/RegionNameFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/AnalysisTypeFilter' - $ref: '#/components/schemas/PromptTypeFilter' discriminator: propertyName: field mapping: analysis_type: '#/components/schemas/AnalysisTypeFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' prompt_id: '#/components/schemas/PromptIdFilter' prompt_type: '#/components/schemas/PromptTypeFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' region_name: '#/components/schemas/RegionNameFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters description: Filters to apply to the query fanout report. type: object required: - metrics - category_id - start_date - end_date title: QueryFanoutsQuery SentimentV2ReportInfo: properties: query: additionalProperties: true type: object title: Query total_rows: type: integer title: Total Rows type: object required: - query - total_rows title: SentimentV2ReportInfo BotProviderFilter: properties: field: type: string const: bot_provider title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string enum: - openai - anthropic - chatgpt - deepseek - google - microsoft - perplexity - apple - bytedance - amazon - meta - duckduckgo - you - you.com - xai - grok - gemini - mistral - huawei - yandex - baidu - yahoo - commoncrawl - openclaw - items: type: string enum: - openai - anthropic - chatgpt - deepseek - google - microsoft - perplexity - apple - bytedance - amazon - meta - duckduckgo - you - you.com - xai - grok - gemini - mistral - huawei - yandex - baidu - yahoo - commoncrawl - openclaw type: array title: Value type: object required: - field - operator - value title: BotProviderFilter description: Filter by bot provider ShoppingProductsV2Query: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive group_by: items: type: string enum: - date - topic - prompt type: array title: Group By metrics: anyOf: - items: type: string enum: - visibility_score - average_position - visibility_rank - position1_percentage - position2_percentage - position3_percentage - position_above3_percentage - product_rating - product_num_reviews type: array - type: 'null' title: Metrics interval: type: string enum: - day - week - month title: Interval default: day include_merchants: type: boolean title: Include Merchants description: Include per-product merchant offers (names, prices, urls, images). default: false target_product: anyOf: - type: string minLength: 1 - type: 'null' title: Target Product description: Return this product plus its top competitors (item view only). competitor_limit: type: integer minimum: 1.0 title: Competitor Limit description: Competitors returned when `target_product` is set. default: 5 filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' limit: anyOf: - type: integer maximum: 50.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Page size; default 10, max 50. max_results: anyOf: - type: integer maximum: 50000.0 exclusiveMinimum: 0.0 - type: 'null' title: Max Results description: 'Stream endpoint only: cap streamed rows.' cursor: anyOf: - type: string - type: 'null' title: Cursor additionalProperties: false type: object required: - category_id - start_date - end_date title: ShoppingProductsV2Query ShoppingBrandsV2Response: properties: info: $ref: '#/components/schemas/ShoppingBrandsV2Info' data: items: $ref: '#/components/schemas/ShoppingBrandRow' type: array title: Data type: object required: - info - data title: ShoppingBrandsV2Response ClaimBreakdownQuery: properties: start_date: type: string title: Start Date end_date: type: string title: End Date comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date category_id: type: string format: uuid title: Category Id topic_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Topic Ids exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false tag_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Tag Ids tag_filter_type: type: string enum: - all - any title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false region_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Region Ids platform_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Platform Ids persona_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Persona Ids include_no_persona: type: boolean title: Include No Persona default: false prompt_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Prompt Ids citation_categories: anyOf: - items: type: string type: array - type: 'null' title: Citation Categories cluster_id: type: string format: uuid title: Cluster Id type: object required: - start_date - end_date - category_id - cluster_id title: ClaimBreakdownQuery InaccurateClusterRow: properties: clusterId: type: string title: Clusterid canonicalClaim: type: string title: Canonicalclaim neutralTheme: type: string title: Neutraltheme default: '' description: type: string title: Description default: '' kbPath: type: string title: Kbpath kbSnippet: type: string title: Kbsnippet reasoning: type: string title: Reasoning claimCount: type: integer title: Claimcount responseCount: type: integer title: Responsecount totalResponseCount: type: integer title: Totalresponsecount responseShare: type: number title: Responseshare responseShareDelta: anyOf: - type: number - type: 'null' title: Responsesharedelta citationHostnames: items: type: string type: array title: Citationhostnames models: anyOf: - items: $ref: '#/components/schemas/ClusterModelShare' type: array - type: 'null' title: Models type: object required: - clusterId - canonicalClaim - kbPath - kbSnippet - reasoning - claimCount - responseCount - totalResponseCount - responseShare - citationHostnames title: InaccurateClusterRow MerchantNameFilter: properties: field: type: string const: merchant_name title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: MerchantNameFilter app__routes__v2__answer_engine_insights__reports__sentiment__SortSpec: properties: field: type: string enum: - occurrence - positive_sentiment - negative_sentiment title: Field default: positive_sentiment dir: type: string enum: - asc - desc title: Dir default: desc type: object title: SortSpec AccuracyOverviewResponse: properties: trendByPeriod: items: $ref: '#/components/schemas/AccuracyTrendPoint' type: array title: Trendbyperiod overallAccuracy: type: number title: Overallaccuracy accuracyChange: anyOf: - type: number - type: 'null' title: Accuracychange scoreBreakdown: items: $ref: '#/components/schemas/AccuracyScoreBreakdown' type: array title: Scorebreakdown themeTrend: anyOf: - items: $ref: '#/components/schemas/AccuracyThemeTrendSeries' type: array - type: 'null' title: Themetrend availableSeries: anyOf: - items: $ref: '#/components/schemas/AccuracyTrendSeriesMeta' type: array - type: 'null' title: Availableseries type: object required: - trendByPeriod - overallAccuracy - scoreBreakdown title: AccuracyOverviewResponse FactcheckClaimsResponse: properties: info: $ref: '#/components/schemas/FactcheckClaimsInfo' data: items: $ref: '#/components/schemas/FactcheckClaimsRow' type: array title: Data type: object required: - info - data title: FactcheckClaimsResponse SentimentV2ReportQuery: properties: category_id: type: string format: uuid title: Category Id asset_name: type: string title: Asset Name start_date: type: string format: date-time title: Start Date description: 'Start date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: 'End date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date description: Start of the previous period for delta computation. comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date description: End of the previous period for delta computation. date_bucket: type: string enum: - day - week - month title: Date Bucket description: Date bucket for the report. Only used when dimensions includes date. default: day dimensions: items: type: string enum: - date - topic - region - model - prompt - persona - tag - theme - claim - run - asset_name type: array title: Dimensions description: Dimensions to group the report by. metrics: items: type: string enum: - sentiment - occurrence type: array title: Metrics filters: items: oneOf: - $ref: '#/components/schemas/SentimentV2ModelIdFilter' - $ref: '#/components/schemas/SentimentV2RegionIdFilter' - $ref: '#/components/schemas/SentimentV2TopicIdFilter' - $ref: '#/components/schemas/SentimentV2PromptIdFilter' - $ref: '#/components/schemas/SentimentV2PersonaIdFilter' - $ref: '#/components/schemas/SentimentV2TagIdFilter' - $ref: '#/components/schemas/SentimentV2RunIdFilter' - $ref: '#/components/schemas/SentimentV2ThemeFilter' - $ref: '#/components/schemas/SentimentV2ClaimFilter' - $ref: '#/components/schemas/SentimentV2ThemeIdFilter' - $ref: '#/components/schemas/SentimentV2ClaimIdFilter' - $ref: '#/components/schemas/SentimentV2SentimentFilter' discriminator: propertyName: field mapping: claim: '#/components/schemas/SentimentV2ClaimFilter' claim_id: '#/components/schemas/SentimentV2ClaimIdFilter' model_id: '#/components/schemas/SentimentV2ModelIdFilter' persona_id: '#/components/schemas/SentimentV2PersonaIdFilter' prompt_id: '#/components/schemas/SentimentV2PromptIdFilter' region_id: '#/components/schemas/SentimentV2RegionIdFilter' run_id: '#/components/schemas/SentimentV2RunIdFilter' sentiment: '#/components/schemas/SentimentV2SentimentFilter' tag_id: '#/components/schemas/SentimentV2TagIdFilter' theme: '#/components/schemas/SentimentV2ThemeFilter' theme_id: '#/components/schemas/SentimentV2ThemeIdFilter' topic_id: '#/components/schemas/SentimentV2TopicIdFilter' type: array title: Filters description: List of filters to apply to the sentiment-v2 report. order_by: additionalProperties: type: string enum: - asc - desc propertyNames: enum: - sentiment - occurrence - assessment_count - positive_sentiment - negative_sentiment - date - topic - region - model - prompt - persona - tag - theme - claim - run - asset_name type: object title: Order By description: Custom ordering of report results. Dimension keys must also be present in dimensions. The sentiment metric orders by positive_sentiment. examples: - occurrence: desc pagination: $ref: '#/components/schemas/Pagination' description: Pagination settings for the report results. additionalProperties: false type: object required: - category_id - asset_name - start_date - end_date - metrics title: SentimentV2ReportQuery Response: properties: info: $ref: '#/components/schemas/Info' data: items: $ref: '#/components/schemas/Result' type: array title: Data type: object required: - info - data title: Response description: Base response model for reports. SentimentV2ClaimIdFilter: properties: field: type: string const: claim_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: SentimentV2ClaimIdFilter AccuracyScoreBreakdown: properties: status: type: string title: Status count: type: integer title: Count share: type: number title: Share countChange: anyOf: - type: integer - type: 'null' title: Countchange shareChange: anyOf: - type: number - type: 'null' title: Sharechange type: object required: - status - count - share title: AccuracyScoreBreakdown PersonaIdFilter: properties: field: type: string const: persona_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: PersonaIdFilter description: Filter by persona UUID. TopInaccurateClaimRow: properties: clusterId: type: string title: Clusterid canonicalClaim: type: string title: Canonicalclaim claimOccurrence: type: number title: Claimoccurrence claimOccurrenceDelta: anyOf: - type: number - type: 'null' title: Claimoccurrencedelta type: object required: - clusterId - canonicalClaim - claimOccurrence title: TopInaccurateClaimRow ClusterExampleRun: properties: runId: type: string title: Runid claim: type: string title: Claim responseSnippet: type: string title: Responsesnippet modelId: type: string title: Modelid regionId: type: string title: Regionid createdAt: type: string title: Createdat type: object required: - runId - claim - responseSnippet - modelId - regionId - createdAt title: ClusterExampleRun FactcheckScoresResponse: properties: info: $ref: '#/components/schemas/FactcheckScoresInfo' data: items: $ref: '#/components/schemas/FactcheckScoreRow' type: array title: Data type: object required: - info - data title: FactcheckScoresResponse PromptTypeFilter: properties: field: type: string const: prompt_type title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string enum: - visibility - sentiment - items: type: string enum: - visibility - sentiment type: array title: Value type: object required: - field - operator - value title: PromptTypeFilter description: "Filter by prompt type (visibility or sentiment).\n\n.. deprecated::\n Use :class:`AnalysisTypeFilter` instead. ``prompt_type`` is normalised\n to ``analysis_type`` at parse time." SentimentRow: properties: date: anyOf: - type: string - type: 'null' title: Date model: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' topic: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' region: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' prompt: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' persona: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' tag: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' theme: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' claim: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' run: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' competitor: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' positive_sentiment: anyOf: - type: number - type: 'null' title: Positive Sentiment negative_sentiment: anyOf: - type: number - type: 'null' title: Negative Sentiment occurrence: anyOf: - type: number - type: 'null' title: Occurrence previous: anyOf: - $ref: '#/components/schemas/SentimentMetrics' - type: 'null' description: Comparison-window metrics (when requested). prev_date: anyOf: - type: string - type: 'null' title: Prev Date cited_websites: anyOf: - items: type: string type: array - type: 'null' title: Cited Websites rank: anyOf: - type: integer - type: 'null' title: Rank additionalProperties: true type: object title: SentimentRow description: One group-combination row. Group dims and metrics present depend on `group_by`/`metrics`. ShoppingMerchantDistributionQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false dimensions: items: type: string enum: - period - merchant_name - date - owned_asset_name type: array title: Dimensions metrics: items: type: string enum: - offer_count - product_count - average_rank - share_of_offers - visibility_rank - total_count type: array title: Metrics owned_asset_names: items: type: string type: array title: Owned Asset Names search_merchant: anyOf: - type: string - type: 'null' title: Search Merchant type: object required: - category_id - start_date - end_date title: ShoppingMerchantDistributionQuery EntityFilterClause: properties: op: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Op value: anyOf: - type: string - items: type: string type: array title: Value additionalProperties: false type: object required: - op - value title: EntityFilterClause description: Select/exclude the entity, applied outside the data `filter` tree. ClaimPromptBreakdownRow: properties: id: type: string title: Id label: type: string title: Label responseCount: type: integer title: Responsecount totalResponseCount: type: integer title: Totalresponsecount responseShare: type: number title: Responseshare responseShareDelta: anyOf: - type: number - type: 'null' title: Responsesharedelta prevResponseCount: type: integer title: Prevresponsecount prevTotalResponseCount: type: integer title: Prevtotalresponsecount promptId: type: string title: Promptid promptText: type: string title: Prompttext topicId: type: string title: Topicid hasCurrent: type: boolean title: Hascurrent type: object required: - id - label - responseCount - totalResponseCount - responseShare - prevResponseCount - prevTotalResponseCount - promptId - promptText - topicId - hasCurrent title: ClaimPromptBreakdownRow ShoppingMerchantVisibilityByBrandQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false dimensions: items: type: string enum: - period - merchant_name - brand_name type: array title: Dimensions metrics: items: type: string enum: - visibility_score - share_of_voice - average_position - visibility_rank - total_count type: array title: Metrics owned_asset_names: items: type: string type: array title: Owned Asset Names search_brand: anyOf: - type: string - type: 'null' title: Search Brand include_brand: anyOf: - type: string - type: 'null' title: Include Brand include_brand_only: type: boolean title: Include Brand Only default: false type: object required: - category_id - start_date - end_date title: ShoppingMerchantVisibilityByBrandQuery YoutubeChannelRow: properties: name: type: string title: Name description: Channel title when grouped by channel, or the handle when no title resolved; category name when grouped by `["video_category"]`; source type when grouped by `["source_type"]`. handle: anyOf: - type: string - type: 'null' title: Handle description: Channel handle without the `@`, and the identifier this API exposes. Pass it to /videos as `channel_handle`. Null for the rare channel whose handle did not resolve. url: anyOf: - type: string - type: 'null' title: Url description: Openable channel URL. Null for video-category rows. rank: type: integer title: Rank description: Leading channel's 1-based position in the full ranked set, continuing across pages; repeated across that channel's cross-tab rows rather than numbering rows. date: anyOf: - type: string - type: 'null' title: Date description: Period start. Present when `interval` is set. video_category: anyOf: - type: string - type: 'null' title: Video Category description: Populated for a secondary video-category slice; with group_by `["video_category"]`, the category is returned in `name` instead. An unresolved category is returned as an empty string. model: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' description: Answer engine as an object `{id, name}`, present when grouped by model. The name matches `info.models`; the id is the model id the other reports accept. source_type: anyOf: - type: string enum: - video - short - channel - playlist - other - type: 'null' title: Source Type description: YouTube source type, present when grouped by source type, including as the second dimension of a cross-tab. count: type: integer title: Count description: Citations attributed to this row. videos: type: integer title: Videos description: Distinct videos of this channel that were cited. citation_share: type: number title: Citation Share description: Share of every YouTube citation in the window (attributed and unattributed alike), or the period when `interval` is set, regardless of `source_types`. An unnarrowed complete ranking sums to slightly less than 1 because unattributed citations cannot appear in channel rows; a narrowed ranking sums to its slice's share. additionalProperties: true type: object required: - name - rank - count - videos - citation_share title: YoutubeChannelRow description: One channel (or video category) row, optionally sliced. AccuracyTrendPoint: properties: date: type: string title: Date total: type: integer title: Total accurate: type: integer title: Accurate verified: type: integer title: Verified default: 0 ratio: type: number title: Ratio prevPeriodData: anyOf: - $ref: '#/components/schemas/AccuracyTrendPoint' - type: 'null' type: object required: - date - total - accurate - ratio title: AccuracyTrendPoint SentimentScores: properties: positive_sentiment: type: number title: Positive Sentiment negative_sentiment: type: number title: Negative Sentiment assessment_count: type: integer title: Assessment Count occurrence: anyOf: - type: number - type: 'null' title: Occurrence response_count: anyOf: - type: integer - type: 'null' title: Response Count total_response_count: anyOf: - type: integer - type: 'null' title: Total Response Count type: object required: - positive_sentiment - negative_sentiment - assessment_count title: SentimentScores AccuracyBreakdownResponse: properties: data: items: $ref: '#/components/schemas/AccuracyBreakdownRow' type: array title: Data totalCount: type: integer title: Totalcount type: object required: - data - totalCount title: AccuracyBreakdownResponse SentimentV2TagIdFilter: properties: field: type: string const: tag_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: SentimentV2TagIdFilter SentimentQuery: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - theme - date - region - topic - topic_id - model - asset_id - asset_name - tag - prompt - prompt_id - sentiment_type - persona type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - positive - negative - occurrences type: array title: Metrics order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By description: "\nCustom ordering of the report results.\n\nThe order is a record of key-value pairs where:\n- key is the field to order by, which can be a metric or dimension\n- value is the direction of the order, either 'asc' for ascending or 'desc' for descending.\n\nWhen not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc pagination: $ref: '#/components/schemas/Pagination' description: Pagination settings for the report results. category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: 'Start date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: 'End date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' filters: items: oneOf: - $ref: '#/components/schemas/AssetIdFilter' - $ref: '#/components/schemas/profound_answer_engine_insights__filters__AssetNameFilter' - $ref: '#/components/schemas/ThemeFilter' - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/RegionNameFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TopicNameFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/TagNameFilter' - $ref: '#/components/schemas/PromptFilter' - $ref: '#/components/schemas/PersonaIdFilter' discriminator: propertyName: field mapping: asset_id: '#/components/schemas/AssetIdFilter' asset_name: '#/components/schemas/profound_answer_engine_insights__filters__AssetNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' prompt: '#/components/schemas/PromptFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' region_name: '#/components/schemas/RegionNameFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' tag_name: '#/components/schemas/TagNameFilter' theme: '#/components/schemas/ThemeFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' topic_name: '#/components/schemas/TopicNameFilter' type: array title: Filters description: List of filters to apply to the sentiment report. type: object required: - metrics - category_id - start_date - end_date title: SentimentQuery CitationsV2Response: properties: info: $ref: '#/components/schemas/CitationsV2Info' data: items: $ref: '#/components/schemas/CitationRow' type: array title: Data type: object required: - info - data title: CitationsV2Response PromptIdFilter: properties: field: type: string const: prompt_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: PromptIdFilter description: Filter by prompt UUID. Pagination: properties: limit: type: integer maximum: 50000.0 exclusiveMinimum: 0.0 title: Limit description: Maximum number of results to return. Default is 10,000, maximum is 50,000. default: 10000 offset: type: integer minimum: 0.0 title: Offset description: Offset for the results. Used for pagination. default: 0 type: object title: Pagination description: Offset-based pagination parameters. AccuracyTopicIdsQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date end_date: type: string title: End Date type: object required: - category_id - start_date - end_date title: AccuracyTopicIdsQuery RegionIdFilter: properties: field: anyOf: - type: string const: region_id - type: string const: region deprecated: true title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: RegionIdFilter description: Filter by region UUID. YoutubeChannelsQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' description: 'Advanced filter tree. Prompt-level dimensions are `model`, `topic`, `region`, `prompt`, `persona`, `tag`, `analysis_type`. `channel` covers both channel cases: `in` with a list of handles selects exactly those channels, resolving each handle to its channel so a renamed channel is never returned in pieces; `contains` matches a channel''s title or handle by name. Combine with `and`/`or`/`not` up to 3 deep. An exact `channel` selection must be its own `and` clause, and a `channel` leaf cannot share an `or` or `not` with a prompt-level leaf, because those compile at different stages of the query. `domain` and `page` are rejected rather than approximated: every row here is one domain, and `page` is not a video id.' limit: anyOf: - type: integer maximum: 50.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Page size; default 10, max 50. cursor: anyOf: - type: string - type: 'null' title: Cursor source_types: anyOf: - items: type: string enum: - video - short - channel - playlist - other type: array - type: 'null' title: Source Types description: 'Limit results to YouTube source types: `video`, `short`, `channel`, `playlist`, or `other`. Omit to include `video`, `short`, `channel`, and `playlist`; `other` is excluded because those citations have no channel. Requests containing `other` are rejected.' group_by: items: type: string enum: - channel - video_category - model - source_type type: array title: Group By description: What each row represents. Empty or `["channel"]` ranks channels; `["video_category"]` ranks content categories; `["source_type"]` ranks source types; `["channel", "video_category"]`, `["channel", "source_type"]` and `["channel", "model"]` return cross-tabs — a row per channel per category, or per answer engine. `limit` counts leading channels in every case, so ten channels across nine engines is ten channels and ninety rows. interval: anyOf: - type: string enum: - day - week - month - type: 'null' title: Interval description: 'Return a time series instead of window totals: one row per entity per period, each carrying `date`. `citation_share` is then relative to that period, so the series is comparable across periods. Omit for window totals.' additionalProperties: false type: object required: - category_id - start_date - end_date title: YoutubeChannelsQuery description: Channel and category rollups. SentimentMetrics: properties: positive_sentiment: anyOf: - type: number - type: 'null' title: Positive Sentiment negative_sentiment: anyOf: - type: number - type: 'null' title: Negative Sentiment occurrence: anyOf: - type: number - type: 'null' title: Occurrence additionalProperties: true type: object title: SentimentMetrics ShoppingTriggerRateRow: properties: date: anyOf: - type: string - type: 'null' title: Date topic: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' region: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' persona: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' prompt: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' total_runs: anyOf: - type: integer - type: 'null' title: Total Runs shopping_triggered_runs: anyOf: - type: integer - type: 'null' title: Shopping Triggered Runs trigger_rate_percentage: anyOf: - type: number - type: 'null' title: Trigger Rate Percentage additionalProperties: true type: object title: ShoppingTriggerRateRow description: One trigger-rate row. Group dims present depend on `group_by`. ClaimCitationRow: properties: href: type: string title: Href hostname: type: string title: Hostname path: type: string title: Path citationCategory: type: string title: Citationcategory domainCategory: type: string title: Domaincategory snippet: type: string title: Snippet citationCount: type: number title: Citationcount citationShare: type: number title: Citationshare citationShareDelta: anyOf: - type: number - type: 'null' title: Citationsharedelta type: object required: - href - hostname - path - citationCategory - domainCategory - snippet - citationCount - citationShare title: ClaimCitationRow YoutubeSummaryInfo: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total rows matching the query before pagination (null when not computed). count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. category_id: type: string format: uuid title: Category Id description: Echoed category id this report covers. source_types: items: type: string enum: - video - short - channel - playlist - other type: array title: Source Types description: All five YouTube source types; this endpoint has no source_types request field and cannot be narrowed. additionalProperties: true type: object required: - count - models - start_date - end_date - category_id - source_types title: YoutubeSummaryInfo description: Summary report metadata. ClusterModelShare: properties: modelId: type: string title: Modelid occurrence: type: number title: Occurrence type: object required: - modelId - occurrence title: ClusterModelShare InaccuracyDriverRow: properties: rowId: type: string title: Rowid clusterId: type: string title: Clusterid canonicalClaim: type: string title: Canonicalclaim snippet: type: string title: Snippet snippetClaimId: type: string title: Snippetclaimid claimOccurrence: type: number title: Claimoccurrence claimOccurrenceDelta: anyOf: - type: number - type: 'null' title: Claimoccurrencedelta href: type: string title: Href citationCategory: type: string title: Citationcategory domainCategory: type: string title: Domaincategory citationCount: type: integer title: Citationcount type: object required: - rowId - clusterId - canonicalClaim - snippet - snippetClaimId - claimOccurrence - href - citationCategory - domainCategory - citationCount title: InaccuracyDriverRow description: A top inaccurate claim paired with one of its most-cited pages. ShoppingBrandRow: properties: asset: anyOf: - additionalProperties: true type: object - type: 'null' title: Asset rank: anyOf: - type: integer - type: 'null' title: Rank description: Asset visibility rank as a top-level field (ungrouped only). date: anyOf: - type: string - type: 'null' title: Date topic: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' region: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' prompt: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' visibility_score: anyOf: - type: number - type: 'null' title: Visibility Score average_position: anyOf: - type: number - type: 'null' title: Average Position visibility_rank: anyOf: - type: integer - type: 'null' title: Visibility Rank description: Asset visibility rank (present on grouped rows). additionalProperties: true type: object title: ShoppingBrandRow description: One (asset x group) row. Group dims/metrics present depend on `group_by`/`metrics`. StreamVisibilityQuery: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - date - region - topic - topic_id - model - asset_id - asset_name - prompt - prompt_id - tag - persona type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - share_of_voice - mentions_count - visibility_score - executions - average_position type: array title: Metrics order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By description: "\nCustom ordering of the report results.\n\nThe order is a record of key-value pairs where:\n- key is the field to order by, which can be a metric or dimension\n- value is the direction of the order, either 'asc' for ascending or 'desc' for descending.\n\nWhen not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: 'Start date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: 'End date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/RegionNameFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TopicNameFilter' - $ref: '#/components/schemas/profound_answer_engine_insights__filters__AssetNameFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/TagNameFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PromptFilter' - $ref: '#/components/schemas/PersonaIdFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_answer_engine_insights__filters__AssetNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' prompt: '#/components/schemas/PromptFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' region_name: '#/components/schemas/RegionNameFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' tag_name: '#/components/schemas/TagNameFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' topic_name: '#/components/schemas/TopicNameFilter' type: array title: Filters description: List of filters to apply to the visibility report. type: object required: - metrics - category_id - start_date - end_date title: StreamVisibilityQuery FactcheckClaimsQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive group_by: items: type: string enum: - model - region - persona - prompt - topic - tag - theme type: array maxItems: 1 title: Group By description: Optional single dim to section the claims (e.g. per model). Empty → one flat claim list. filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' description: Scope which responses count (see Filtering). include: anyOf: - items: type: string enum: - theme - reasoning - models - evidence - citation_sources type: array - type: 'null' title: Include description: Optional per-claim detail fields to add to each claim (see options). limit: anyOf: - type: integer maximum: 100.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Claims (or sections) per page; default 25. max_results: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Max Results description: 'Stream only: cap entries returned.' cursor: anyOf: - type: string - type: 'null' title: Cursor additionalProperties: false type: object required: - category_id - start_date - end_date title: FactcheckClaimsQuery description: The inaccurate claims — flat + paginated, or `group_by` one dim to section them (all claims per section). ProductNameFilter: properties: field: type: string const: product_name title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: ProductNameFilter StreamCitationsQuery: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - hostname - path - date - region - topic - topic_id - model - tag - prompt - prompt_id - url - root_domain - persona - citation_category type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - count - citation_share - share_of_voice - first_cited_at type: array title: Metrics description: Metrics to include. `share_of_voice` is deprecated, use `citation_share` instead. deprecated_values: share_of_voice: Use citation_share instead order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By description: "\n Custom ordering of the report results.\n\n The order is a record of key-value pairs where:\n - `key` is the field to order by, which can be a metric or dimension\n - `value` is the direction of the order, either `asc` for ascending or `desc` for descending.\n\n When not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc - count: desc date: asc pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: 'Start date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: 'End date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' filters: items: oneOf: - $ref: '#/components/schemas/HostnameFilter' - $ref: '#/components/schemas/PathFilter' - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/RegionNameFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TopicNameFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/TagNameFilter' - $ref: '#/components/schemas/UrlFilter' - $ref: '#/components/schemas/RootDomainFilter' - $ref: '#/components/schemas/AnalysisTypeFilter' - $ref: '#/components/schemas/PromptTypeFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/CitationCategoryFilter' - $ref: '#/components/schemas/PromptFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/MentionedFilter' discriminator: propertyName: field mapping: analysis_type: '#/components/schemas/AnalysisTypeFilter' citation_category: '#/components/schemas/CitationCategoryFilter' hostname: '#/components/schemas/HostnameFilter' mentioned: '#/components/schemas/MentionedFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' path: '#/components/schemas/PathFilter' persona_id: '#/components/schemas/PersonaIdFilter' prompt: '#/components/schemas/PromptFilter' prompt_id: '#/components/schemas/PromptIdFilter' prompt_type: '#/components/schemas/PromptTypeFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' region_name: '#/components/schemas/RegionNameFilter' root_domain: '#/components/schemas/RootDomainFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' tag_name: '#/components/schemas/TagNameFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' topic_name: '#/components/schemas/TopicNameFilter' url: '#/components/schemas/UrlFilter' type: array title: Filters description: List of filters to apply to the citations report. type: object required: - metrics - category_id - start_date - end_date title: StreamCitationsQuery StreamSentimentQuery: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - theme - date - region - topic - topic_id - model - asset_id - asset_name - tag - prompt - prompt_id - sentiment_type - persona type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - positive - negative - occurrences type: array title: Metrics order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By description: "\nCustom ordering of the report results.\n\nThe order is a record of key-value pairs where:\n- key is the field to order by, which can be a metric or dimension\n- value is the direction of the order, either 'asc' for ascending or 'desc' for descending.\n\nWhen not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: 'Start date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: 'End date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' filters: items: oneOf: - $ref: '#/components/schemas/AssetIdFilter' - $ref: '#/components/schemas/profound_answer_engine_insights__filters__AssetNameFilter' - $ref: '#/components/schemas/ThemeFilter' - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/RegionNameFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TopicNameFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/TagNameFilter' - $ref: '#/components/schemas/PromptFilter' - $ref: '#/components/schemas/PersonaIdFilter' discriminator: propertyName: field mapping: asset_id: '#/components/schemas/AssetIdFilter' asset_name: '#/components/schemas/profound_answer_engine_insights__filters__AssetNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' prompt: '#/components/schemas/PromptFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' region_name: '#/components/schemas/RegionNameFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' tag_name: '#/components/schemas/TagNameFilter' theme: '#/components/schemas/ThemeFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' topic_name: '#/components/schemas/TopicNameFilter' type: array title: Filters description: List of filters to apply to the sentiment report. type: object required: - metrics - category_id - start_date - end_date title: StreamSentimentQuery AssetRef: properties: name: anyOf: - type: string - type: 'null' title: Name owned: anyOf: - type: boolean - type: 'null' title: Owned description: Whether the asset is owned by the category. type: object title: AssetRef HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError BotTypeFilter: properties: field: type: string const: bot_type title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string enum: - ai_assistant - ai_training - index - ai_agent - items: type: string enum: - ai_assistant - ai_training - index - ai_agent type: array title: Value type: object required: - field - operator - value title: BotTypeFilter description: Filter by bot_type column (v2 hourly table only) InaccurateThemeRow: properties: themeId: type: string title: Themeid neutralTheme: type: string title: Neutraltheme description: type: string title: Description default: '' inaccurateClaimCount: type: integer title: Inaccurateclaimcount inaccurateClusterCount: type: integer title: Inaccurateclustercount totalClaimCount: type: integer title: Totalclaimcount totalClusterCount: type: integer title: Totalclustercount responseCount: type: integer title: Responsecount totalResponseCount: type: integer title: Totalresponsecount responseShare: type: number title: Responseshare responseShareDelta: anyOf: - type: number - type: 'null' title: Responsesharedelta type: object required: - themeId - neutralTheme - inaccurateClaimCount - inaccurateClusterCount - totalClaimCount - totalClusterCount - responseCount - totalResponseCount - responseShare title: InaccurateThemeRow MentionedFilter: properties: field: type: string const: mentioned title: Field operator: type: string const: is title: Operator value: anyOf: - type: boolean - items: type: boolean type: array title: Value type: object required: - field - operator - value title: MentionedFilter description: Filter citation pages by whether they mention an owned category asset. ClaimCitationSource: properties: href: anyOf: - type: string - type: 'null' title: Href hostname: anyOf: - type: string - type: 'null' title: Hostname citation_category: anyOf: - type: string - type: 'null' title: Citation Category domain_category: anyOf: - type: string - type: 'null' title: Domain Category snippet: anyOf: - type: string - type: 'null' title: Snippet citation_share: anyOf: - type: number - type: 'null' title: Citation Share type: object title: ClaimCitationSource RootDomainFilter: properties: field: type: string const: root_domain title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: RootDomainFilter description: Filter by root domain ReferralSourceFilter: properties: field: type: string const: referral_source title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: ReferralSourceFilter description: 'Filter by referral source. Values are not enum-constrained so the platform''s shared provider filter can pass through IDs that have bot data but no referral data.' Info: properties: total_rows: type: integer title: Total Rows query: anyOf: - additionalProperties: true type: object - type: 'null' title: Query type: object required: - total_rows title: Info description: Base model for report information. ShoppingBrandsV2Query: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive group_by: items: type: string enum: - date - topic - region - prompt type: array title: Group By metrics: anyOf: - items: type: string enum: - visibility_score - average_position - visibility_rank type: array - type: 'null' title: Metrics interval: type: string enum: - day - week - month title: Interval default: day scope: type: string enum: - owned - all title: Scope default: owned assets: anyOf: - type: string - items: type: string type: array - type: 'null' title: Assets description: Restrict to these asset names (a name or list). Overrides `scope`. filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' limit: anyOf: - type: integer maximum: 50.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Page size for scope=all; default 10, max 50. max_results: anyOf: - type: integer maximum: 50000.0 exclusiveMinimum: 0.0 - type: 'null' title: Max Results description: 'Stream endpoint only: cap the number of streamed rows (default: all).' cursor: anyOf: - type: string - type: 'null' title: Cursor additionalProperties: false type: object required: - category_id - start_date - end_date title: ShoppingBrandsV2Query TopicNameFilter: properties: field: type: string const: topic_name title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: TopicNameFilter description: Filter by topic name ReferralsQuery: properties: date_interval: type: string enum: - hour - day - week - month - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - date - host - path - referral_source type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - visits - last_visit type: array title: Metrics order_by: additionalProperties: type: string enum: - asc - desc propertyNames: enum: - date - host - path - referral_source - visits - last_visit type: object title: Order By description: "\nCustom ordering of the report results.\n\nThe order is a record of key-value pairs where:\n- key is the field to order by, which can be a metric or dimension\n- value is the direction of the order, either 'asc' for ascending or 'desc' for descending.\n\nWhen not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc pagination: $ref: '#/components/schemas/Pagination' description: Pagination settings for the report results. domain: type: string title: Domain description: Domain to query logs for. start_date: type: string format: date-time title: Start Date description: 'Start date for logs. Accepts: YYYY-MM-DD, YYYY-MM-DD HH:MM, YYYY-MM-DD HH:MM:SS, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: End date for logs. Accepts same formats as start_date. Defaults to now if omitted. organization_id: anyOf: - type: string format: uuid - type: 'null' title: Organization Id metric_filters: items: $ref: '#/components/schemas/NumericMetricFilter' type: array title: Metric Filters description: Numeric filters applied after report metrics are calculated. filters: items: oneOf: - $ref: '#/components/schemas/PathFilter' - $ref: '#/components/schemas/ReferralSourceFilter' discriminator: propertyName: field mapping: path: '#/components/schemas/PathFilter' referral_source: '#/components/schemas/ReferralSourceFilter' type: array title: Filters description: Filters for referrals report. type: object required: - metrics - domain - start_date title: ReferralsQuery ClusterVerificationPairsQuery: properties: category_id: type: string format: uuid title: Category Id cluster_id: type: string format: uuid title: Cluster Id type: object required: - category_id - cluster_id title: ClusterVerificationPairsQuery InaccuracyDriversResponse: properties: data: items: $ref: '#/components/schemas/InaccuracyDriverRow' type: array title: Data type: object required: - data title: InaccuracyDriversResponse SentimentV2ClaimFilter: properties: field: type: string const: claim title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: SentimentV2ClaimFilter HostnameFilter: properties: field: type: string const: hostname title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: HostnameFilter description: Filter by hostname NumericMetricFilter: properties: field: type: string title: Field operator: type: string enum: - '>' - '>=' - < - <= - '=' - == - '!=' title: Operator value: anyOf: - type: integer - type: number title: Value type: object required: - field - operator - value title: NumericMetricFilter InaccurateThemesResponse: properties: data: items: $ref: '#/components/schemas/InaccurateThemeRow' type: array title: Data totalCount: type: integer title: Totalcount type: object required: - data - totalCount title: InaccurateThemesResponse PathFilter: properties: field: type: string const: path title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: PathFilter description: Filter by request path ShoppingProductsV2Response: properties: info: $ref: '#/components/schemas/ShoppingProductsV2Info' data: items: $ref: '#/components/schemas/ShoppingProductRow' type: array title: Data type: object required: - info - data title: ShoppingProductsV2Response UrlFilter: properties: field: type: string const: url title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: UrlFilter description: Filter by URL ShoppingBrandsV2Info: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total assets matching the query before pagination. count: type: integer title: Count description: Number of assets on this page. When grouped by `date`, `data` holds one row per asset x bucket, so `len(data)` can exceed `count`. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. scope: type: string title: Scope description: 'Asset scope: `all`, `owned`, or `custom` when `assets` was given.' assets: anyOf: - type: string - items: type: string type: array - type: 'null' title: Assets description: Echoed `assets` selection; when set it overrides `scope`. metrics: items: type: string type: array title: Metrics description: Metrics returned per row. additionalProperties: true type: object required: - count - models - start_date - end_date - scope - metrics title: ShoppingBrandsV2Info YoutubeChannelsResponse: properties: info: $ref: '#/components/schemas/YoutubeChannelsInfo' data: items: $ref: '#/components/schemas/YoutubeChannelRow' type: array title: Data type: object required: - info - data title: YoutubeChannelsResponse ShoppingAllItemsWithMerchantsQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false dimensions: items: type: string enum: - period - product_name - brand_name - product_url - product_image_urls - product_price - merchant_names - merchant_prices type: array title: Dimensions metrics: items: type: string enum: - visibility_score - share_of_voice - average_position - visibility_rank - product_rating - product_num_reviews - total_count type: array title: Metrics owned_asset_names: items: type: string type: array title: Owned Asset Names include_items: items: type: string type: array title: Include Items search_item: anyOf: - type: string - type: 'null' title: Search Item merchant_filter_type: type: string enum: - any - all title: Merchant Filter Type default: any rank_by: type: string enum: - visibility - average_position - name title: Rank By default: visibility sort_order: type: string enum: - asc - desc title: Sort Order default: desc type: object required: - category_id - start_date - end_date title: ShoppingAllItemsWithMerchantsQuery VisibilityV2Response: properties: info: $ref: '#/components/schemas/VisibilityV2Info' data: items: $ref: '#/components/schemas/VisibilityRow' type: array title: Data type: object required: - info - data title: VisibilityV2Response ShoppingTriggeredTopicsQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: type: 'null' title: Pagination include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false type: object required: - category_id - start_date - end_date title: ShoppingTriggeredTopicsQuery InaccurateClustersResponse: properties: data: items: $ref: '#/components/schemas/InaccurateClusterRow' type: array title: Data totalCount: type: integer title: Totalcount type: object required: - data - totalCount title: InaccurateClustersResponse VisibilityRow: properties: asset: anyOf: - $ref: '#/components/schemas/AssetRef' - type: 'null' rank: anyOf: - type: integer - type: 'null' title: Rank description: Asset rank (only when not grouped). date: anyOf: - type: string - type: 'null' title: Date model: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' topic: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' region: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' prompt: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' persona: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' visibility_score: anyOf: - type: number - type: 'null' title: Visibility Score share_of_voice: anyOf: - type: number - type: 'null' title: Share Of Voice average_position: anyOf: - type: number - type: 'null' title: Average Position additionalProperties: true type: object title: VisibilityRow description: One (asset x group) row. Group dimensions and metrics present depend on `group_by`/`metrics`. ClusterExampleRunsQuery: properties: start_date: type: string title: Start Date end_date: type: string title: End Date comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date category_id: type: string format: uuid title: Category Id topic_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Topic Ids exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false tag_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Tag Ids tag_filter_type: type: string enum: - all - any title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false region_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Region Ids platform_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Platform Ids persona_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Persona Ids include_no_persona: type: boolean title: Include No Persona default: false prompt_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Prompt Ids citation_categories: anyOf: - items: type: string type: array - type: 'null' title: Citation Categories cluster_id: type: string format: uuid title: Cluster Id limit: type: integer minimum: 1.0 title: Limit default: 20 offset: type: integer minimum: 0.0 title: Offset default: 0 type: object required: - start_date - end_date - category_id - cluster_id title: ClusterExampleRunsQuery InaccurateClustersQuery: properties: start_date: type: string title: Start Date end_date: type: string title: End Date comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date category_id: type: string format: uuid title: Category Id topic_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Topic Ids exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false tag_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Tag Ids tag_filter_type: type: string enum: - all - any title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false region_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Region Ids platform_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Platform Ids persona_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Persona Ids include_no_persona: type: boolean title: Include No Persona default: false prompt_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Prompt Ids citation_categories: anyOf: - items: type: string type: array - type: 'null' title: Citation Categories theme_id: anyOf: - type: string format: uuid - type: 'null' title: Theme Id limit: type: integer maximum: 10000.0 minimum: 1.0 title: Limit default: 5000 offset: type: integer minimum: 0.0 title: Offset default: 0 search_query: anyOf: - type: string - type: 'null' title: Search Query include_models: type: boolean title: Include Models default: false type: object required: - start_date - end_date - category_id title: InaccurateClustersQuery ClusterExampleRunsResponse: properties: data: items: $ref: '#/components/schemas/ClusterExampleRun' type: array title: Data totalCount: type: integer title: Totalcount type: object required: - data - totalCount title: ClusterExampleRunsResponse YoutubeVideosResponse: properties: info: $ref: '#/components/schemas/YoutubeVideosInfo' data: items: $ref: '#/components/schemas/YoutubeVideoRow' type: array title: Data type: object required: - info - data title: YoutubeVideosResponse SentimentV2Query: properties: category_id: type: string format: uuid title: Category Id asset: type: string title: Asset description: The brand name to analyze (sentiment is extracted on name, not id). start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date description: YYYY-MM-DD, ET, inclusive (with end). comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date description: YYYY-MM-DD, ET, inclusive (with start). group_by: items: type: string enum: - date - model - topic - region - prompt - persona - tag - theme - claim - run - competitor type: array title: Group By metrics: anyOf: - items: type: string enum: - positive_sentiment - negative_sentiment - occurrence type: array - type: 'null' title: Metrics interval: type: string enum: - day - week - month title: Interval default: day filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' sort: $ref: '#/components/schemas/app__routes__v2__answer_engine_insights__reports__sentiment__SortSpec' include_cited_websites: type: boolean title: Include Cited Websites description: Return cited websites per row (only when grouping by `theme`/`claim`). default: false limit: anyOf: - type: integer maximum: 50.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Page size; default 10, max 50. max_results: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Max Results description: 'Stream endpoint only: cap the number of streamed rows (default: all).' cursor: anyOf: - type: string - type: 'null' title: Cursor additionalProperties: false type: object required: - category_id - asset - start_date - end_date title: SentimentV2Query ShoppingTriggerRateV2Response: properties: info: $ref: '#/components/schemas/ShoppingTriggerRateV2Info' data: items: $ref: '#/components/schemas/ShoppingTriggerRateRow' type: array title: Data type: object required: - info - data title: ShoppingTriggerRateV2Response ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError QueryFanoutRow: properties: date: anyOf: - type: string - type: 'null' title: Date model: anyOf: - type: string - type: 'null' title: Model region: anyOf: - type: string - type: 'null' title: Region prompt: anyOf: - type: string - type: 'null' title: Prompt query: anyOf: - type: string - type: 'null' title: Query total_fanouts: anyOf: - type: number - type: 'null' title: Total Fanouts fanouts_per_execution: anyOf: - type: number - type: 'null' title: Fanouts Per Execution share: anyOf: - type: number - type: 'null' title: Share query_variations: anyOf: - type: integer - type: 'null' title: Query Variations rank: anyOf: - type: integer - type: 'null' title: Rank additionalProperties: true type: object title: QueryFanoutRow description: One row. Group dimensions are plain values (not `{id, name}`); metrics present depend on `metrics`. AccuracyTrendSeriesMeta: properties: id: type: string title: Id label: type: string title: Label total: type: integer title: Total type: object required: - id - label - total title: AccuracyTrendSeriesMeta SentimentV2RunIdFilter: properties: field: type: string const: run_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: SentimentV2RunIdFilter VisibilityQuery: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - date - region - topic - topic_id - model - asset_id - asset_name - prompt - prompt_id - tag - persona type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - share_of_voice - mentions_count - visibility_score - executions - average_position type: array title: Metrics order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By description: "\nCustom ordering of the report results.\n\nThe order is a record of key-value pairs where:\n- key is the field to order by, which can be a metric or dimension\n- value is the direction of the order, either 'asc' for ascending or 'desc' for descending.\n\nWhen not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc pagination: $ref: '#/components/schemas/Pagination' description: Pagination settings for the report results. category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: 'Start date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: 'End date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/RegionNameFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TopicNameFilter' - $ref: '#/components/schemas/profound_answer_engine_insights__filters__AssetNameFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/TagNameFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PromptFilter' - $ref: '#/components/schemas/PersonaIdFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_answer_engine_insights__filters__AssetNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' prompt: '#/components/schemas/PromptFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' region_name: '#/components/schemas/RegionNameFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' tag_name: '#/components/schemas/TagNameFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' topic_name: '#/components/schemas/TopicNameFilter' type: array title: Filters description: List of filters to apply to the visibility report. type: object required: - metrics - category_id - start_date - end_date title: VisibilityQuery FactcheckClaimsRow: properties: cluster_id: anyOf: - type: string - type: 'null' title: Cluster Id claim: anyOf: - type: string - type: 'null' title: Claim occurrence: anyOf: - type: number - type: 'null' title: Occurrence reasoning: anyOf: - type: string - type: 'null' title: Reasoning models: anyOf: - items: $ref: '#/components/schemas/ClaimModelOccurrence' type: array - type: 'null' title: Models evidence: anyOf: - items: $ref: '#/components/schemas/ClaimEvidence' type: array - type: 'null' title: Evidence citation_sources: anyOf: - items: $ref: '#/components/schemas/ClaimCitationSource' type: array - type: 'null' title: Citation Sources model: anyOf: - $ref: '#/components/schemas/ClaimModelOccurrence' - type: 'null' region: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' persona: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' prompt: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' topic: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' tag: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' theme: anyOf: - type: string - $ref: '#/components/schemas/DimensionRef' - type: 'null' title: Theme description: Claim theme (string), or an `{id, name}` ref when sectioning by `theme`. accuracy: anyOf: - type: number - type: 'null' title: Accuracy accurate: anyOf: - type: integer - type: 'null' title: Accurate inaccurate: anyOf: - type: integer - type: 'null' title: Inaccurate total_claims: anyOf: - type: integer - type: 'null' title: Total Claims claims: anyOf: - items: $ref: '#/components/schemas/FactcheckClaim' type: array - type: 'null' title: Claims additionalProperties: true type: object title: FactcheckClaimsRow description: 'A flat claim, or (with `group_by`) a section: a dimension + accuracy rollup + its `claims`. Present fields depend on `group_by`/`include`.' FactCheckSetupStatusQuery: properties: category_id: type: string format: uuid title: Category Id type: object required: - category_id title: FactCheckSetupStatusQuery StreamWebSearchResultsQuery: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - hostname - path - url - root_domain - date - region - topic - topic_id - model - tag - prompt - prompt_id - persona - search_query type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - count - search_share type: array minItems: 1 title: Metrics description: Metrics to include. `search_share` is the per-prompt occurrence rate. order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By description: "\n Custom ordering of the report results.\n\n The order is a record of key-value pairs where:\n - `key` is the field to order by, which can be a metric or dimension\n - `value` is the direction of the order, either `asc` for ascending or `desc` for descending.\n\n When not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc - count: desc date: asc pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: 'Start date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: 'End date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' filters: items: oneOf: - $ref: '#/components/schemas/HostnameFilter' - $ref: '#/components/schemas/PathFilter' - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/UrlFilter' - $ref: '#/components/schemas/RootDomainFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/PromptFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/SearchQueryFilter' discriminator: propertyName: field mapping: hostname: '#/components/schemas/HostnameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' path: '#/components/schemas/PathFilter' persona_id: '#/components/schemas/PersonaIdFilter' prompt: '#/components/schemas/PromptFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' root_domain: '#/components/schemas/RootDomainFilter' search_query: '#/components/schemas/SearchQueryFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' url: '#/components/schemas/UrlFilter' type: array title: Filters description: List of filters to apply to the web search results report. type: object required: - metrics - category_id - start_date - end_date title: StreamWebSearchResultsQuery BotsReportQuery: properties: date_interval: type: string enum: - hour - day - week - month - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - date - host - path - bot_name - bot_provider type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - count - citations - indexing - training - last_visit type: array title: Metrics order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By description: "\nCustom ordering of the report results.\n\nThe order is a record of key-value pairs where:\n- key is the field to order by, which can be a metric or dimension\n- value is the direction of the order, either 'asc' for ascending or 'desc' for descending.\n\nWhen not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc pagination: $ref: '#/components/schemas/Pagination' description: Pagination settings for the report results. domain: type: string title: Domain description: Domain to query logs for. start_date: type: string format: date-time title: Start Date description: 'Start date for logs. Accepts: YYYY-MM-DD, YYYY-MM-DD HH:MM, YYYY-MM-DD HH:MM:SS, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: End date for logs. Accepts same formats as start_date. Defaults to now if omitted. organization_id: anyOf: - type: string format: uuid - type: 'null' title: Organization Id metric_filters: items: $ref: '#/components/schemas/NumericMetricFilter' type: array title: Metric Filters description: Numeric filters applied after report metrics are calculated. filters: items: oneOf: - $ref: '#/components/schemas/PathFilter' - $ref: '#/components/schemas/BotNameFilter' - $ref: '#/components/schemas/BotProviderFilter' discriminator: propertyName: field mapping: bot_name: '#/components/schemas/BotNameFilter' bot_provider: '#/components/schemas/BotProviderFilter' path: '#/components/schemas/PathFilter' type: array title: Filters description: Filters for bots report. type: object required: - metrics - domain - start_date title: BotsReportQuery AccuracyCitationEvidence: properties: kbName: type: string title: Kbname default: '' kbPath: type: string title: Kbpath default: '' kbSnippet: type: string title: Kbsnippet default: '' type: object title: AccuracyCitationEvidence description: 'A single knowledge-base ground-truth snippet that refutes a claim''s cluster. ``kb_name`` is the official knowledge base name; ``kb_path`` is the document path within that knowledge base. ``kb_name`` is populated by the external API layer (which can reach the knowledge-base service) and defaults to ``""`` elsewhere.' QueryFanoutsV2Response: properties: info: $ref: '#/components/schemas/QueryFanoutsV2Info' data: items: $ref: '#/components/schemas/QueryFanoutRow' type: array title: Data type: object required: - info - data title: QueryFanoutsV2Response FactcheckScoresQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive group_by: items: type: string enum: - date - model - region - persona - prompt - topic - tag - citation - theme type: array maxItems: 2 title: Group By description: Up to two dimensions to slice by; empty returns the headline score. `citation` must be alone. filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' description: Scope which responses count (see Filtering). limit: anyOf: - type: integer maximum: 100.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Rows per page; default 100. max_results: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Max Results description: 'Stream only: cap rows returned.' cursor: anyOf: - type: string - type: 'null' title: Cursor additionalProperties: false type: object required: - category_id - start_date - end_date title: FactcheckScoresQuery description: Accuracy scores. `group_by` picks the slice (one or two dimensions); empty → the headline score. SentimentV2ReportDataPoint: properties: scores: $ref: '#/components/schemas/SentimentPeriodScores' date: anyOf: - type: string - type: 'null' title: Date prev_date: anyOf: - type: string - type: 'null' title: Prev Date group_ids: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Group Ids group_names: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Group Names group_metadata: anyOf: - $ref: '#/components/schemas/SentimentV2ReportGroupMetadata' - type: 'null' cited_website_hrefs: items: type: string type: array title: Cited Website Hrefs total_count: anyOf: - type: integer - type: 'null' title: Total Count type: object required: - scores title: SentimentV2ReportDataPoint ShoppingMerchantRow: properties: merchant_name: anyOf: - type: string - type: 'null' title: Merchant Name merchant_share: anyOf: - type: number - type: 'null' title: Merchant Share merchant_share_rank: anyOf: - type: integer - type: 'null' title: Merchant Share Rank merchant_visibility: anyOf: - type: number - type: 'null' title: Merchant Visibility merchant_visibility_rank: anyOf: - type: integer - type: 'null' title: Merchant Visibility Rank date: anyOf: - type: string - type: 'null' title: Date visibility_rank: anyOf: - type: integer - type: 'null' title: Visibility Rank brand_name: anyOf: - type: string - type: 'null' title: Brand Name brand_share: anyOf: - type: number - type: 'null' title: Brand Share product: anyOf: - additionalProperties: true type: object - type: 'null' title: Product product_visibility: anyOf: - type: number - type: 'null' title: Product Visibility product_rank: anyOf: - type: integer - type: 'null' title: Product Rank additionalProperties: true type: object title: ShoppingMerchantRow description: 'One merchant row. `brand_name`/`brand_share` appear in the brand-share view; `product`/product metrics in the top-products view; metrics vary by view.' AssetIdFilter: properties: field: type: string const: asset_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: AssetIdFilter InaccurateThemesQuery: properties: start_date: type: string title: Start Date end_date: type: string title: End Date comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date category_id: type: string format: uuid title: Category Id topic_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Topic Ids exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false tag_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Tag Ids tag_filter_type: type: string enum: - all - any title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false region_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Region Ids platform_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Platform Ids persona_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Persona Ids include_no_persona: type: boolean title: Include No Persona default: false prompt_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Prompt Ids citation_categories: anyOf: - items: type: string type: array - type: 'null' title: Citation Categories limit: type: integer minimum: 1.0 title: Limit default: 10 offset: type: integer minimum: 0.0 title: Offset default: 0 sort_by: type: string const: response_share title: Sort By default: response_share sort_order: type: string enum: - asc - desc title: Sort Order default: desc search_query: anyOf: - type: string - type: 'null' title: Search Query type: object required: - start_date - end_date - category_id title: InaccurateThemesQuery WebSearchResultsQuery: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - hostname - path - url - root_domain - date - region - topic - topic_id - model - tag - prompt - prompt_id - persona - search_query type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - count - search_share type: array minItems: 1 title: Metrics description: Metrics to include. `search_share` is the per-prompt occurrence rate. order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By description: "\n Custom ordering of the report results.\n\n The order is a record of key-value pairs where:\n - `key` is the field to order by, which can be a metric or dimension\n - `value` is the direction of the order, either `asc` for ascending or `desc` for descending.\n\n When not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc - count: desc date: asc pagination: $ref: '#/components/schemas/Pagination' description: Pagination settings for the report results. category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: 'Start date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: 'End date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' filters: items: oneOf: - $ref: '#/components/schemas/HostnameFilter' - $ref: '#/components/schemas/PathFilter' - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/UrlFilter' - $ref: '#/components/schemas/RootDomainFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/PromptFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/SearchQueryFilter' discriminator: propertyName: field mapping: hostname: '#/components/schemas/HostnameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' path: '#/components/schemas/PathFilter' persona_id: '#/components/schemas/PersonaIdFilter' prompt: '#/components/schemas/PromptFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' root_domain: '#/components/schemas/RootDomainFilter' search_query: '#/components/schemas/SearchQueryFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' url: '#/components/schemas/UrlFilter' type: array title: Filters description: List of filters to apply to the web search results report. type: object required: - metrics - category_id - start_date - end_date title: WebSearchResultsQuery profound_shopping__api__AssetNameFilter: properties: field: type: string const: asset_name title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: AssetNameFilter WebSearchResultsResponse: properties: info: $ref: '#/components/schemas/Info' data: items: $ref: '#/components/schemas/WebSearchResultsResult' type: array title: Data type: object required: - info - data title: WebSearchResultsResponse examples: - data: - dimensions: - example.com - /some/path - '2023-10-01' metrics: - 10 - 0.05 info: query: date_interval: day dimensions: - hostname - path - date filters: - field: hostname operator: is value: example.com metrics: - count - search_share total_rows: 200 SentimentPeriodScores: properties: current: anyOf: - $ref: '#/components/schemas/SentimentScores' - type: 'null' previous: anyOf: - $ref: '#/components/schemas/SentimentScores' - type: 'null' type: object title: SentimentPeriodScores ShoppingExecutionsQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false analysis_types: items: type: string enum: - visibility - sentiment - sentiment_v2 - accuracy type: array title: Analysis Types analysis_filter_type: type: string enum: - any - all title: Analysis Filter Type default: any owned_asset_names: items: type: string type: array title: Owned Asset Names type: object required: - category_id - start_date - end_date title: ShoppingExecutionsQuery CitationsQuery: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - hostname - path - date - region - topic - topic_id - model - tag - prompt - prompt_id - url - root_domain - persona - citation_category type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: type: string enum: - count - citation_share - share_of_voice - first_cited_at type: array title: Metrics description: Metrics to include. `share_of_voice` is deprecated, use `citation_share` instead. deprecated_values: share_of_voice: Use citation_share instead order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By description: "\n Custom ordering of the report results.\n\n The order is a record of key-value pairs where:\n - `key` is the field to order by, which can be a metric or dimension\n - `value` is the direction of the order, either `asc` for ascending or `desc` for descending.\n\n When not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc - count: desc date: asc pagination: $ref: '#/components/schemas/Pagination' description: Pagination settings for the report results. category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: 'Start date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: 'End date for the report. Accepts formats: YYYY-MM-DD, YYYY-MM-DD HH:MM, or full ISO timestamp.' filters: items: oneOf: - $ref: '#/components/schemas/HostnameFilter' - $ref: '#/components/schemas/PathFilter' - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/RegionNameFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TopicNameFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/TagNameFilter' - $ref: '#/components/schemas/UrlFilter' - $ref: '#/components/schemas/RootDomainFilter' - $ref: '#/components/schemas/AnalysisTypeFilter' - $ref: '#/components/schemas/PromptTypeFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/CitationCategoryFilter' - $ref: '#/components/schemas/PromptFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/MentionedFilter' discriminator: propertyName: field mapping: analysis_type: '#/components/schemas/AnalysisTypeFilter' citation_category: '#/components/schemas/CitationCategoryFilter' hostname: '#/components/schemas/HostnameFilter' mentioned: '#/components/schemas/MentionedFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' path: '#/components/schemas/PathFilter' persona_id: '#/components/schemas/PersonaIdFilter' prompt: '#/components/schemas/PromptFilter' prompt_id: '#/components/schemas/PromptIdFilter' prompt_type: '#/components/schemas/PromptTypeFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' region_name: '#/components/schemas/RegionNameFilter' root_domain: '#/components/schemas/RootDomainFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' tag_name: '#/components/schemas/TagNameFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' topic_name: '#/components/schemas/TopicNameFilter' url: '#/components/schemas/UrlFilter' type: array title: Filters description: List of filters to apply to the citations report. type: object required: - metrics - category_id - start_date - end_date title: CitationsQuery ClaimEvidence: properties: id: anyOf: - type: string - type: 'null' title: Id kb_path: anyOf: - type: string - type: 'null' title: Kb Path kb_snippet: anyOf: - type: string - type: 'null' title: Kb Snippet source_updated_at: anyOf: - type: string - type: 'null' title: Source Updated At type: object title: ClaimEvidence CitationRow: properties: domain: anyOf: - type: string - type: 'null' title: Domain page: anyOf: - type: string - type: 'null' title: Page rank: anyOf: - type: integer - type: 'null' title: Rank date: anyOf: - type: string - type: 'null' title: Date model: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' topic: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' region: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' persona: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' prompt: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' count: anyOf: - type: integer - type: 'null' title: Count citation_share: anyOf: - type: number - type: 'null' title: Citation Share first_cited_at: anyOf: - type: string - type: 'null' title: First Cited At description: Pages only. additionalProperties: true type: object title: CitationRow description: One (source x group) row. Each row carries `domain` or `page`; group dims/metrics vary. TopInaccurateClaimsQuery: properties: start_date: type: string title: Start Date end_date: type: string title: End Date comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date category_id: type: string format: uuid title: Category Id topic_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Topic Ids exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false tag_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Tag Ids tag_filter_type: type: string enum: - all - any title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false region_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Region Ids platform_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Platform Ids persona_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Persona Ids include_no_persona: type: boolean title: Include No Persona default: false prompt_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Prompt Ids citation_categories: anyOf: - items: type: string type: array - type: 'null' title: Citation Categories limit: type: integer maximum: 50.0 minimum: 1.0 title: Limit default: 5 type: object required: - start_date - end_date - category_id title: TopInaccurateClaimsQuery CitationCategoryFilter: properties: field: type: string const: citation_category title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: CitationCategoryFilter description: Filter by citation category BotNameFilter: properties: field: type: string const: bot_name title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: BotNameFilter description: 'Filter by bot name (user agent). Values come from analytics data and should not be enum-constrained because web-v2 may send newly cataloged user-agent names.' AccuracyCitationClaim: properties: claimId: type: string title: Claimid claim: type: string title: Claim attributeId: type: string title: Attributeid attribute: type: string title: Attribute neutralThemeId: type: string title: Neutralthemeid neutralTheme: type: string title: Neutraltheme snippet: type: string title: Snippet polarity: type: string enum: - positive - negative title: Polarity default: negative kbPath: type: string title: Kbpath default: '' kbSnippet: type: string title: Kbsnippet default: '' reasoning: type: string title: Reasoning default: '' evidence: items: $ref: '#/components/schemas/AccuracyCitationEvidence' type: array title: Evidence type: object required: - claimId - claim - attributeId - attribute - neutralThemeId - neutralTheme - snippet title: AccuracyCitationClaim description: 'A single inaccurate claim mapped to a cluster, surfaced on a cited page. ``attribute`` carries the cluster''s canonical claim so the drawer can group claims the same way it groups sentiment attributes. ``reasoning`` and ``evidence`` mirror the cluster''s FactCheck verdict: the "why it''s inaccurate" explanation plus the refuting knowledge-base snippets surfaced in the Claim Analysis drawer. ``kb_path``/``kb_snippet`` are retained as the cluster''s single representative snippet for backward compatibility.' SentimentV2Info: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total rows matching the query before pagination (null when not computed). count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. asset: type: string title: Asset description: The analyzed brand name. metrics: items: type: string type: array title: Metrics description: Sentiment metrics returned per row. comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date description: Comparison-window start (when requested). comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date description: Comparison-window end (when requested). additionalProperties: true type: object required: - count - models - start_date - end_date - asset - metrics title: SentimentV2Info YoutubeSummaryQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' description: 'Advanced filter tree. Prompt-level dimensions are `model`, `topic`, `region`, `prompt`, `persona`, `tag`, `analysis_type`. `channel` covers both channel cases: `in` with a list of handles selects exactly those channels, resolving each handle to its channel so a renamed channel is never returned in pieces; `contains` matches a channel''s title or handle by name. Combine with `and`/`or`/`not` up to 3 deep. An exact `channel` selection must be its own `and` clause, and a `channel` leaf cannot share an `or` or `not` with a prompt-level leaf, because those compile at different stages of the query. `domain` and `page` are rejected rather than approximated: every row here is one domain, and `page` is not a video id.' additionalProperties: false type: object required: - category_id - start_date - end_date title: YoutubeSummaryQuery description: One object describing the window. AccuracyCitationAnalysisResponse: properties: href: type: string title: Href domain: type: string title: Domain pageTitle: type: string title: Pagetitle markdownContent: type: string title: Markdowncontent claims: items: $ref: '#/components/schemas/AccuracyCitationClaim' type: array title: Claims type: object required: - href - domain - pageTitle - markdownContent title: AccuracyCitationAnalysisResponse FilterNode: properties: and: anyOf: - items: $ref: '#/components/schemas/FilterNode' type: array - type: 'null' title: And or: anyOf: - items: $ref: '#/components/schemas/FilterNode' type: array - type: 'null' title: Or not: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' field: anyOf: - type: string - type: 'null' title: Field op: anyOf: - type: string - type: 'null' title: Op value: title: Value additionalProperties: false type: object title: FilterNode description: A leaf (`field`/`op`/`value`) or an `and`/`or`/`not` group. SentimentV2ReportGroupMetadata: properties: theme: anyOf: - type: string - type: 'null' title: Theme claim: anyOf: - type: string - type: 'null' title: Claim sentiment: anyOf: - type: string enum: - positive - negative - type: 'null' title: Sentiment prompt_id: anyOf: - type: string - type: 'null' title: Prompt Id prompt_text: anyOf: - type: string - type: 'null' title: Prompt Text topic_id: anyOf: - type: string - type: 'null' title: Topic Id run_id: anyOf: - type: string - type: 'null' title: Run Id created_at: anyOf: - type: string - type: 'null' title: Created At model_id: anyOf: - type: string - type: 'null' title: Model Id region_id: anyOf: - type: string - type: 'null' title: Region Id persona_id: anyOf: - type: string - type: 'null' title: Persona Id asset_name: anyOf: - type: string - type: 'null' title: Asset Name child_count_total: anyOf: - type: integer - type: 'null' title: Child Count Total child_count_matching: anyOf: - type: integer - type: 'null' title: Child Count Matching parent_matches_search: anyOf: - type: boolean - type: 'null' title: Parent Matches Search child_matches_search: anyOf: - type: boolean - type: 'null' title: Child Matches Search type: object title: SentimentV2ReportGroupMetadata ReferralTypeFilter: properties: field: type: string const: referral_type title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string enum: - internal - referer - utm - none - items: type: string enum: - internal - referer - utm - none type: array title: Value type: object required: - field - operator - value title: ReferralTypeFilter description: Filter by referral type ShoppingItemVisibilityQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false dimensions: items: type: string enum: - period - product_key - product_name - brand_name - date - topic_id - prompt_id - prompt - product_url - product_image_urls - product_price type: array title: Dimensions metrics: items: type: string enum: - visibility_score - share_of_voice - average_position - visibility_rank - position1_percentage - position2_percentage - position3_percentage - position_above3_percentage - product_rating - product_num_reviews - total_count type: array title: Metrics owned_asset_names: items: type: string type: array title: Owned Asset Names include_items: items: type: string type: array title: Include Items search_item: anyOf: - type: string - type: 'null' title: Search Item merchant_filter_type: type: string enum: - any - all title: Merchant Filter Type default: any include_competitors: type: boolean title: Include Competitors default: false target_product: anyOf: - type: string - type: 'null' title: Target Product competitor_limit: type: integer minimum: 1.0 title: Competitor Limit default: 5 include_position_frequency: type: boolean title: Include Position Frequency default: false type: object required: - category_id - start_date - end_date title: ShoppingItemVisibilityQuery SentimentV2ThemeIdFilter: properties: field: type: string const: theme_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: SentimentV2ThemeIdFilter ClaimBreakdownRow: properties: id: type: string title: Id label: type: string title: Label responseCount: type: integer title: Responsecount totalResponseCount: type: integer title: Totalresponsecount responseShare: type: number title: Responseshare responseShareDelta: anyOf: - type: number - type: 'null' title: Responsesharedelta prevResponseCount: type: integer title: Prevresponsecount prevTotalResponseCount: type: integer title: Prevtotalresponsecount type: object required: - id - label - responseCount - totalResponseCount - responseShare - prevResponseCount - prevTotalResponseCount title: ClaimBreakdownRow VisibilityV2Query: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive group_by: items: type: string enum: - date - model - topic - region - prompt - persona type: array title: Group By metrics: anyOf: - items: type: string enum: - visibility_score - share_of_voice - average_position type: array - type: 'null' title: Metrics interval: type: string enum: - day - week - month title: Interval default: day scope: type: string enum: - owned - all title: Scope default: owned assets: anyOf: - type: string - items: type: string type: array - $ref: '#/components/schemas/EntityFilterClause' - type: 'null' title: Assets description: A name (`is`), a list (`in`), or {op,value} with op `is`/`in`/`not_in`. filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' sort: $ref: '#/components/schemas/app__routes__v2__answer_engine_insights__reports__visibility__SortSpec' limit: anyOf: - type: integer maximum: 50.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Page size; default 10, max 50. max_results: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Max Results description: 'Stream endpoint only: cap the number of streamed rows (default: all).' cursor: anyOf: - type: string - type: 'null' title: Cursor additionalProperties: false type: object required: - category_id - start_date - end_date title: VisibilityV2Query BotsReportQueryV2: properties: date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval description: Date interval for the report. (only used with date dimension) default: day dimensions: items: type: string enum: - date - hour - host - path - bot_name - bot_provider - bot_type type: array title: Dimensions description: Dimensions to group the report by. default: [] metrics: items: anyOf: - type: string enum: - count - citations - indexing - training - last_visit - type: string const: agents type: array title: Metrics order_by: additionalProperties: type: string enum: - asc - desc propertyNames: enum: - date - hour - host - path - count - citations - indexing - training - agents - last_visit - bot_type type: object title: Order By description: "\nCustom ordering of the report results.\n\nThe order is a record of key-value pairs where:\n- key is the field to order by, which can be a metric or dimension\n- value is the direction of the order, either 'asc' for ascending or 'desc' for descending.\n\nWhen not specified, the default order is the first metric in the query descending.\n " default: {} examples: - date: asc pagination: $ref: '#/components/schemas/Pagination' description: Pagination settings for the report results. domain: type: string title: Domain description: Domain to query logs for. start_date: type: string format: date-time title: Start Date description: 'Start date for logs. Accepts: YYYY-MM-DD, YYYY-MM-DD HH:MM, YYYY-MM-DD HH:MM:SS, or full ISO timestamp.' end_date: type: string format: date-time title: End Date description: End date in UTC. Accepts same formats as start_date. Defaults to now UTC if omitted. organization_id: anyOf: - type: string format: uuid - type: 'null' title: Organization Id timezone: type: string title: Timezone description: IANA timezone name for date bucketing and filter boundaries. default: UTC metric_filters: items: $ref: '#/components/schemas/NumericMetricFilter' type: array title: Metric Filters description: Numeric filters applied after report metrics are calculated. filters: items: oneOf: - $ref: '#/components/schemas/PathFilter' - $ref: '#/components/schemas/BotNameFilter' - $ref: '#/components/schemas/BotProviderFilter' - $ref: '#/components/schemas/BotTypeFilter' discriminator: propertyName: field mapping: bot_name: '#/components/schemas/BotNameFilter' bot_provider: '#/components/schemas/BotProviderFilter' bot_type: '#/components/schemas/BotTypeFilter' path: '#/components/schemas/PathFilter' type: array title: Filters description: Filters for bots report. domain_id: anyOf: - type: string format: uuid - type: 'null' title: Domain Id description: Domain UUID used for tag lookups. tags: items: type: string type: array title: Tags type: object required: - metrics - domain - start_date title: BotsReportQueryV2 ClaimModelOccurrence: properties: id: anyOf: - type: string - type: 'null' title: Id name: anyOf: - type: string - type: 'null' title: Name occurrence: anyOf: - type: number - type: 'null' title: Occurrence description: Only populated for entries in `models`; omitted from grouped-section `model`. type: object title: ClaimModelOccurrence TagIdFilter: properties: field: anyOf: - type: string const: tag_id - type: string const: tag deprecated: true title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: TagIdFilter description: Filter by tag (prompt group) UUID. QueryFanoutsV2Info: properties: total_results: anyOf: - type: integer - type: 'null' title: Total Results description: Total rows matching the query before pagination (null when not computed). count: type: integer title: Count description: Number of rows returned in `data` for this page. next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor description: Opaque cursor for the next page; null on the last page. models: items: type: string type: array title: Models description: Display names of the models the report covers. start_date: type: string title: Start Date description: Echoed request start date (YYYY-MM-DD, ET). end_date: type: string title: End Date description: Echoed request end date (YYYY-MM-DD, ET). filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: Echoed normalized filter tree, or null when no filter was sent. metrics: items: type: string type: array title: Metrics description: Fanout metrics returned per row. coverage_note: type: string title: Coverage Note description: Caveat about which runs the fanout metrics cover. additionalProperties: true type: object required: - count - models - start_date - end_date - metrics - coverage_note title: QueryFanoutsV2Info RegionNameFilter: properties: field: type: string const: region_name title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: RegionNameFilter description: Filter by region name. TopInaccurateClaimsResponse: properties: data: items: $ref: '#/components/schemas/TopInaccurateClaimRow' type: array title: Data type: object required: - data title: TopInaccurateClaimsResponse InaccuracyDriversQuery: properties: start_date: type: string title: Start Date end_date: type: string title: End Date comparison_start_date: anyOf: - type: string - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string - type: 'null' title: Comparison End Date category_id: type: string format: uuid title: Category Id topic_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Topic Ids exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false tag_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Tag Ids tag_filter_type: type: string enum: - all - any title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false region_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Region Ids platform_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Platform Ids persona_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Persona Ids include_no_persona: type: boolean title: Include No Persona default: false prompt_ids: anyOf: - items: type: string format: uuid type: array - type: 'null' title: Prompt Ids citation_categories: anyOf: - items: type: string type: array - type: 'null' title: Citation Categories limit: type: integer maximum: 50.0 minimum: 1.0 title: Limit default: 5 type: object required: - start_date - end_date - category_id title: InaccuracyDriversQuery ShoppingTriggerRateV2Query: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive group_by: items: type: string enum: - date - topic - region - persona - prompt type: array title: Group By description: Group by `prompt`/`topic` for the per-prompt/-topic trigger rate. metrics: anyOf: - items: type: string enum: - total_runs - shopping_triggered_runs - trigger_rate_percentage type: array - type: 'null' title: Metrics interval: type: string enum: - day - week - month title: Interval default: day filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' limit: anyOf: - type: integer maximum: 50.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Page size; default 10, max 50. max_results: anyOf: - type: integer maximum: 50000.0 exclusiveMinimum: 0.0 - type: 'null' title: Max Results description: 'Stream endpoint only: cap streamed rows.' cursor: anyOf: - type: string - type: 'null' title: Cursor additionalProperties: false type: object required: - category_id - start_date - end_date title: ShoppingTriggerRateV2Query CitationsResult: properties: metrics: items: anyOf: - type: integer - type: number - type: string - type: 'null' type: array title: Metrics dimensions: items: anyOf: - type: string - type: string format: uuid type: array title: Dimensions type: object required: - metrics - dimensions title: CitationsResult AnalysisTypeFilter: properties: field: type: string const: analysis_type title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string enum: - visibility - sentiment - sentiment_v2 - accuracy - items: type: string enum: - visibility - sentiment - sentiment_v2 - accuracy type: array title: Value type: object required: - field - operator - value title: AnalysisTypeFilter description: Filter by analysis type (visibility, sentiment, or accuracy). ShoppingProductMerchantUrlsQuery: properties: category_id: type: string format: uuid title: Category Id product_names: items: type: string type: array title: Product Names start_date: type: string format: date-time title: Start Date end_date: type: string format: date-time title: End Date type: object required: - category_id - product_names - start_date - end_date title: ShoppingProductMerchantUrlsQuery QueryFanoutsV2Query: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive group_by: items: type: string enum: - date - model - region - prompt - query type: array title: Group By metrics: anyOf: - items: type: string enum: - fanouts_per_execution - total_fanouts - share - query_variations type: array - type: 'null' title: Metrics interval: type: string enum: - day - week - month title: Interval default: day filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' sort: anyOf: - $ref: '#/components/schemas/app__routes__v2__answer_engine_insights__reports__query_fanouts__SortSpec' - type: 'null' limit: anyOf: - type: integer maximum: 50.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Page size; default 10, max 50. max_results: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Max Results description: 'Stream endpoint only: cap the number of streamed rows (default: all).' cursor: anyOf: - type: string - type: 'null' title: Cursor additionalProperties: false type: object required: - category_id - start_date - end_date title: QueryFanoutsV2Query ShoppingVisibilityQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string format: date-time title: Start Date description: Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. end_date: type: string format: date-time title: End Date description: End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp. comparison_start_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison Start Date comparison_end_date: anyOf: - type: string format: date-time - type: 'null' title: Comparison End Date date_interval: type: string enum: - hour - day - week - month - quarter - year - relative_week title: Date Interval default: day filters: items: oneOf: - $ref: '#/components/schemas/RegionIdFilter' - $ref: '#/components/schemas/ModelIdFilter' - $ref: '#/components/schemas/TopicIdFilter' - $ref: '#/components/schemas/TagIdFilter' - $ref: '#/components/schemas/PromptIdFilter' - $ref: '#/components/schemas/PersonaIdFilter' - $ref: '#/components/schemas/BrandNameFilter' - $ref: '#/components/schemas/MerchantNameFilter' - $ref: '#/components/schemas/ProductNameFilter' - $ref: '#/components/schemas/profound_shopping__api__AssetNameFilter' discriminator: propertyName: field mapping: asset_name: '#/components/schemas/profound_shopping__api__AssetNameFilter' brand_name: '#/components/schemas/BrandNameFilter' merchant_name: '#/components/schemas/MerchantNameFilter' model: '#/components/schemas/ModelIdFilter' model_id: '#/components/schemas/ModelIdFilter' persona_id: '#/components/schemas/PersonaIdFilter' product_name: '#/components/schemas/ProductNameFilter' prompt_id: '#/components/schemas/PromptIdFilter' region: '#/components/schemas/RegionIdFilter' region_id: '#/components/schemas/RegionIdFilter' tag: '#/components/schemas/TagIdFilter' tag_id: '#/components/schemas/TagIdFilter' topic: '#/components/schemas/TopicIdFilter' topic_id: '#/components/schemas/TopicIdFilter' type: array title: Filters order_by: additionalProperties: type: string enum: - asc - desc type: object title: Order By pagination: anyOf: - $ref: '#/components/schemas/Pagination' - type: 'null' include_count: type: boolean title: Include Count default: false tag_filter_type: type: string enum: - any - all title: Tag Filter Type default: any include_no_tag: type: boolean title: Include No Tag default: false exclude_topic_ids: type: boolean title: Exclude Topic Ids default: false dimensions: items: type: string enum: - period - asset_name - date - model_id - topic_id - region_id - prompt_id - prompt type: array title: Dimensions metrics: items: type: string enum: - visibility_score - share_of_voice - average_position - visibility_rank - average_position_rank - position1_percentage - position2_percentage - position3_percentage - position_above3_percentage - total_count type: array title: Metrics owned_asset_names: items: type: string type: array title: Owned Asset Names search_asset: anyOf: - type: string - type: 'null' title: Search Asset include_asset: anyOf: - type: string - type: 'null' title: Include Asset include_asset_only: type: boolean title: Include Asset Only default: false include_assets_only: items: type: string type: array title: Include Assets Only rank_by: type: string enum: - visibility_score - average_position title: Rank By default: visibility_score include_position_frequency: type: boolean title: Include Position Frequency default: false type: object required: - category_id - start_date - end_date title: ShoppingVisibilityQuery PromptFilter: properties: field: type: string const: prompt title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: PromptFilter description: Filter by prompt text CitationScoreRef: properties: url: anyOf: - type: string - type: 'null' title: Url citation_category: anyOf: - type: string - type: 'null' title: Citation Category type: object title: CitationScoreRef AccuracyBreakdownRow: properties: id: type: string title: Id name: type: string title: Name groupIds: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Groupids groupNames: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Groupnames share: type: number title: Share shareChange: anyOf: - type: number - type: 'null' title: Sharechange responseAccuracy: type: number title: Responseaccuracy accuracyChange: anyOf: - type: number - type: 'null' title: Accuracychange accurateCount: type: integer title: Accuratecount default: 0 inaccurateCount: type: integer title: Inaccuratecount inaccurateCountChange: anyOf: - type: integer - type: 'null' title: Inaccuratecountchange promptCount: anyOf: - type: integer - type: 'null' title: Promptcount citationCategory: anyOf: - type: string - type: 'null' title: Citationcategory hasScore: type: boolean title: Hasscore default: true type: object required: - id - name - share - responseAccuracy - inaccurateCount title: AccuracyBreakdownRow Result: properties: metrics: items: anyOf: - type: integer - type: number - type: string type: array title: Metrics dimensions: items: anyOf: - type: string - type: string format: uuid type: array title: Dimensions type: object required: - metrics - dimensions title: Result description: Base model for report results. SentimentV2PersonaIdFilter: properties: field: type: string const: persona_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: SentimentV2PersonaIdFilter AccuracyPagination: properties: dimension: type: string const: group title: Dimension default: group metric: type: string enum: - accuracy - inaccurate_claims title: Metric default: accuracy mode: type: string enum: - current - delta title: Mode default: current direction: anyOf: - type: string enum: - asc - desc - type: 'null' title: Direction additionalProperties: false type: object title: AccuracyPagination description: Canonical grouped pagination plan for Accuracy Breakdown rows. AccuracyCitationAnalysisQuery: properties: category_id: type: string format: uuid title: Category Id clean_href: type: string title: Clean Href start_date: type: string title: Start Date end_date: type: string title: End Date type: object required: - category_id - clean_href - start_date - end_date title: AccuracyCitationAnalysisQuery YoutubeCoverage: properties: total_youtube_citations: type: integer title: Total Youtube Citations description: Every YouTube citation in the window. default: 0 attributed_citations: type: integer title: Attributed Citations description: Citations that resolve to a channel, so can appear in the channel and video rankings. NOT the citation_share divisor — that is total_youtube_citations, so a complete channel ranking's shares sum to slightly less than 1. default: 0 unattributed_citations: type: integer title: Unattributed Citations description: 'Citations with no channel: search and feed URLs, deleted sources, or not yet resolved.' default: 0 citations_video: type: integer title: Citations Video description: Citations pointing at long-form videos. default: 0 citations_short: type: integer title: Citations Short description: Citations pointing at Shorts. default: 0 citations_channel: type: integer title: Citations Channel description: Citations pointing at a channel page rather than a video. default: 0 citations_playlist: type: integer title: Citations Playlist description: Citations pointing at a playlist. default: 0 citations_other: type: integer title: Citations Other description: Search, feed, and homepage URLs. Never attributable. default: 0 distinct_channels: type: integer title: Distinct Channels description: Distinct channels cited. default: 0 distinct_videos: type: integer title: Distinct Videos description: Distinct long-form videos cited. default: 0 distinct_shorts: type: integer title: Distinct Shorts description: Distinct Shorts cited. default: 0 type: object title: YoutubeCoverage description: How much of youtube.com the rollups can speak for. ClaimCitationsResponse: properties: data: items: $ref: '#/components/schemas/ClaimCitationRow' type: array title: Data totalCount: type: integer title: Totalcount type: object required: - data - totalCount title: ClaimCitationsResponse ClaimBreakdownResponse: properties: platform: items: $ref: '#/components/schemas/ClaimBreakdownRow' type: array title: Platform prompt: items: $ref: '#/components/schemas/ClaimPromptBreakdownRow' type: array title: Prompt type: object required: - platform - prompt title: ClaimBreakdownResponse ClusterVerificationPair: properties: pairId: type: string title: Pairid snippetIdx: type: integer title: Snippetidx kbPath: type: string title: Kbpath quote: type: string title: Quote reasoning: type: string title: Reasoning sourceUpdatedAt: anyOf: - type: string - type: 'null' title: Sourceupdatedat type: object required: - pairId - snippetIdx - kbPath - quote - reasoning title: ClusterVerificationPair FactcheckScoreRow: properties: date: anyOf: - type: string - type: 'null' title: Date model: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' region: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' persona: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' prompt: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' topic: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' tag: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' theme: anyOf: - $ref: '#/components/schemas/DimensionRef' - type: 'null' citation: anyOf: - $ref: '#/components/schemas/CitationScoreRef' - type: 'null' accuracy: anyOf: - type: number - type: 'null' title: Accuracy accurate: anyOf: - type: integer - type: 'null' title: Accurate inaccurate: anyOf: - type: integer - type: 'null' title: Inaccurate additionalProperties: true type: object title: FactcheckScoreRow description: 'An accuracy score row: the headline (no dims), a daily point, or a per-dimension breakdown.' YoutubeVideosQuery: properties: category_id: type: string format: uuid title: Category Id start_date: type: string title: Start Date description: YYYY-MM-DD, ET, inclusive end_date: type: string title: End Date description: YYYY-MM-DD, ET, inclusive filter: anyOf: - $ref: '#/components/schemas/FilterNode' - type: 'null' description: 'Advanced filter tree. Prompt-level dimensions are `model`, `topic`, `region`, `prompt`, `persona`, `tag`, `analysis_type`. `channel` covers both channel cases: `in` with a list of handles selects exactly those channels, resolving each handle to its channel so a renamed channel is never returned in pieces; `contains` matches a channel''s title or handle by name. Combine with `and`/`or`/`not` up to 3 deep. An exact `channel` selection must be its own `and` clause, and a `channel` leaf cannot share an `or` or `not` with a prompt-level leaf, because those compile at different stages of the query. `domain` and `page` are rejected rather than approximated: every row here is one domain, and `page` is not a video id.' limit: anyOf: - type: integer maximum: 50.0 exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Page size; default 10, max 50. cursor: anyOf: - type: string - type: 'null' title: Cursor source_types: anyOf: - items: type: string enum: - video - short - channel - playlist - other type: array - type: 'null' title: Source Types description: 'Limit results to YouTube source types: `video`, `short`, `channel`, `playlist`, or `other`. Omit to include `video` and `short` with the default `attribution=''attributed''`; `unattributed` and `all` widen the default to all five source types. Requests containing `other` with `attribution=''attributed''` are rejected.' attribution: type: string enum: - attributed - unattributed - all title: Attribution description: 'Choose attributed citations, unattributed citations, or all citations. An unattributed row has no channel: `source_type` is `other` for a search or feed URL that names no source, and any other type is a source we have no channel for.' default: attributed additionalProperties: false type: object required: - category_id - start_date - end_date title: YoutubeVideosQuery description: Cited videos, optionally narrowed to specific channels. profound_answer_engine_insights__filters__AssetNameFilter: properties: field: type: string const: asset_name title: Field operator: type: string enum: - is - not_is - in - not_in - contains - not_contains - matches - contains_case_insensitive - not_contains_case_insensitive title: Operator value: anyOf: - type: string - items: type: string type: array title: Value type: object required: - field - operator - value title: AssetNameFilter description: Filter by asset name app__routes__v2__answer_engine_insights__reports__visibility__SortSpec: properties: field: type: string enum: - visibility_score - share_of_voice - average_position title: Field default: visibility_score type: object title: SortSpec SentimentV2RegionIdFilter: properties: field: type: string const: region_id title: Field operator: type: string enum: - is - not_is - in - not_in title: Operator value: anyOf: - type: string format: uuid - items: type: string format: uuid type: array title: Value type: object required: - field - operator - value title: SentimentV2RegionIdFilter securitySchemes: APIKeyHeader: type: apiKey in: header name: X-API-Key BearerAuth: type: http scheme: bearer