Vài tháng trước, một developer trên Stack Overflow đã đăng câu hỏi mà đến giờ vẫn còn mở từ năm 2012: "Google Places API Place Details limited to 5 reviews?" Mười bốn năm trôi qua, hàng trăm lượt upvote, nhưng câu trả lời vẫn y nguyên — đúng vậy, tối đa chỉ 5 review. Chỉ riêng giới hạn này thôi cũng đủ thấy vì sao cuộc tranh luận này đến nay vẫn chưa có hồi kết.
Nếu bạn từng cần dữ liệu Google Places ở quy mô lớn — danh sách lead, review đối thủ, mô hình lưu lượng khách, audit local SEO — rất có thể bạn cũng đang đứng trước đúng một ngã rẽ. Google Places API chính thức thì gọn gàng, có cấu trúc, tài liệu rõ ràng. Nhưng nó không trả về hết những gì bạn thấy trên Google Maps, và hóa đơn có thể đội lên rất nhanh khi vượt gói miễn phí. Scraping thì có thể lấy được nhiều hơn, cách tính chi phí cũng khác hẳn, nhưng lại kéo theo cả loạt phiền phức riêng (CAPTCHA, selector bị gãy, vùng xám pháp lý). Tôi đã dành khá nhiều thời gian mổ xẻ cả hai hướng — từ tài liệu API, bảng giá SKU, chuỗi công cụ scraping cho đến những đánh đổi thực tế — và bài viết này là kết quả. Chúng ta sẽ đi qua từng field bị thiếu, chi phí thật ở mức 10K/100K/1M bản ghi, thực tế chống bot, và một playbook kết hợp thực dụng. Kèm theo đó là sơ đồ ra quyết định, vì chẳng ai muốn đọc 3.000 từ rồi vẫn không biết nên chọn gì.
Google Places API là gì (và thực sự cho bạn những gì)?
Google Places API là cách chính thức, có cấu trúc của Google để lấy dữ liệu doanh nghiệp — tên, địa chỉ, số điện thoại, đánh giá, review, ảnh — từ cơ sở dữ liệu của họ. Bạn gửi một HTTP request, rồi nhận lại JSON đã được định dạng sẵn. Đây là con đường mà Google cho phép.
Phiên bản hiện tại (Places API "New") tổ chức mọi thứ xoay quanh field mask. Khi gọi Place Details, bạn chỉ định chính xác những field mình muốn — displayName, formattedAddress, rating, reviews, photos, v.v. — và Google sẽ tính phí dựa trên mức field cao nhất mà bạn yêu cầu. Nếu bỏ qua field mask, bạn không nhận được phản hồi mặc định mà sẽ gặp lỗi. Đây là chủ ý của Google: chỉ trả tiền cho phần bạn dùng (và trả nhiều hơn cho những field “ngon” hơn).
Các field dữ liệu hiện có được chia theo các bậc giá:
| Bậc | Ví dụ field dữ liệu | Bạn nhận được gì |
|---|---|---|
| Essentials | Place ID, địa chỉ đã định dạng, vị trí, metadata ảnh | Thông tin định danh và vị trí cơ bản |
| Pro | Tên hiển thị, trạng thái doanh nghiệp, Google Maps URI, loại chính | Thông tin doanh nghiệp đầy đủ hơn |
| Enterprise | Đánh giá, số lượng rating, website, số điện thoại, giờ mở cửa, mức giá | Những field mà đa số người làm kinh doanh thực sự cần |
| Enterprise + Atmosphere | Review, tóm tắt review, tóm tắt sinh tạo, tiện ích, đỗ xe, mang đi/giao hàng | Dữ liệu đầy đủ nhất (và đắt nhất) |
Các endpoint quan trọng nhất mà đa số người dùng quan tâm gồm: Autocomplete (gợi ý khi đang gõ), Text Search và Nearby Search (tìm địa điểm), Place Details (bổ sung dữ liệu cho một place đã biết), và Place Photos (ảnh).
Còn đây là những giới hạn đáng chú ý:
- Review: Place resource chỉ trả về tối đa 5 review cho mỗi địa điểm, sắp xếp theo mức độ liên quan. Hết. Không phải 50, cũng không phải “tất cả”. Chỉ 5.
- Ảnh: Giới hạn 10 photo references cho mỗi place trong Place resource.
- Popular times / mức độ đông hiện tại: Không có như một field tiêu chuẩn trong Places API. Google xác nhận dữ liệu này tồn tại trên giao diện người dùng (dựa trên Location History đã được tổng hợp và ẩn danh), và Maps blog giải thích cách nó hoạt động — nhưng danh sách field thì không hề có.
- Mục Q&A: Không được công khai.
- Đề xuất đối thủ kiểu "People also search for": Không được công khai.
- Menu / bảng giá: Không phải field tiêu chuẩn.
Ai thường dùng Google Places API?
- Công ty logistics dùng để xác thực và mã hóa địa chỉ
- Ứng dụng du lịch và khách sạn hiển thị khách sạn, nhà hàng, điểm tham quan gần đó
- Nền tảng bất động sản bổ sung dữ liệu doanh nghiệp địa phương cho tin đăng
- Agency local SEO kiểm tra tính nhất quán của NAP (name, address, phone)
- Đội ngũ sales xây danh sách lead từ Place ID và thông tin doanh nghiệp cơ bản
Nếu nhu cầu của bạn gói gọn trong kiểu “tôi cần dữ liệu địa điểm có cấu trúc cho một ứng dụng production,” API là điểm khởi đầu hợp lý. Nếu nhu cầu của bạn có những cụm như “tất cả review,” “popular times,” hay “phân tích đối thủ” — cứ đọc tiếp.
“Scraping” dữ liệu Google Places nghĩa là gì?
Web scraping là dùng phần mềm để tự động trích xuất dữ liệu từ một trang web — trong trường hợp này là Google Maps hoặc kết quả Google Search — thay vì thông qua API chính thức. Scraper đọc trang theo cách trình duyệt của bạn làm, rồi lấy ra những phần đã được cấu trúc: tên doanh nghiệp, địa chỉ, nội dung review, xếp hạng sao, biểu đồ popular times, Q&A, đề xuất đối thủ, toàn bộ thư viện ảnh, và bất cứ thứ gì hiển thị trên màn hình.
Điểm khác biệt cốt lõi: API cho bạn những gì Google quyết định mở ra. Scraping thì cho bạn (về mặt lý thuyết) mọi thứ mà con người có thể nhìn thấy trên trang.
Nhưng “scraping” không phải chỉ có một kiểu. Có 3 hướng rất khác nhau, và mức đánh đổi giữa chúng là khá lớn.
Script tự viết vs. scraping API được quản lý vs. công cụ no-code
| Cách tiếp cận | Cách hoạt động | Phù hợp nhất cho | Đánh đổi chính |
|---|---|---|---|
| DIY scripts (Puppeteer, Playwright, Selenium) | Bạn tự viết và bảo trì script trình duyệt headless để điều hướng trang Google Maps và phân tích DOM | Developer cần toàn quyền kiểm soát và logic tùy biến | Gánh nặng bảo trì lớn nhất — selector dễ gãy khi Google đổi giao diện |
| Managed scraping APIs (Thunderbit API, SerpApi, Outscraper) | Bạn gửi URL hoặc query tới API; nó lo render, chống bot, phân tích và trả dữ liệu có cấu trúc | Developer muốn output có cấu trúc nhưng không phải tự nuôi scraper | Giá và chất lượng mỗi nhà cung cấp khác nhau; bạn phải tin bên thứ ba |
| No-code browser extensions (Thunderbit Chrome Extension) | Trích xuất bằng cách bấm trực tiếp trong trình duyệt — AI gợi ý field, bạn bấm “Scrape,” rồi xuất sang Sheets/Excel | Người dùng kinh doanh, marketer, sales team cần dữ liệu nhanh thành bảng tính | Ít linh hoạt hơn cho pipeline phức tạp; phụ thuộc vào chất lượng AI của công cụ |
Tóm lại: DIY = linh hoạt nhất nhưng phải bảo trì nhiều nhất. Managed API = output có cấu trúc, không cần nuôi hệ thống. No-code = nhanh nhất cho người không viết code.
Google Places API so với Scraping: So sánh dữ liệu theo từng field
Đây là bảng mà tôi ước gì đã có lúc bắt đầu nghiên cứu chủ đề này. Mọi field mà một business user hay developer có thể cần, đặt cạnh nhau:

