Browse buyer intent interactions across one or more G2 products in a single query.
This is the multi-product version of browse_product_buyer_intent. Use this when you want to see buyer intent data across multiple products at once, when you want to include the provider dimension, or when you need the scoped_category_id filter to zoom into specific categories.
WHEN TO USE THIS vs browse_product_buyer_intent:
- Use browse_buyer_intent when querying across MULTIPLE products at once
- Use browse_buyer_intent when you need the provider dimension (g2, capterra)
- Use browse_buyer_intent when you need the scoped_category_id filter
- Use browse_product_buyer_intent when you need company_intent_score (single product only)
IDENTIFYING PRODUCTS: subject_product_ids accepts UUIDs OR URL slugs. If a user mentions a G2 product URL like https://www.g2.com/products/slack/reviews, you can extract the slug ("slack") and pass it directly — no need to look up the UUID first.
Examples of valid subject_product_ids values:
- "a1b2c3d4-e5f6-7890-abcd-ef1234567890" (UUID)
- "slack" (slug from g2.com/products/slack)
- "slack,zoom-workplace,microsoft-teams" (multiple slugs)
- "slack,a1b2c3d4-e5f6-7890-abcd-ef1234567890" (mixed slugs and UUIDs)
ACCESS & PERMISSIONS: The subject products scope the permissions of the query. The data you see depends on each product's access tier (universal, competitive, indirect, direct, preview). Observers and superusers (is_observer flag) may have access to products beyond what is visible in the standard product listings — if a user provides a G2 product URL or slug, try it directly even if the product doesn't appear in their product list. The API will return a clear authorization error if access is truly not allowed.
PARAMETERS:
- subject_product_ids: One or more product UUIDs or slugs, comma-separated (required)
- dimensions: Comma-separated grouping fields. If omitted, defaults to company-level
dimensions. Pass "none" to get aggregate totals only (no grouping — a single row with just the requested measures).
- measures: List of aggregation measures to calculate (default: total_activity).
Valid values: total_activity | visitor_count | company_count
- dimension_filters: Filters as JSON object or JSON string
- sort: Sort field with optional - prefix for descending
- page_size: Results per page (max: 100, default: 25)
- page_after: Cursor token from previous response for pagination
KEY DIMENSIONS: Company Information:
- company_id, company_name, company_domain: Company identification
- company_country, company_state, company_city: Geographic segmentation
- company_employees: Company size
- company_industry: Industry
Data Source:
- provider: Data source (g2, capterra, getapp, softwareadvice)
Time Dimensions:
- day, week, month: Trend analysis
Activity Context:
- signal_type: Interaction type (profile, pricing, ad, compare, category)
- product_id, product_name, product_slug: Which product the signal is for
- category_id, category_name: Category context
- left_product_id/name, right_product_id/name: Comparison context
UNDERSTANDING DIRECT vs INDIRECT SIGNALS: In a multi-product context, signals can be classified by whether they involve your product directly:
- Direct: Your product's ID appears in the signal — someone interacted with YOUR
product (viewed its profile, pricing, or a comparison involving it).
- Indirect: Activity on adjacent products in your category — someone browsed a
competitor or category page, attributed to your intent pool because it indicates market research in your space. Use the product_id dimension alongside signal_type to distinguish which signals directly reference your products vs. adjacent competitive activity.
SCOPED CATEGORY FILTER (filter-only, not a dimension):
- scoped_category_id_in: Returns all buyer intent activity within a category — not
just signals tagged with category info, but all signals for every product in that category. Accepts category UUIDs or slugs (comma-separated for multiple). Use list_categories or show_category to find category identifiers.
- scoped_category_id_not_in: Exclude categories from results.
Use scoped_category_id when a customer wants to see the full picture of activity happening within a category (e.g., during a sales cycle to forecast signal volume, or to focus on one category when they have products across multiple categories).
AUDIENCE FILTER (pre-filter, available on all buyer intent endpoints):
- audience_product_id_in: Scope ALL results to companies that have previously viewed
specific products. Accepts product UUIDs or slugs (comma-separated). This is a pre-query: it first finds all companies that viewed the audience products, then constrains the main intent query to only those companies.
- audience_product_id_not_in: Exclude companies that viewed specific products.
The audience filter is powerful for competitive intelligence and deal qualification:
- "Show me companies researching Competitor X who also show intent for my products"
- "Which companies viewing my product are also looking at alternatives?"
- "Find accounts that viewed products in my portfolio AND a specific competitor"
Use list_products or list_my_products to find product UUIDs/slugs for the filter.
AVAILABLE MEASURES:
- total_activity: Total count of buyer intent signals
- visitor_count: Unique visitors
- company_count: Unique companies
FILTER OPERATORS:
- _eq, _not_eq: Equals / Not equals
- _cont, _not_cont: Contains / Does not contain
- _gt, _gteq, _lt, _lteq: Comparison operators
- _in, _not_in: Matches any / none of comma-separated values
- _present, _empty: Has any value / Has no value
NOTE: company_intent_score is NOT available on this endpoint (it requires single-product scoping). Use browse_product_buyer_intent for intent scoring.
GUIDANCE ON PROVIDER AND ANALYTICS: The provider dimension is available but should not be the primary focus. Do not lead with provider breakdowns or detailed signal-count analytics. Instead, focus on actionable insights: who is in the market, what are they shopping for, who are you up against on a deal, what similar products should you pay attention to. These are the insights that are valuable to customers.
COMMON QUERY PATTERNS: 1. Cross-product company activity: subject_product_ids: "uuid1,uuid2,uuid3" dimensions: "company_name,company_domain,product_name" measures: "total_activity" sort: "-total_activity"
2. Activity by provider: subject_product_ids: "uuid1" dimensions: "company_name,provider" measures: "total_activity"
3. Multi-product weekly trends: subject_product_ids: "uuid1,uuid2" dimensions: "week,product_name" measures: "total_activity,company_count" sort: "-week"
4. Filter by provider: subject_product_ids: "uuid1" dimensions: "company_name,company_domain" dimension_filters: {"provider_in": "capterra"}
5. Aggregate totals only (no grouping): subject_product_ids: "slack" dimensions: "none" measures: "total_activity,visitor_count,company_count" (Returns a single row with overall totals)
6. Total activity for last 7 days (no grouping): subject_product_ids: "slack" dimensions: "none" measures: "total_activity" dimension_filters: {"day_gteq": "2026-03-15"} (Returns one aggregate row filtered to the date range)
7. Scoped to a specific category (see all products/activity within it): subject_product_ids: "slack,zoom-workplace" dimensions: "company_name,product_name" measures: "total_activity" dimension_filters: {"scoped_category_id_in": "crm-software"} (Scopes to CRM category — use category UUID or slug)
8. Sales cycle signal count for a category: subject_product_ids: "slack" dimensions: "none" measures: "total_activity,company_count" dimension_filters: {"scoped_category_id_in": "crm-software"} (Aggregate totals for one category — useful for forecasting signal volume)
9. Direct vs indirect signal breakdown: subject_product_ids: "slack" dimensions: "product_name,signal_type" measures: "total_activity,company_count" (Shows which signals directly involve your product vs. adjacent competitive activity — use product_id to identify direct signals where your product appears in the results)
10. Audience filter — companies also evaluating a competitor: subject_product_ids: "slack,zoom-workplace" dimensions: "company_name,company_domain,product_name" measures: "total_activity" dimension_filters: {"audience_product_id_in": "<competitor-slug>"} sort: "-total_activity" (Pre-filters to companies that viewed the competitor, then shows their intent activity across your products. Essential for deal intelligence.)