{"id":26285401,"url":"https://github.com/luminati-io/google-reviews-api","last_synced_at":"2026-05-20T07:36:09.265Z","repository":{"id":282236781,"uuid":"946700016","full_name":"luminati-io/google-reviews-api","owner":"luminati-io","description":"A powerful solution for collecting Google Reviews data. Choose between a free scraper for small-scale projects or Bright Data’s enterprise API for large-scale extraction.","archived":false,"fork":false,"pushed_at":"2025-03-13T13:12:50.000Z","size":2082,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-18T17:35:34.086Z","etag":null,"topics":["google-api","google-reviews","google-reviews-api","google-scraper","playwright","python","scraper-api","web-scraper","web-scraping"],"latest_commit_sha":null,"homepage":"https://brightdata.com/products/serp-api/google-search/reviews","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luminati-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-11T14:43:13.000Z","updated_at":"2025-03-13T13:12:53.000Z","dependencies_parsed_at":"2025-03-13T14:34:38.127Z","dependency_job_id":null,"html_url":"https://github.com/luminati-io/google-reviews-api","commit_stats":null,"previous_names":["luminati-io/google-reviews-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/luminati-io/google-reviews-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fgoogle-reviews-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fgoogle-reviews-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fgoogle-reviews-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fgoogle-reviews-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luminati-io","download_url":"https://codeload.github.com/luminati-io/google-reviews-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luminati-io%2Fgoogle-reviews-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33250372,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-20T04:48:54.280Z","status":"ssl_error","status_checked_at":"2026-05-20T04:48:10.851Z","response_time":356,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["google-api","google-reviews","google-reviews-api","google-scraper","playwright","python","scraper-api","web-scraper","web-scraping"],"created_at":"2025-03-14T19:24:09.865Z","updated_at":"2026-05-20T07:36:09.227Z","avatar_url":"https://github.com/luminati-io.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Google Reviews API\n\n[![Promo](https://github.com/luminati-io/LinkedIn-Scraper/blob/main/Proxies%20and%20scrapers%20GitHub%20bonus%20banner.png)](https://brightdata.com/products/serp-api/google-search/reviews)\n\nThis repository provides two approaches for collecting Google Reviews data:\n\n1. **Free Scraper**: A lightweight solution for small-scale projects, testing, personal research, and educational purposes.\n2. **Bright Data Google Reviews API**: A robust, high-volume solution for enterprise-level, scalable, and reliable data extraction. Part of the [SERP API](https://brightdata.com/products/serp-api).\n\n## Table of Contents\n\n- [Free Scraper](#free-scraper)\n   - [Setup](#setup)\n   - [Quick Start](#quick-start)\n   - [Sample Output](#sample-output)\n   - [Limitations](#limitations)\n- [Bright Data Enterprise Solution](#bright-data-enterprise-solution)\n   - [Getting Started](#getting-started)\n   - [Direct API Access](#direct-api-access)\n   - [Native Proxy-Based Access](#native-proxy-based-access)\n- [Advanced Features](#advanced-features)\n   - [Feature ID (fid)](#feature-id-fid)\n   - [Localization (hl)](#localization-hl)\n   - [Sorting and Filtering](#sorting-and-filtering)\n   - [Pagination](#pagination)\n- [Support \u0026 Resources](#support--resources)\n\n## Free Scraper\nA quick-and-easy scraper for those who need to extract reviews on a smaller scale.\n\n\u003cimg width=\"700\" alt=\"scrape-google-reviews-pizza-place\" src=\"https://github.com/luminati-io/google-reviews-api/blob/main/images/420648584-8f8069c4-3521-49d1-ba77-8eb6e840de2b.png\" /\u003e\n\n### Setup\n\n**Requirements:**\n\n- Python 3.9 or higher\n- [Playwright](https://playwright.dev/) for browser automation\n\n**Installation:**\n\n```bash\npip install playwright\nplaywright install\n```\n\n\u003e **New to web scraping?** Check out our [Beginner's Guide to Web Scraping with Python](https://brightdata.com/blog/how-tos/web-scraping-with-python).\n\u003e \n\n### Quick Start\n\n1. Open [google-reviews-scraper.py](https://github.com/luminati-io/Google-Reviews-API/blob/main/google-reviews-scraper/google-reviews-scraper.py) and update the following variables:\n    - `url` – The Google Maps URL of the business.\n    - `target_reviews` – The number of reviews to scrape.\n2. Run the script.\n\n💡 **Pro Tip:** Set `HEADLESS = False` to reduce detection by Google's anti-scraping systems.\n\n### Sample Output\n\n```json\n{\n    \"reviewer_name\": \"Christopher Huntley (youcancallmemaurice)\",\n    \"reviewer_link\": \"https://www.google.com/maps/contrib/116348973042381100705/reviews?hl=en-GB\",\n    \"reviewer_image\": \"https://lh3.googleusercontent.com/a-/ALV-UjXgKzymRM7WTYFkhDuA2_lN5WfE7EYAoBAFPOf2YGxA1e_s72zD9A=w36-h36-p-rp-mo-ba5-br100\",\n    \"rating\": 5,\n    \"date\": \"a month ago\",\n    \"text\": \"We took a local tip for the best pizza in Chicago. It's a dive vibe with a very regimented process. The garlic bread was good and the dipping sauce was a nice touch.\\n\\nPizza came fairly quickly. A standard deep dish with sausage, onion and pepper. Good crust, good flavor for sauce and toppings were perfect.\\n\\nService was quick and attentive. A great experience.\",\n    \"photos\": [\n        \"https://lh3.googleusercontent.com/geougc-cs/AIHozJIkCwzdm33OdIVsHIJcqdLPauk-Q3Xk0rRjj4SrzOaiMF1L_uQFW4T7jg86meLyB6So7wsJX0Pk6m8NuxUbUF_1OTvutnqJbmwU2olmmiS5Z1A6puOo8oPD6qqBSG0TXO5KyM_B=w300-h450-p\",\n        \"https://lh3.googleusercontent.com/geougc-cs/AIHozJKiYAPlUmW7O1M79DDjuRgbeOJ92t2IqwuUDOXUFOABH6XBoZet4bGsYV_NxK1z2SkaFLktjjaAs1FoI2XMEwjt9uMZKQX2K904RjyymLZ1SA4LKq_a3vttOPJr7bMTJCpEx-Y=w300-h225-p\",\n        \"https://lh3.googleusercontent.com/geougc-cs/AIHozJKvdP93huqqhLlxZZDv3VKpNYVriS8qq8lKoGiFydTTDAgZOtupYcgxfaSu4KPbE4wX16lD4sXMOY10vLRVk8_mrMe2N4Ul9hX1h46-JJ0rCmZcDcXogMr_YlIDIp_ao_S_wxVQgQ=w300-h225-p\"\n    ],\n    \"likes_count\": \"4\"\n}\n```\n\n👉 See the [full JSON output](https://github.com/luminati-io/Google-Reviews-API/blob/main/google-reviews-results/reviews_output.json).\n\n\n### Limitations\n\nThe Free Scraper comes with significant constraints:\n\n- High risk of IP blocks\n- Limited request volume\n- Frequent CAPTCHAs\n- Unreliable for large-scale scraping\n\nYou'll need a more advanced solution for reliable, large-scale data collection.\n\n## Bright Data Enterprise Solution\n\n[Bright Data's Google Reviews API](https://brightdata.com/products/serp-api/google-search/reviews) provides structured Google Reviews data with advanced features and scalability. Built on the same advanced technology as the [SERP API](https://brightdata.com/products/serp-api), it offers:\n\n- **Global Location Accuracy:** Tailor results to any location\n- **Pay-Per-Success Model:** Only pay for successful requests\n- **Real-Time Data:** Get up-to-date reviews in seconds\n- **Scalability:** Handle unlimited requests with no volume restrictions\n- **Cost Efficiency:** Save on infrastructure and maintenance costs\n- **Highest Reliability:** Consistent performance with built-in anti-blocking measures\n- **Technical Support:** Expert assistance available when needed\n\n### Getting Started\n\n1. **Prerequisites:**\n    - Create a [Bright Data account](https://brightdata.com/) (new users get $5 credit)\n    - Obtain your [API key](https://docs.brightdata.com/general/account/api-token)\n2. **Setup:** Follow our [step-by-step guide](https://github.com/luminati-io/Google-Reviews-API/blob/main/setup-serp-api-guide.md) to integrate the API\n3. **Implementation Methods:**\n    - Direct API Access\n    - Native Proxy-Based Access\n\n### Direct API Access\n\nMake a direct request to the API endpoint.\n\n**cURL Example:**\n\n```bash\ncurl https://api.brightdata.com/request \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer API_TOKEN\" \\\n  -d '{\n        \"zone\": \"ZONE_NAME\",\n        \"url\": \"https://www.google.com/reviews?fid=0x89c259a9b3117469:0xd134e199a405a163\u0026brd_json=1\",\n        \"format\": \"raw\"\n      }'\n```\n\n**Python Example:**\n\n```python\nimport requests\nimport json\n\nurl = \"https://api.brightdata.com/request\"\nheaders = {\"Content-Type\": \"application/json\", \"Authorization\": \"Bearer API_TOKEN\"}\n\npayload = {\n    \"zone\": \"ZONE_NAME\",\n    \"url\": \"https://www.google.com/reviews?fid=0x89c259a9b3117469:0xd134e199a405a163\u0026brd_json=1\",\n    \"format\": \"raw\",\n}\n\nresponse = requests.post(url, headers=headers, json=payload)\n\nwith open(\"serp-direct-api.json\", \"w\") as file:\n    json.dump(response.json(), file, indent=4)\n\nprint(\"Response saved to 'serp-direct-api.json'.\")\n```\n\n👉 See the [full JSON output](https://github.com/luminati-io/Google-Reviews-API/blob/main/google-reviews-api-results/serp-direct-api.json).\n\n\u003e **Note:** Use `brd_json=1` for parsed JSON or `brd_json=html` for parsed JSON + full nested HTML.\n\u003e \n\n### Native Proxy-Based Access\n\nYou can also use our proxy routing method:\n\n**cURL Example:**\n\n```bash\ncurl -i \\\n  --proxy brd.superproxy.io:33335 \\\n  --proxy-user \"brd-customer-\u003ccustomer-id\u003e-zone-\u003czone-name\u003e:\u003czone-password\u003e\" \\\n  -k \\\n  \"https://www.google.com/reviews?fid=0x89c259a9b3117469:0xd134e199a405a163\u0026brd_json=1\"\n```\n\n**Python Example:**\n\n```python\nimport requests\nimport urllib3\n\nurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)\n\nhost = \"brd.superproxy.io\"\nport = 33335\nusername = \"brd-customer-\u003ccustomer-id\u003e-zone-\u003czone-name\u003e\"\npassword = \"\u003czone-password\u003e\"\nproxy_url = f\"http://{username}:{password}@{host}:{port}\"\n\nproxies = {\"http\": proxy_url, \"https\": proxy_url}\nurl = \"https://www.google.com/reviews?fid=0x89c259a9b3117469:0xd134e199a405a163\u0026brd_json=html\"\nresponse = requests.get(url, proxies=proxies, verify=False)\n\nwith open(\"serp-native-proxy.json\", \"w\", encoding=\"utf-8\") as file:\n    file.write(response.text)\n\nprint(\"Response saved to 'serp-native-proxy.json'.\")\n```\n\n👉 See the [full JSON output](https://github.com/luminati-io/Google-Reviews-API/blob/main/google-reviews-api-results/serp-native-proxy.json).\n\n\u003e **Note:** For production environments, load Bright Data's SSL certificate as described in our [SSL Certificate Guide](https://docs.brightdata.com/general/account/ssl-certificate).\n\u003e\n\n## Advanced Features\nBright Data's API supports several advanced parameters for fine-tuning your review extraction.\n\n### Feature ID (fid)\n\u003cimg width=\"700\" alt=\"scrape-google-reviews-building\" src=\"https://github.com/luminati-io/google-reviews-api/blob/main/images/420657506-0bc3b223-adf4-487a-9c75-11679b16907d.png\" /\u003e\n\nThe feature ID is a unique identifier for the business or location. To find it:\n\n1. Perform a Google search for the business name\n2. View the source code of the search results page (right-click and select \"View Page Source\")\n3. Search for \"data-fid\" within the page\n4. The fid will appear in a format like: `\"fid\":\"0x89c259a9b3117469:0xd134e199a405a163\"`\n\n### Localization (hl)\n\n\u003cimg width=\"700\" alt=\"google-reviews-scraper-building\" src=\"https://github.com/luminati-io/google-reviews-api/blob/main/images/420665500-0f1b630e-cb2a-4125-a7de-64be656a2f5b.png\" /\u003e\n\nSpecifies the preferred language using a two-letter language code.\n\n**Example:**\n\n```bash\ncurl --proxy brd.superproxy.io:33335 \\\n     --proxy-user brd-customer-\u003ccustomer-id\u003e-zone-\u003czone-name\u003e:\u003czone-password\u003e \\\n     \"https://www.google.com/reviews?fid=0x89c259a9b3117469:0xd134e199a405a163\u0026hl=fr\"\n```\n\nThis example returns reviews in French.\n\n### Sorting and Filtering\n\nYou can sort and filter reviews using query parameters:\n\n1. **sort**: Determines how reviews are sorted.\n  \n    **Possible values:**\n    \n    - `sort=qualityScore` (default) - Most relevant reviews first\n    - `sort=newestFirst` - Newest reviews first\n    - `sort=ratingHigh` - Highest rated reviews first\n    - `sort=ratingLow` - Lowest rated reviews first\n    \n    **Example:**\n    \n    ```bash\n    curl --proxy brd.superproxy.io:33335 \\\n         --proxy-user brd-customer-\u003ccustomer-id\u003e-zone-\u003czone-name\u003e:\u003czone-password\u003e \\\n         \"https://www.google.com/reviews?fid=0x89c259a9b3117469:0xd134e199a405a163\u0026sort=ratingLow\"\n    ```\n    \n    This example returns the lowest-rated reviews first.\n\n2. **filter**: Filters reviews containing a specific keyword.\n\n    **Example:**\n    \n    ```bash\n    curl --proxy brd.superproxy.io:33335 \\\n         --proxy-user brd-customer-\u003ccustomer-id\u003e-zone-\u003czone-name\u003e:\u003czone-password\u003e \\\n         \"https://www.google.com/reviews?fid=0x89c259a9b3117469:0xd134e199a405a163\u0026filter=excellent\"\n    ```\n    \n    This example returns only reviews containing the word \"excellent\".\n\n### Pagination\n\nControl the number of results and manage pagination with these parameters:\n\n1. **start**: Defines the result offset to manage pagination.\n    - `start=0` (default) - First page of results\n    - `start=10` - Second page of results\n    - `start=20` - Third page of results\n    \n    **Example:**\n    \n    ```bash\n    curl --proxy brd.superproxy.io:33335 \\\n         --proxy-user brd-customer-\u003ccustomer-id\u003e-zone-\u003czone-name\u003e:\u003czone-password\u003e \\\n         \"https://www.google.com/reviews?fid=0x89c259a9b3117469:0xd134e199a405a163\u0026start=10\"\n    ```\n    \n    This example returns the second page of reviews.\n    \n2. **num**: Defines the number of results to return per page.\n    - `num=10` (default) - Returns 10 results\n    - `num=20` - Returns 20 results (maximum)\n    \n    **Example:**\n    \n    ```bash\n    curl --proxy brd.superproxy.io:33335 \\\n         --proxy-user brd-customer-\u003ccustomer-id\u003e-zone-\u003czone-name\u003e:\u003czone-password\u003e \\\n         \"https://www.google.com/reviews?fid=0x89c259a9b3117469:0xd134e199a405a163\u0026num=20\"\n    ```\n    \n    This example returns 20 reviews in one request.\n\n## Support \u0026 Resources\n\n- **Documentation**: [SERP API Docs](https://docs.brightdata.com/scraping-automation/serp-api/)\n- **SEO Use Cases**: [SEO Tracking and Insights](https://brightdata.com/use-cases/serp-tracking)\n- **Additional Guides**: [Web Unlocker API](https://github.com/luminati-io/web-unlocker-api), [SERP API](https://github.com/luminati-io/serp-api), [Google Search API](https://github.com/luminati-io/google-search-api), [Google News Scraper](https://github.com/luminati-io/Google-News-Scraper), [Google Trends API](https://github.com/luminati-io/google-trends-api)\n- **Technical Articles**:\n    - [Best SERP APIs](https://brightdata.com/blog/web-data/best-serp-apis)\n    - [Build a RAG Chatbot with SERP API](https://brightdata.com/blog/web-data/build-a-rag-chatbot)\n- **Technical Support**: [Contact Us](mailto:support@brightdata.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluminati-io%2Fgoogle-reviews-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluminati-io%2Fgoogle-reviews-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluminati-io%2Fgoogle-reviews-api/lists"}