| Field dữ liệu | Google Places API | Web Scraping |
|---|---|---|
| Tên doanh nghiệp | ✅ Đầy đủ (gói Pro) | ✅ Đầy đủ |
| Địa chỉ / vị trí | ✅ Đầy đủ (gói Essentials) | ✅ Đầy đủ |
| Số điện thoại | ✅ Gói Enterprise | ✅ Khi hiển thị |
| URL website | ✅ Gói Enterprise | ✅ Khi hiển thị |
| Điểm đánh giá tổng hợp | ✅ Gói Enterprise | ✅ Đầy đủ |
| Số lượng rating | ✅ Gói Enterprise | ✅ Đầy đủ |
| Review từng người dùng (text + rating) | ⚠️ Tối đa 5 review | ✅ Tất cả review có sẵn |
| Popular times / mức độ đông hiện tại | ❌ Không phải field API tiêu chuẩn | ✅ Trích xuất được (nếu được render) |
| Mục Q&A | ❌ Không được công khai | ✅ Trích xuất được |
| Metadata ảnh | ✅ Tối đa 10 references qua Photos endpoint | ✅ Toàn bộ thư viện ảnh |
| Menu / bảng giá | ❌ Không phải field tiêu chuẩn | ⚠️ Khi xuất hiện trên trang |
| "People also search for" (đối thủ) | ❌ Không được công khai | ✅ Trích xuất được |
| Giờ mở cửa | ✅ Gói Enterprise | ✅ Khi hiển thị |
| Mức giá | ✅ Gói Enterprise | ✅ Khi hiển thị |
| Place ID | ✅ Rất mạnh (Essentials) | ⚠️ Có thể lấy, nhưng API là nguồn chuẩn |
| Google Maps URI | ✅ Gói Pro | ✅ Chính là URL trang |
| Phản hồi của chủ doanh nghiệp với review | ⚠️ Cần kiểm tra tính sẵn có hiện tại | ✅ Thường nhìn thấy |
| Vị trí trên SERP / map-pack | ❌ Không phải mục tiêu của API | ✅ Qua SERP scraping |
Điểm thiếu lớn nhất: nếu bạn cần toàn bộ review để phân tích cảm xúc, theo dõi danh tiếng, hoặc benchmark đối thủ, thì chỉ API thôi là không đủ. 5 review cho mỗi địa điểm chỉ là một mẫu thử, không phải dataset.
Popular times và mô hình lưu lượng khách? Cũng vậy. Nếu bạn là tư vấn bán lẻ hoặc nhà phân tích bất động sản thương mại, scraping là con đường gần như duy nhất — dữ liệu đó đơn giản là không có trong API.
Ngược lại, với Place ID chuẩn, địa chỉ có cấu trúc để geocoding, hay để vận hành store locator, API sạch hơn, đáng tin hơn và được hỗ trợ chính thức.
Chi phí thực tế: Google Places API vs Scraping ở mức 10K, 100K và 1M bản ghi
Chi phí là phần bị hiểu sai nhiều nhất trong quyết định này. Nhiều người đăng ký gói miễn phí của API, dựng prototype, rồi bất ngờ nhận hóa đơn khiến họ choáng khi bắt đầu scale. Ở phía scraping, người ta thường đánh giá thấp chi phí proxy và thời gian của developer.

