{
  "data": {
    "id": "SEfo3afTwaeYxU5xK",
    "actId": "AYL1CXwlY4oaFSyJ4",
    "userId": "zq8lKbpLzTjGDayPC",
    "startedAt": "2026-10-19T06:39:11.130Z",
    "finishedAt": "2026-10-19T06:42:26.368Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 195164,
      "runTimeSecs": 195.164,
      "computeUnits": 0.2168488888888889,
      "imageSizeBytes": 5962874880
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "GK9YjZRyQZVzOdoH5",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"G2 Product Scraper Input\",\n  \"description\": \"Scrape G2 software reviews by URL or slug, plus product info and competitor lists.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to collect from G2.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"reviews\",\n        \"productInfo\",\n        \"competitors\"\n      ],\n      \"enumTitles\": [\n        \"Reviews for products\",\n        \"Product info & details\",\n        \"Competitors & alternatives\"\n      ],\n      \"default\": \"reviews\",\n      \"prefill\": \"reviews\"\n    },\n    \"startUrls\": {\n      \"title\": \"G2 product URLs or slugs\",\n      \"type\": \"array\",\n      \"description\": \"G2 product URLs (e.g. https://www.g2.com/products/notion/reviews) or bare product slugs (e.g. notion). One entry per product.\",\n      \"editor\": \"stringList\",\n      \"prefill\": [\n        \"https://www.g2.com/products/notion/reviews\"\n      ]\n    },\n    \"maxItems\": {\n      \"title\": \"Maximum items per product\",\n      \"type\": \"integer\",\n      \"description\": \"Upper limit of records to collect for each product. (mode=reviews uses filtering to go far beyond G2's default review feed.)\",\n      \"default\": 50,\n      \"minimum\": 1,\n      \"maximum\": 50000,\n      \"prefill\": 3\n    },\n    \"starRatings\": {\n      \"title\": \"Star ratings\",\n      \"type\": \"array\",\n      \"description\": \"Keep reviews with one of the selected star ratings. Leave empty for all ratings. (mode=reviews)\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"1\",\n          \"2\",\n          \"3\",\n          \"4\",\n          \"5\"\n        ],\n        \"enumTitles\": [\n          \"1 star\",\n          \"2 stars\",\n          \"3 stars\",\n          \"4 stars\",\n          \"5 stars\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"companySizes\": {\n      \"title\": \"Reviewer company size\",\n      \"type\": \"array\",\n      \"description\": \"Keep reviews from companies of the selected sizes. Leave empty for all sizes. (mode=reviews)\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"smallBusiness\",\n          \"midMarket\",\n          \"enterprise\"\n        ],\n        \"enumTitles\": [\n          \"Small Business (50 or fewer emp.)\",\n          \"Mid-Market (51-1000 emp.)\",\n          \"Enterprise (1001+ emp.)\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"reviewerRoles\": {\n      \"title\": \"Reviewer roles\",\n      \"type\": \"array\",\n      \"description\": \"Keep reviews written by reviewers with one of the selected roles. Leave empty for all roles. (mode=reviews)\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"user\",\n          \"administrator\",\n          \"executiveSponsor\",\n          \"internalConsultant\",\n          \"consultant\",\n          \"agency\",\n          \"industryAnalyst\"\n        ],\n        \"enumTitles\": [\n          \"User\",\n          \"Administrator\",\n          \"Executive Sponsor\",\n          \"Internal Consultant\",\n          \"Consultant\",\n          \"Agency\",\n          \"Industry Analyst / Tech Writer\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"reviewerRegions\": {\n      \"title\": \"Reviewer regions\",\n      \"type\": \"array\",\n      \"description\": \"Keep reviews from reviewers in the selected regions. Leave empty for all regions. (mode=reviews)\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"northAmerica\",\n          \"europe\",\n          \"asia\",\n          \"anz\",\n          \"africa\",\n          \"latinAmerica\",\n          \"middleEast\"\n        ],\n        \"enumTitles\": [\n          \"North America\",\n          \"Europe\",\n          \"Asia\",\n          \"ANZ\",\n          \"Africa\",\n          \"Latin America\",\n          \"Middle East\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"sortBy\": {\n      \"title\": \"Sort reviews by\",\n      \"type\": \"string\",\n      \"description\": \"Order of the collected reviews. (mode=reviews)\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"newest\",\n        \"oldest\",\n        \"highestRated\",\n        \"lowestRated\"\n      ],\n      \"enumTitles\": [\n        \"Newest first\",\n        \"Oldest first\",\n        \"Highest rated first\",\n        \"Lowest rated first\"\n      ],\n      \"default\": \"newest\",\n      \"prefill\": \"newest\"\n    },\n    \"fromDate\": {\n      \"title\": \"Reviews from (optional)\",\n      \"type\": \"string\",\n      \"description\": \"Only keep reviews published on or after this date. (mode=reviews)\",\n      \"editor\": \"datepicker\",\n      \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}$\"\n    },\n    \"toDate\": {\n      \"title\": \"Reviews until (optional)\",\n      \"type\": \"string\",\n      \"description\": \"Only keep reviews published on or before this date. (mode=reviews)\",\n      \"editor\": \"datepicker\",\n      \"pattern\": \"^\\\\d{4}-\\\\d{2}-\\\\d{2}$\"\n    }\n  },\n  \"required\": [\n    \"startUrls\"\n  ]\n}",
    "readme": "# G2 Software Reviews, Product Info & Competitor Extractor\n\nScrape **G2** — the B2B software marketplace with millions of verified user reviews — for any product. Pull reviews with ratings, pros, cons and reviewer context; collect a product's profile summary (rating, review count, categories, pricing plans); or list the competitors G2 shows for a product. Works from a G2 product URL or just a slug, no account or setup required.\n\n## What this actor does\n\n- **Three modes:** collect reviews, product info, or competitor lists for any G2 product.\n- **Review filters:** star rating, reviewer company size, reviewer role, reviewer region, and publication date range.\n- **Deep review coverage:** goes beyond the handful of reviews G2 shows by default — request hundreds or thousands per product.\n- **Any input shape:** full G2 URLs or bare slugs (`notion`, `slack`, `hubspot-marketing-hub`), mixed freely in one run.\n- Empty fields are omitted — every record only contains values G2 actually provides.\n\n## Output per review (mode = `reviews`)\n\n- `reviewId` — unique G2 review ID\n- `reviewTitle` — headline of the review\n- `reviewUrl` — direct link to the review on G2\n- `rating` — the reviewer's star value on G2's 0–5 scale (halves included)\n- `starRating` — the review's star bucket, 1–5\n- `authorName` — reviewer display name (as published by G2)\n- `authorRole` — reviewer's stated role, e.g. Administrator\n- `companySize` — reviewer's company size segment\n- `publishDate` — publication date from G2\n- `pros`, `cons`, `useCase` — the reviewer's \"like best\", \"dislike\" and \"problems solved\" answers\n- `productName`, `productSlug`, `productUrl` — product identity\n- `recordType: \"review\"`, `scrapedAt`\n\n## Output per product (mode = `productInfo`)\n\n- `productName`, `productSlug`, `url`\n- `description` — the product summary from its G2 page\n- `rating` — average rating, `reviewCount` — total reviews\n- `category` and `categories[]` — G2 category listings\n- `imageUrl` — product logo\n- `pricing` — array of `{plan, price, currency}` plans G2 publishes\n- `operatingSystem`\n- `vendorName`, `vendorUrl` — the vendor (seller) shown on the product page\n- `recordType: \"product\"`, `scrapedAt`\n\n## Output per competitor (mode = `competitors`)\n\n- `competitorName`, `competitorSlug`, `competitorUrl`\n- `rating`, `reviewCount` — the competitor's standing on G2\n- `description` — G2's blurb for the competitor\n- `sourceProduct` — slug of the product whose competitor list this came from\n- `recordType: \"competitor\"`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n| --- | --- | --- | --- |\n| `mode` | string | `reviews` | `reviews`, `productInfo`, or `competitors` |\n| `startUrls` | array | – | G2 product URLs or bare slugs (`notion`, `slack`), one per product. Required. |\n| `maxItems` | integer | 50 | Maximum records per product (1–50,000) |\n| `starRatings` | array | – | Keep reviews with these star ratings (`1`–`5`). (mode=reviews) |\n| `companySizes` | array | – | Keep reviews from these company sizes: `smallBusiness`, `midMarket`, `enterprise`. (mode=reviews) |\n| `reviewerRoles` | array | – | Keep reviews by these reviewer roles, e.g. `administrator`. (mode=reviews) |\n| `reviewerRegions` | array | – | Keep reviews from these regions, e.g. `northAmerica`. (mode=reviews) |\n| `sortBy` | string | `newest` | `newest`, `oldest`, `highestRated`, `lowestRated` |\n| `fromDate` | string | – | Only reviews published on or after this date (YYYY-MM-DD) |\n| `toDate` | string | – | Only reviews published on or before this date (YYYY-MM-DD) |\n\n### Example: recent 5-star reviews\n\n```json\n{\n  \"mode\": \"reviews\",\n  \"startUrls\": [\"https://www.g2.com/products/notion/reviews\"],\n  \"maxItems\": 100,\n  \"starRatings\": [5],\n  \"sortBy\": \"newest\"\n}\n```\n\n### Example: deep pull for competitive research\n\n```json\n{\n  \"mode\": \"reviews\",\n  \"startUrls\": [\"slack\", \"microsoft-teams\"],\n  \"maxItems\": 1000,\n  \"companySizes\": [\"enterprise\", \"midMarket\"],\n  \"sortBy\": \"highestRated\"\n}\n```\n\n### Example: product profile\n\n```json\n{\n  \"mode\": \"productInfo\",\n  \"startUrls\": [\"https://www.g2.com/products/hubspot-marketing-hub\"]\n}\n```\n\n### Example: competitor lists for several products\n\n```json\n{\n  \"mode\": \"competitors\",\n  \"startUrls\": [\"notion\", \"asana\", \"monday-com\"],\n  \"maxItems\": 20\n}\n```\n\n## Use cases\n\n- **Voice-of-customer research** — export raw pros/cons and use cases to feed qualitative analysis.\n- **Competitive battlecards** — pull a product's listed alternatives with their ratings and review counts.\n- **Review monitoring** — schedule runs with `fromDate` to collect only new reviews since the last run.\n- **Vendor shortlisting** — compare profiles and pricing plans side by side before deeper evaluation.\n- **Sentiment slices** — study how enterprise reviewers rate a product versus small-business reviewers.\n- **LLM / RAG pipelines** — structured review text with metadata, ready for indexing.\n\n## FAQ\n\n### Do I need a G2 account or API key?\n\nNo. The actor reads pages and feeds G2 already makes public.\n\n### Can I get more than the reviews G2 shows on a product page?\n\nYes. For `mode=reviews` the actor combines G2's own filter views (stars, company size, role, region) while de-duplicating results, so common products yield hundreds to thousands of distinct reviews per run. `maxItems` caps the output.\n\n### Why are some `companySize` or `authorRole` values missing?\n\nG2 makes reviewer details optional when someone submits a review. Across a 400-review sample, company size is published for about 80% of reviews, and roughly one in four roles is G2's anonymised \"G2 User\" placeholder rather than a real job role. Missing values are omitted rather than guessed.\n\n### What does `rating` mean next to `starRating`?\n\n`rating` is the exact value G2 publishes on its 0–5 scale (including halves like 4.5). `starRating` is the star bucket (1–5) the review belongs to — useful for grouping. A few reviews legitimately carry a 0.0 rating; that is G2's lowest value, not missing data.\n\n### Does each review include sub-ratings (ease of use, support) or \"switched from\" data?\n\nNo — G2 does not publish per-review sub-ratings, themes, or switching data on any public page; those appear only for signed-in users or through G2's enterprise API. This actor returns the complete public surface: rating, title, pros/cons/problems, reviewer context and dates.\n\n### Can I filter by date range?\n\nYes — set `fromDate` and/or `toDate` and only matching reviews are returned. Both are inclusive.\n\n### How fresh is the data?\n\nEvery run reads G2 live; nothing is cached between runs.\n\n### Do I need to set up a proxy?\n\nNo. The actor chooses a working connection to G2 automatically. Just fill in the input and run.\n\n### Is this affiliated with G2?\n\nNo. This actor reads publicly available G2 pages and feeds; it is not operated by or affiliated with G2.com.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "g2-software-reviews-product-info-and-competitor",
      "title": "G2 Software Reviews, Product Info & Competitor Extractor",
      "description": "Collect G2 software reviews at depth, product profiles, or competitor lists from any G2 product URL or slug. Filter by stars, company size, reviewer role, region, and date; export clean JSON.",
      "version": "1.0",
      "input": {
        "title": "G2 Product Scraper Input",
        "description": "Scrape G2 software reviews by URL or slug, plus product info and competitor lists.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to collect from G2.",
            "editor": "select",
            "enum": [
              "reviews",
              "productInfo",
              "competitors"
            ],
            "enumTitles": [
              "Reviews for products",
              "Product info & details",
              "Competitors & alternatives"
            ],
            "default": "reviews",
            "prefill": "reviews"
          },
          "startUrls": {
            "title": "G2 product URLs or slugs",
            "type": "array",
            "description": "G2 product URLs (e.g. https://www.g2.com/products/notion/reviews) or bare product slugs (e.g. notion). One entry per product.",
            "editor": "stringList",
            "prefill": [
              "https://www.g2.com/products/notion/reviews"
            ]
          },
          "maxItems": {
            "title": "Maximum items per product",
            "type": "integer",
            "description": "Upper limit of records to collect for each product. (mode=reviews uses filtering to go far beyond G2's default review feed.)",
            "default": 50,
            "minimum": 1,
            "maximum": 50000,
            "prefill": 3
          },
          "starRatings": {
            "title": "Star ratings",
            "type": "array",
            "description": "Keep reviews with one of the selected star ratings. Leave empty for all ratings. (mode=reviews)",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": [],
            "prefill": []
          },
          "companySizes": {
            "title": "Reviewer company size",
            "type": "array",
            "description": "Keep reviews from companies of the selected sizes. Leave empty for all sizes. (mode=reviews)",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "smallBusiness",
                "midMarket",
                "enterprise"
              ],
              "enumTitles": [
                "Small Business (50 or fewer emp.)",
                "Mid-Market (51-1000 emp.)",
                "Enterprise (1001+ emp.)"
              ]
            },
            "default": [],
            "prefill": []
          },
          "reviewerRoles": {
            "title": "Reviewer roles",
            "type": "array",
            "description": "Keep reviews written by reviewers with one of the selected roles. Leave empty for all roles. (mode=reviews)",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "user",
                "administrator",
                "executiveSponsor",
                "internalConsultant",
                "consultant",
                "agency",
                "industryAnalyst"
              ],
              "enumTitles": [
                "User",
                "Administrator",
                "Executive Sponsor",
                "Internal Consultant",
                "Consultant",
                "Agency",
                "Industry Analyst / Tech Writer"
              ]
            },
            "default": [],
            "prefill": []
          },
          "reviewerRegions": {
            "title": "Reviewer regions",
            "type": "array",
            "description": "Keep reviews from reviewers in the selected regions. Leave empty for all regions. (mode=reviews)",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "northAmerica",
                "europe",
                "asia",
                "anz",
                "africa",
                "latinAmerica",
                "middleEast"
              ],
              "enumTitles": [
                "North America",
                "Europe",
                "Asia",
                "ANZ",
                "Africa",
                "Latin America",
                "Middle East"
              ]
            },
            "default": [],
            "prefill": []
          },
          "sortBy": {
            "title": "Sort reviews by",
            "type": "string",
            "description": "Order of the collected reviews. (mode=reviews)",
            "editor": "select",
            "enum": [
              "newest",
              "oldest",
              "highestRated",
              "lowestRated"
            ],
            "enumTitles": [
              "Newest first",
              "Oldest first",
              "Highest rated first",
              "Lowest rated first"
            ],
            "default": "newest",
            "prefill": "newest"
          },
          "fromDate": {
            "title": "Reviews from (optional)",
            "type": "string",
            "description": "Only keep reviews published on or after this date. (mode=reviews)",
            "editor": "datepicker",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "toDate": {
            "title": "Reviews until (optional)",
            "type": "string",
            "description": "Only keep reviews published on or before this date. (mode=reviews)",
            "editor": "datepicker",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          }
        },
        "required": [
          "startUrls"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "G2 Products Scraper Output",
        "description": "Dataset of G2 reviews, product profiles, or competitor records, depending on the selected mode.",
        "properties": {
          "items": {
            "type": "string",
            "title": "Items",
            "description": "Dataset containing all scraped G2 reviews, product records, or competitor records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "readme": "# G2 Software Reviews, Product Info & Competitor Extractor\n\nScrape **G2** — the B2B software marketplace with millions of verified user reviews — for any product. Pull reviews with ratings, pros, cons and reviewer context; collect a product's profile summary (rating, review count, categories, pricing plans); or list the competitors G2 shows for a product. Works from a G2 product URL or just a slug, no account or setup required.\n\n## What this actor does\n\n- **Three modes:** collect reviews, product info, or competitor lists for any G2 product.\n- **Review filters:** star rating, reviewer company size, reviewer role, reviewer region, and publication date range.\n- **Deep review coverage:** goes beyond the handful of reviews G2 shows by default — request hundreds or thousands per product.\n- **Any input shape:** full G2 URLs or bare slugs (`notion`, `slack`, `hubspot-marketing-hub`), mixed freely in one run.\n- Empty fields are omitted — every record only contains values G2 actually provides.\n\n## Output per review (mode = `reviews`)\n\n- `reviewId` — unique G2 review ID\n- `reviewTitle` — headline of the review\n- `reviewUrl` — direct link to the review on G2\n- `rating` — the reviewer's star value on G2's 0–5 scale (halves included)\n- `starRating` — the review's star bucket, 1–5\n- `authorName` — reviewer display name (as published by G2)\n- `authorRole` — reviewer's stated role, e.g. Administrator\n- `companySize` — reviewer's company size segment\n- `publishDate` — publication date from G2\n- `pros`, `cons`, `useCase` — the reviewer's \"like best\", \"dislike\" and \"problems solved\" answers\n- `productName`, `productSlug`, `productUrl` — product identity\n- `recordType: \"review\"`, `scrapedAt`\n\n## Output per product (mode = `productInfo`)\n\n- `productName`, `productSlug`, `url`\n- `description` — the product summary from its G2 page\n- `rating` — average rating, `reviewCount` — total reviews\n- `category` and `categories[]` — G2 category listings\n- `imageUrl` — product logo\n- `pricing` — array of `{plan, price, currency}` plans G2 publishes\n- `operatingSystem`\n- `vendorName`, `vendorUrl` — the vendor (seller) shown on the product page\n- `recordType: \"product\"`, `scrapedAt`\n\n## Output per competitor (mode = `competitors`)\n\n- `competitorName`, `competitorSlug`, `competitorUrl`\n- `rating`, `reviewCount` — the competitor's standing on G2\n- `description` — G2's blurb for the competitor\n- `sourceProduct` — slug of the product whose competitor list this came from\n- `recordType: \"competitor\"`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n| --- | --- | --- | --- |\n| `mode` | string | `reviews` | `reviews`, `productInfo`, or `competitors` |\n| `startUrls` | array | – | G2 product URLs or bare slugs (`notion`, `slack`), one per product. Required. |\n| `maxItems` | integer | 50 | Maximum records per product (1–50,000) |\n| `starRatings` | array | – | Keep reviews with these star ratings (`1`–`5`). (mode=reviews) |\n| `companySizes` | array | – | Keep reviews from these company sizes: `smallBusiness`, `midMarket`, `enterprise`. (mode=reviews) |\n| `reviewerRoles` | array | – | Keep reviews by these reviewer roles, e.g. `administrator`. (mode=reviews) |\n| `reviewerRegions` | array | – | Keep reviews from these regions, e.g. `northAmerica`. (mode=reviews) |\n| `sortBy` | string | `newest` | `newest`, `oldest`, `highestRated`, `lowestRated` |\n| `fromDate` | string | – | Only reviews published on or after this date (YYYY-MM-DD) |\n| `toDate` | string | – | Only reviews published on or before this date (YYYY-MM-DD) |\n\n### Example: recent 5-star reviews\n\n```json\n{\n  \"mode\": \"reviews\",\n  \"startUrls\": [\"https://www.g2.com/products/notion/reviews\"],\n  \"maxItems\": 100,\n  \"starRatings\": [5],\n  \"sortBy\": \"newest\"\n}\n```\n\n### Example: deep pull for competitive research\n\n```json\n{\n  \"mode\": \"reviews\",\n  \"startUrls\": [\"slack\", \"microsoft-teams\"],\n  \"maxItems\": 1000,\n  \"companySizes\": [\"enterprise\", \"midMarket\"],\n  \"sortBy\": \"highestRated\"\n}\n```\n\n### Example: product profile\n\n```json\n{\n  \"mode\": \"productInfo\",\n  \"startUrls\": [\"https://www.g2.com/products/hubspot-marketing-hub\"]\n}\n```\n\n### Example: competitor lists for several products\n\n```json\n{\n  \"mode\": \"competitors\",\n  \"startUrls\": [\"notion\", \"asana\", \"monday-com\"],\n  \"maxItems\": 20\n}\n```\n\n## Use cases\n\n- **Voice-of-customer research** — export raw pros/cons and use cases to feed qualitative analysis.\n- **Competitive battlecards** — pull a product's listed alternatives with their ratings and review counts.\n- **Review monitoring** — schedule runs with `fromDate` to collect only new reviews since the last run.\n- **Vendor shortlisting** — compare profiles and pricing plans side by side before deeper evaluation.\n- **Sentiment slices** — study how enterprise reviewers rate a product versus small-business reviewers.\n- **LLM / RAG pipelines** — structured review text with metadata, ready for indexing.\n\n## FAQ\n\n### Do I need a G2 account or API key?\n\nNo. The actor reads pages and feeds G2 already makes public.\n\n### Can I get more than the reviews G2 shows on a product page?\n\nYes. For `mode=reviews` the actor combines G2's own filter views (stars, company size, role, region) while de-duplicating results, so common products yield hundreds to thousands of distinct reviews per run. `maxItems` caps the output.\n\n### Why are some `companySize` or `authorRole` values missing?\n\nG2 makes reviewer details optional when someone submits a review. Across a 400-review sample, company size is published for about 80% of reviews, and roughly one in four roles is G2's anonymised \"G2 User\" placeholder rather than a real job role. Missing values are omitted rather than guessed.\n\n### What does `rating` mean next to `starRating`?\n\n`rating` is the exact value G2 publishes on its 0–5 scale (including halves like 4.5). `starRating` is the star bucket (1–5) the review belongs to — useful for grouping. A few reviews legitimately carry a 0.0 rating; that is G2's lowest value, not missing data.\n\n### Does each review include sub-ratings (ease of use, support) or \"switched from\" data?\n\nNo — G2 does not publish per-review sub-ratings, themes, or switching data on any public page; those appear only for signed-in users or through G2's enterprise API. This actor returns the complete public surface: rating, title, pros/cons/problems, reviewer context and dates.\n\n### Can I filter by date range?\n\nYes — set `fromDate` and/or `toDate` and only matching reviews are returned. Both are inclusive.\n\n### How fresh is the data?\n\nEvery run reads G2 live; nothing is cached between runs.\n\n### Do I need to set up a proxy?\n\nNo. The actor chooses a working connection to G2 automatically. Just fill in the input and run.\n\n### Is this affiliated with G2?\n\nNo. This actor reads publicly available G2 pages and feeds; it is not operated by or affiliated with G2.com.\n",
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "G2 Records",
          "fields": {
            "type": "object",
            "properties": {
              "recordType": {
                "type": "string",
                "description": "review, product or competitor"
              },
              "reviewId": {
                "type": "string",
                "description": "Unique G2 review ID"
              },
              "productName": {
                "type": "string",
                "description": "Software product name"
              },
              "productSlug": {
                "type": "string",
                "description": "G2 product slug"
              },
              "productUrl": {
                "type": "string",
                "description": "G2 product reviews URL"
              },
              "reviewTitle": {
                "type": "string",
                "description": "Review headline"
              },
              "reviewUrl": {
                "type": "string",
                "description": "Direct review URL"
              },
              "rating": {
                "type": "number",
                "description": "Star value (0-5)"
              },
              "starRating": {
                "type": "integer",
                "description": "Star bucket (1-5)"
              },
              "authorName": {
                "type": "string",
                "description": "Reviewer name"
              },
              "authorRole": {
                "type": "string",
                "description": "Reviewer role (User, Administrator, etc.)"
              },
              "companySize": {
                "type": "string",
                "description": "Reviewer company size segment"
              },
              "publishDate": {
                "type": "string",
                "description": "Review publish date"
              },
              "pros": {
                "type": "string",
                "description": "What the reviewer liked"
              },
              "cons": {
                "type": "string",
                "description": "What the reviewer disliked"
              },
              "useCase": {
                "type": "string",
                "description": "Problems the product solves"
              },
              "description": {
                "type": "string",
                "description": "Product or competitor summary"
              },
              "reviewCount": {
                "type": "integer",
                "description": "Number of reviews"
              },
              "category": {
                "type": "string",
                "description": "Primary G2 category"
              },
              "categories": {
                "type": "array",
                "description": "All G2 categories"
              },
              "imageUrl": {
                "type": "string",
                "description": "Product image URL"
              },
              "pricing": {
                "type": "array",
                "description": "Pricing plans ({plan, price, currency})"
              },
              "competitorName": {
                "type": "string",
                "description": "Competitor product name"
              },
              "competitorSlug": {
                "type": "string",
                "description": "Competitor G2 slug"
              },
              "competitorUrl": {
                "type": "string",
                "description": "Competitor G2 reviews URL"
              },
              "sourceProduct": {
                "type": "string",
                "description": "Slug of the compared product"
              },
              "scrapedAt": {
                "type": "string",
                "description": "Scrape timestamp (ISO 8601)"
              },
              "vendorName": {
                "type": "string",
                "description": "Product vendor (seller) name"
              },
              "vendorUrl": {
                "type": "string",
                "description": "Vendor seller page on G2"
              }
            }
          },
          "views": {
            "overview": {
              "title": "Reviews",
              "transformation": {
                "fields": [
                  "productName",
                  "starRating",
                  "rating",
                  "authorName",
                  "reviewTitle",
                  "pros",
                  "cons",
                  "publishDate"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "productName": {
                    "label": "Product",
                    "format": "text"
                  },
                  "starRating": {
                    "label": "Stars",
                    "format": "number"
                  },
                  "rating": {
                    "label": "Rating",
                    "format": "number"
                  },
                  "authorName": {
                    "label": "Author",
                    "format": "text"
                  },
                  "reviewTitle": {
                    "label": "Title",
                    "format": "text"
                  },
                  "pros": {
                    "label": "Pros",
                    "format": "text"
                  },
                  "cons": {
                    "label": "Cons",
                    "format": "text"
                  },
                  "publishDate": {
                    "label": "Date",
                    "format": "text"
                  }
                }
              }
            }
          }
        }
      }
    },
    "buildNumber": "1.0.2",
    "imageDigest": "524fad17d45d31ee96f9a64a3349234e36d42676707f0f0728c33440e513c1f9",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.2168488888888889
    }
  }
}