Vậy thì hãy tính thử.
Phân tích giá Google Places API
Google đã đại tu giá Maps Platform vào tháng 3/2025, thay thế khoản credit cố định 200 USD/tháng bằng mức miễn phí theo SKU và phân tầng theo khối lượng sử dụng. Bảng giá hiện tại hoạt động như sau:
- Essentials (Place Details): 10.000 request miễn phí/tháng, sau đó 5,00 USD cho mỗi 1.000 request đến 100K
- Pro (Place Details): 5.000 miễn phí, sau đó 7,00 USD/1K
- Enterprise (Place Details): 1.000 miễn phí, sau đó 20,00 USD/1K
- Enterprise + Atmosphere (review, tiện ích): 1.000 miễn phí, sau đó 25,00 USD/1K
Chi tiết quan trọng: nếu field mask của bạn chỉ cần một field thuộc Enterprise + Atmosphere (ví dụ reviews), toàn bộ request sẽ bị tính theo bậc đó. Và trong thực tế, quy trình thường nối nhiều SKU với nhau — Text Search Pro để tìm place, rồi Place Details Enterprise + Atmosphere để enrich — nên chi phí cộng dồn rất nhanh.
Một lần “lookup” hiếm khi chỉ là một request tính phí đơn lẻ.
Chi phí scraping: công cụ, proxy và thời gian developer
Chi phí scraping thường chia thành ba phần:
- Phí thuê công cụ hoặc API credit: Managed scraping API thường tính theo request, theo credit, hoặc theo record. SerpApi tính phí theo search. Outscraper dùng pay-as-you-go theo record. Thunderbit API dùng hệ thống credit (Extract = 20 credit/request). Thunderbit Chrome Extension tính 1 credit cho mỗi dòng output.
- Chi phí proxy (chỉ với DIY): Residential proxy cho scraping Google Maps thường vào khoảng 50–300 USD/tháng, tùy volume và nhà cung cấp.
- Thời gian developer (chỉ với DIY): Xây và duy trì script Puppeteer/Playwright. Đây là chi phí ẩn làm mô hình DIY kém hiệu quả (phần này tôi sẽ nói kỹ hơn bên dưới).
Bảng chi phí so sánh: API vs. Scraping ở quy mô lớn
| Quy mô | Google Places API (Enterprise + Atmosphere) | Managed Scraping API (ước tính) | DIY Scraping (proxy + thời gian dev) |
|---|---|---|---|
| 10K bản ghi/tháng | ~225 USD (1K miễn phí, 9K × 25 USD/1K) | ~50–150 USD tùy nhà cung cấp | ~50 USD proxy + 2–4 giờ dev/tháng |
| 100K bản ghi/tháng | ~2.475 USD (sau trần miễn phí, áp dụng tier theo volume) | ~250–500 USD | ~150 USD proxy + 8–16 giờ dev/tháng |
| 1M bản ghi/tháng | ~17.975 USD (giá theo volume giúp giảm đơn giá, nhưng tổng vẫn rất cao) | ~1.500–3.000 USD | ~300 USD proxy + 20+ giờ dev/tháng + rủi ro gãy |
Lưu ý: Ước tính API dùng volume tier đã công bố cho Place Details Enterprise + Atmosphere, tính sau trần miễn phí 1K. Ước tính managed scraping API là khoảng giá gần đúng giữa các nhà cung cấp. Thời gian dev DIY giả định chi phí tổng hợp 50–100 USD/giờ.
Mô hình rất rõ: ở quy mô nhỏ kiểu hobby (dưới 10K), trần miễn phí của API có thể khiến nó là lựa chọn rẻ nhất, đặc biệt nếu bạn chỉ cần field Essentials hoặc Pro. Ở quy mô kinh doanh (100K+), chi phí API tăng rất mạnh, nhất là với những field giàu dữ liệu. Ở quy mô enterprise (1M+), API có thể chạm mốc năm chữ số mỗi tháng, và khi đó scraping hoặc các dịch vụ dữ liệu trở nên hấp dẫn hơn về mặt kinh tế — miễn là bạn thật sự cần những field mà API không cho.
Nếu bạn chỉ cần địa chỉ và Place ID, đừng scrape. API rẻ hơn và phù hợp hơn cho mục đích đó. Lập luận kinh tế cho scraping chỉ đúng khi bạn cần dữ liệu mà API không thể trả về.
Thực tế chống bot: Vì sao Google scraper tự viết hay bị hỏng
Đây là phần mà những người cổ vũ scraping thường bỏ qua. Google không muốn bạn scrape Google Maps. Họ đã xây nhiều lớp phòng vệ và cập nhật thường xuyên.

Các lớp phòng thủ của Google
- reCAPTCHA: Trình duyệt tự động bị kích hoạt CAPTCHA với tần suất cao hơn hẳn người dùng thật
- Kết xuất JavaScript phía client: Google Maps là một ứng dụng JavaScript nặng. Một HTTP request đơn giản sẽ không lấy được nội dung đã render — bạn cần một headless browser đầy đủ
- Browser fingerprinting: Google phát hiện headless browser qua canvas fingerprint, WebGL, thuộc tính navigator và các tín hiệu khác
- Giới hạn tốc độ theo IP: Nếu quá nhiều request từ cùng một IP (hoặc cùng subnet proxy), bạn sẽ bị chặn
- Thay đổi cấu trúc DOM: Google thường xuyên thay cách xây dựng trang — đồng thuận chung trên Reddit và GitHub issues là selector có thể gãy sau vài tuần đến vài tháng
Cái ở dòng cuối mới là sát thủ thầm lặng. Một script Puppeteer chạy hoàn hảo vào tháng Sáu có thể trả về kết quả trống vào tháng Bảy chỉ vì Google đổi tên CSS class hoặc sắp xếp lại một div.
Chi phí ẩn của việc bảo trì script tự viết
Mỗi khi Google đổi DOM, sẽ có người trong nhóm phải:
- Phát hiện scraper bị hỏng (tốt nhất là trước khi dữ liệu lỗi lan ra)
- Kiểm tra lại cấu trúc trang mới
- Cập nhật selector, xử lý kiểu CAPTCHA mới, chỉnh retry logic
- Test và deploy lại
Trong một năm, thời gian bảo trì này hoàn toàn có thể vượt chi phí thuê managed scraping API. Tôi đã thấy có team tốn hơn 40 giờ developer mỗi năm chỉ để giữ một Google Maps scraper hoạt động — và đó là con số khá thận trọng cho một setup mức độ phức tạp trung bình.
Vì sao managed scraping API tồn tại
Chính gánh nặng bảo trì này là lý do các dịch vụ như Thunderbit API, SerpApi, và Outscraper ra đời. Chúng gánh phần phức tạp chống bot — render JS, xử lý CAPTCHA, xoay proxy, bảo trì selector — rồi trả dữ liệu có cấu trúc.
Endpoint POST /extract của Thunderbit với renderMode: "full" xử lý những trang nặng JavaScript như Google Maps và trả về JSON có cấu trúc khớp schema, chứ không phải HTML thô rồi lại phải parse tiếp. MCP server mở rộng điều này cho AI agents — Claude, Cursor, hoặc các workflow dựa trên LLM khác có thể scrape dữ liệu Google Maps ngay trong lúc làm việc mà không phải rời khỏi môi trường của chúng.
Với người không rành kỹ thuật, Thunderbit Chrome Extension là lựa chọn gần như không cần bảo trì: mở trang Google Maps, bấm “AI Suggest Fields,” bấm “Scrape,” rồi xuất sang Sheets. Không selector, không proxy, không debug.
SerpApi và Outscraper là những lựa chọn thay thế khá tốt với mô hình giá và định dạng output khác nhau. SerpApi trả JSON có cấu trúc cho từng search; Outscraper tính phí theo từng record theo kiểu pay-as-you-go. Lựa chọn đúng phụ thuộc vào volume, ngân sách, và việc bạn cần JSON có cấu trúc hay chấp nhận parse output bán cấu trúc.
Playbook kết hợp: Dùng Google Places API và Scraping cùng nhau
Không bài viết nào top đầu về chủ đề này nói ra điều mà tôi thấy hiệu quả nhất trong thực tế: dùng cả hai. Nhiều team rốt cuộc vẫn dựa vào API chính thức cho một số tác vụ và scraping cho tác vụ khác. Bí quyết là ghép đúng công cụ cho đúng việc.

Khi API chính thức thắng thế
- Autocomplete trong ứng dụng production: độ trễ thấp, tuân thủ ToS, SLA đáng tin cậy. Không cần bàn cãi.
- Backend cho app theo vị trí: store locator, xác thực địa chỉ, đối sánh Place ID. API có cấu trúc, có hỗ trợ và có tài liệu rõ ràng.
- Tích hợp nhạy cảm về compliance: hợp đồng enterprise, sản phẩm public-facing, hoặc bất kỳ bối cảnh nào mà tuân thủ Google ToS là điều không thể thỏa hiệp.
Khi scraping thắng thế
- Trích xuất toàn bộ review (5K+ review cho mỗi place): phân tích cảm xúc, theo dõi danh tiếng, benchmark đối thủ. Giới hạn 5 review của API khiến nó gần như vô dụng ở đây.
- Trích xuất danh sách lead một lần: rẻ hơn cho các batch job không cần tính phí liên tục. Một công cụ no-code như Thunderbit có thể scrape danh sách doanh nghiệp và xuất sang spreadsheet chỉ trong vài phút.
- Phân tích popular times / lưu lượng khách: không có qua API. Hết.
- Dữ liệu Q&A, “people also search for” của đối thủ: chỉ thấy trên trang, không có trong API.
Khi nào nên dùng cách tiếp cận hybrid
- Theo dõi giá / rating liên tục: dùng API cho dữ liệu có cấu trúc cơ bản (Place ID, địa chỉ, rating tổng hợp), rồi scrape các field sâu mà API bỏ sót (toàn bộ review, popular times).
- Workflow enrichment: dùng API để lấy Place ID và thông tin doanh nghiệp chuẩn, sau đó scrape từng trang listing để lấy full review, Q&A, và ngữ cảnh đối thủ.
- Giám sát theo lịch: scheduled scraper của Thunderbit (cho người dùng no-code) hoặc batch extract bằng CLI với cron (cho developer) có thể xử lý scraping định kỳ mà không cần tự dựng hạ tầng.
Ma trận quyết định theo use case
| Use case | Phương pháp khuyến nghị | Lý do |
|---|---|---|
| Autocomplete trong app live | ✅ API chính thức | Độ trễ thấp, tuân thủ ToS, ổn định |
| Lấy 5K+ bộ review đầy đủ | ✅ Scraping / Scraping API | API chỉ cho tối đa 5 review mỗi place |
| Tạo danh sách lead doanh nghiệp địa phương một lần | ✅ Scraping (hoặc Thunderbit extension) | Rẻ hơn cho batch; không có phí duy trì |
| Phân tích popular times / lưu lượng khách | ✅ Chỉ scraping | Không có qua API |
| Theo dõi giá / rating liên tục | ⚠️ Hybrid | API cho dữ liệu cơ bản, scraping cho field sâu |
| Backend cho app theo vị trí | ✅ API chính thức | Có cấu trúc, được hỗ trợ, có SLA |
| Theo dõi vị trí SERP local SEO | ✅ Scraping / SERP API | Không phải mục tiêu của Places API |
| "People also search for" của đối thủ | ✅ Chỉ scraping | Không được expose qua API |
Sơ đồ ra quyết định: Google Places API vs Scraping — nên chọn gì?
Thay vì nói mơ hồ kiểu “còn tùy,” đây là một khung quyết định cụ thể. Hãy đi qua bốn câu hỏi sau:
1. Bạn có cần dữ liệu real-time trong một ứng dụng production không? → Có: Dùng API chính thức. Nó được hỗ trợ, có SLA và tuân thủ ToS. Dừng ở đây. → Không: Sang câu tiếp theo.
2. Bạn có cần dữ liệu mà API không trả về không (review đầy đủ, popular times, Q&A)? → Có: Bắt buộc phải dùng scraping. API thực sự không thể cho bạn dữ liệu đó. → Không: Sang câu tiếp theo.
3. Mỗi tháng bạn xử lý bao nhiêu bản ghi? → Dưới 10K: API có lẽ rẻ nhất, đặc biệt nếu bạn chỉ cần field Essentials hoặc Pro. Mức miễn phí đủ rộng ở quy mô này. → Trên 10K: Scraping hoặc managed scraping API thường kinh tế hơn, nhất là với dữ liệu giàu thông tin.
4. Bạn có nguồn lực developer để xây và duy trì scraper không? → Có: DIY bằng Puppeteer/Playwright cho bạn kiểm soát tối đa (nhưng phải chừa ngân sách cho bảo trì liên tục). → Không: Hãy dùng managed scraping API (Thunderbit API, SerpApi, Outscraper) hoặc công cụ no-code (Thunderbit Chrome Extension).
So sánh nhanh các lựa chọn dành cho developer
| Công cụ | Mô hình giá | Định dạng output | Xử lý chống bot | Hỗ trợ batch |
|---|---|---|---|---|
| Thunderbit API / MCP | Theo credit (Extract = 20 credit/request) | JSON có cấu trúc khớp schema | ✅ Render JS, xoay proxy, geo-routing | ✅ Tối đa 100 URL mỗi batch |
| SerpApi | Theo search (gói theo tier) | JSON có cấu trúc | ✅ | ✅ Qua tham số API |
| Outscraper | Theo record (pay-as-you-go) | JSON / CSV | ✅ | ✅ Qua task queue |
| DIY (Puppeteer/Playwright) | Proxy + thời gian dev | HTML thô (bạn tự parse) | ❌ Bạn phải tự lo | ✅ Tùy bạn tự xây |
Điểm khác biệt của Thunderbit API: nó trả về JSON có cấu trúc khớp schema dựa trên JSON Schema do bạn định nghĩa — không phải HTML thô hay Markdown rồi lại phải parse thêm. Nếu bạn đang đưa dữ liệu vào pipeline LLM hoặc nạp vào database, điều đó tiết kiệm được rất nhiều thời gian hậu xử lý.
Thunderbit phù hợp ở đâu? (Cho người dùng kinh doanh và developer)
Chúng tôi xây Thunderbit để lấp khoảng trống giữa “tôi cần dữ liệu Google Maps” và “tôi không muốn trở thành kỹ sư hạ tầng scraping.” Dưới đây là cách nó hoạt động cho cả hai nhóm người dùng.
Với người không kỹ thuật: Chrome Extension
- Mở một trang Google Maps — trang kết quả tìm kiếm hoặc một trang listing doanh nghiệp riêng lẻ
- Bấm “AI Suggest Fields” — AI của Thunderbit đọc trang và đề xuất cột (tên doanh nghiệp, địa chỉ, rating, review, số điện thoại, v.v.)
- Bấm “Scrape” — extension trích xuất dữ liệu thành bảng có cấu trúc. Dùng cloud mode để chạy đồng thời tối đa 50 trang
- Scrape subpages — bấm “Scrape Subpages” để đi vào từng listing và lấy chi tiết đầy đủ
- Xuất dữ liệu — sang Excel, Google Sheets, Airtable hoặc Notion. Xuất dữ liệu miễn phí, không có paywall
Với nhu cầu giám sát định kỳ — kiểm tra rating đối thủ hằng tuần, theo dõi listing doanh nghiệp mới — scheduled scraper sẽ tự chạy theo lịch bạn đặt.
Với developer: API, MCP Server và CLI
POST /extractvới JSON Schema: Gửi một URL Google Maps, định nghĩa field bạn muốn, rồi nhận JSON có cấu trúc trả về. ĐặtrenderMode: "full"cho các trang nặng JavaScript. Thunderbit xử lý render, chống bot, xoay proxy và geo-routing.POST /distill: Lấy Markdown sạch từ bất kỳ trang nào — hữu ích cho pipeline LLM cần nội dung thô thay vì field có cấu trúc. 1 credit/request so với 20 credit cho Extract.- MCP Server: AI agents (Claude, Cursor) có thể scrape dữ liệu Google Maps ngay trong quá trình làm việc. Hỗ trợ distillation, structured extraction, gợi ý field, và batch job tối đa 100 URL.
- CLI:
thunderbit batch extract --file urls.txt --schema places.jsoncho scraping theo lịch hoặc tích hợp CI/CD.
Giá credit: Extract = 20 credit/request, Distill = 1 credit/request. Credit API tính theo request, không phải theo từng dòng (khác với extension, nơi 1 credit = 1 dòng output). Xem Thunderbit Pricing để biết plan hiện tại.
Các cân nhắc về pháp lý và điều khoản sử dụng
Tôi sẽ nói ngắn gọn và đúng trọng tâm — không hù dọa, không chào hàng.
Google Places API đi kèm điều khoản khá rõ: điều khoản theo từng dịch vụ của Google nói rằng nội dung của Places API có thể dùng mà không cần Google Map, nhưng không được dùng chung với bản đồ không phải của Google. Dữ liệu latitude/longitude có thể được lưu cache tối đa 30 ngày theo lịch liên tiếp; Place ID có thể được lưu vô thời hạn. Việc ghi nguồn là bắt buộc đối với chi tiết, ảnh và review.
Scraping Google Maps có thể vi phạm Điều khoản Dịch vụ của Google. Mức độ thực thi thay đổi — rủi ro có thể là chặn IP, CAPTCHA dày đặc, và (trong hiếm trường hợp) hành động pháp lý. Các managed scraping API thường gánh thay một phần trách nhiệm tuân thủ cho người dùng, nhưng đó không phải lá chắn pháp lý.
Với ứng dụng production phục vụ người dùng cuối, API chính thức là lựa chọn an toàn hơn. Với nghiên cứu nội bộ, phân tích batch, và competitive intelligence, scraping là cách làm phổ biến trong ngành. Hãy trao đổi với cố vấn pháp lý của bạn nếu workflow có yếu tố thương mại.
Nếu là tôi, tôi sẽ chọn gì (và vì sao)?
Sau khi mổ xẻ bảng giá SKU, danh sách field, các thread cộng đồng và tài liệu công cụ, đây là kết luận của tôi:
- Dùng API chính thức khi bạn cần dữ liệu real-time, tuân thủ ToS trong ứng dụng production, hoặc khi field Essentials/Pro là đủ và volume dưới 10K/tháng. Trần miễn phí khá hào phóng ở quy mô nhỏ, và chất lượng dữ liệu thì không phải bàn.
- Dùng scraping (managed API hoặc công cụ no-code) khi bạn cần review đầy đủ, popular times, Q&A, ngữ cảnh đối thủ, hoặc bất kỳ field nào API không công khai. Cũng nên dùng khi volume vượt 10K–100K bản ghi/tháng và bạn đang yêu cầu field giàu dữ liệu (Enterprise + Atmosphere) — lúc này hóa đơn API rất khó biện minh.
- Dùng cả hai khi workflow của bạn cần Place ID chuẩn và dữ liệu cơ bản có cấu trúc (API) cùng với intelligence sâu từ trang hiển thị (scraping). Thực tế này phổ biến hơn nhiều bài viết thừa nhận.
Điểm bẻ chi phí: dưới khoảng 10K bản ghi/tháng với field cơ bản, API đơn giản hơn và thường miễn phí. Trên mức đó, đặc biệt với dữ liệu giàu thông tin, scraping thường kinh tế hơn. Ở mốc 1M bản ghi với field Enterprise + Atmosphere, API có thể lên khoảng 18K USD/tháng, trong khi managed scraper chỉ bằng một phần nhỏ của con số này.
Nếu bạn muốn tự kiểm chứng, Thunderbit Chrome Extension là cách nhanh nhất để thấy scraping lấy được gì so với API. Với workflow cho developer, Thunderbit API docs có đầy đủ thứ bạn cần để bắt đầu. Và nếu muốn đọc sâu hơn về web scraping không cần code hoặc AI web scraping nói chung, blog của chúng tôi đã có nhiều bài chi tiết.
Những điểm mấu chốt
- Google Places API là công cụ phù hợp cho ứng dụng production, autocomplete và truy vấn địa điểm có cấu trúc — nhưng nó giới hạn review ở 5, ảnh ở 10, và không công khai popular times, Q&A hay đề xuất đối thủ.
- Scraping có thể lấy mọi thứ hiển thị trên Google Maps, bao gồm bộ review đầy đủ và dữ liệu popular times, nhưng bạn phải tự xử lý phòng thủ chống bot hoặc trả tiền cho dịch vụ quản lý.
- Dưới 10K bản ghi/tháng, trần miễn phí của API thường khiến nó là lựa chọn rẻ nhất. Trên 100K, scraping hoặc managed scraping API thường tiết kiệm hơn cho dữ liệu giàu thông tin.
- DIY scraper thường xuyên bị gãy do cơ chế chống bot và thay đổi DOM của Google — hãy dự trù hơn 40 giờ developer mỗi năm cho bảo trì, hoặc dùng công cụ được quản lý.
- Chiến lược thực tế tốt nhất thường là hybrid: dùng API cho ID chuẩn và field cơ bản, dùng scraping cho intelligence sâu mà API không trả được.
- Thunderbit phục vụ cả hai phía: Chrome Extension cho người dùng no-code và API/MCP server dạng JSON có cấu trúc cho developer.
Câu hỏi thường gặp
Có thể lấy hơn 5 review Google qua Places API không?
Không. Google Places API giới hạn mỗi place tối đa 5 review, sắp xếp theo mức độ liên quan. Điều này đã đúng từ khi API ra mắt và chưa thay đổi dù developer đã yêu cầu suốt nhiều năm. Nếu muốn lấy toàn bộ review có sẵn của một doanh nghiệp, scraping (tự làm hoặc qua managed scraping API) là lựa chọn duy nhất.
Scraping Google Maps có hợp pháp không?
Không có câu trả lời chung kiểu có/không cho mọi trường hợp. Scraping dữ liệu Google Maps hiển thị công khai có thể vi phạm Điều khoản Dịch vụ của Google, và mức độ thực thi dao động từ chặn IP đến (hiếm khi) hành động pháp lý. Nhiều doanh nghiệp dùng scraping cho nghiên cứu nội bộ và competitive intelligence mà không gặp vấn đề. Managed scraping API giảm bớt một phần rủi ro tuân thủ, nhưng không phải lá chắn pháp lý. Nếu bạn đang xây sản phẩm thương mại hoặc xử lý dữ liệu cá nhân, hãy hỏi tư vấn pháp lý.
Google Places API tốn bao nhiêu cho 100K lượt tra cứu?
Còn tùy vào field bạn yêu cầu. Với Place Details ở bậc Essentials, khoảng 450 USD. Ở bậc Pro, khoảng 1.615 USD. Với Enterprise + Atmosphere (bao gồm review và tiện ích), khoảng 2.475 USD. Nếu workflow của bạn còn cần Text Search Pro để tìm kiếm ban đầu, hãy cộng thêm khoảng 3.040 USD nữa. Các ước tính này dùng volume tier đã công bố của Google và giả định mỗi bản ghi là một request tính phí sau khi hết hạn mức miễn phí.
Khác nhau giữa scraping API và công cụ scraping no-code là gì?
Scraping API (như Thunderbit's Open API) dành cho developer tích hợp scraping vào code, pipeline tự động hóa, hoặc workflow của AI agent qua HTTP request. Công cụ no-code (như Thunderbit Chrome Extension) cho phép người không kỹ thuật chỉ cần trỏ, bấm và xuất dữ liệu ngay trong trình duyệt mà không phải viết code. Cả hai đều có thể trả dữ liệu có cấu trúc; khác nhau là giao diện và mô hình tích hợp.
Thunderbit có chạy trên trang Google Maps không?
Có. Chrome Extension có thể scrape kết quả tìm kiếm Google Maps và từng listing doanh nghiệp riêng lẻ — AI tự động gợi ý field, và bạn có thể dùng cloud mode cho tối đa 50 trang chạy đồng thời. Endpoint POST /extract của API với renderMode: "full" xử lý các trang Google Maps render bằng JavaScript và trả về JSON có cấu trúc khớp schema. MCP server cho phép AI agents scrape dữ liệu Google Maps ngay giữa workflow.
Tìm hiểu thêm


