Google Workspace Marketplace App Review Extractor by App ID avatar

Google Workspace Marketplace App Review Extractor by App ID

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Google Workspace Marketplace App Review Extractor by App ID

Google Workspace Marketplace App Review Extractor by App ID

Pull public reviews for a specific Google Workspace Marketplace app by its App ID, with reviewer name, star rating, review text, posting date and helpful-vote count, filterable by minimum rating and sort order.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Nimbryxo-studio

Nimbryxo-studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Features

Limited permissions

Share

Google Workspace Marketplace App Review Extractor

Collect the public user reviews of any Google Workspace Marketplace app - stars, review text, date, reviewer, helpful votes and the developer's replies - for one app or a whole watchlist. No Google account, cookie, API key or proxy is needed.

The actor paginates the public review list and deduplicates overlapping pages, so a request for 100 reviews returns 100 unique reviews instead of repeated first-page rows.

What this actor does

  • One row per review - rating, text, date, reviewer, helpful votes and developer replies
  • Multiple apps - pass app IDs or full Marketplace URLs in one run
  • Pagination - follows the public review list page by page and removes duplicates
  • Filters - rating range, date window and review-text keyword
  • Languages - 28 Marketplace language slices or the mixed "All languages" stream
  • App context - developer, listing rating, exact installs, pricing class, icon and links
  • Empty fields are omitted - never null, blank or placeholder values

Output per review

One row per review:

FieldMeaning
reviewIdMarketplace review identifier
appId, appName, appUrl, sourceUrlApp identity and listing URL
rating1-5 stars
reviewTextReview body (omitted for rating-only reviews)
reviewDate, reviewTimestampPosting date and full UTC timestamp
reviewerName, reviewerAvatarUrlPublic reviewer identity and avatar
helpfulCountOther users' helpful votes
reviewLanguageLanguage slice when a specific language is requested
developerReply, developerReplyDate, developerReplyTimestamp, developerReplyAuthorLatest developer reply
developerReplies[]Every reply on the review (text, date, timestamp, author, avatarUrl, replyId)
hasDeveloperReply, replyCountReply flags
appDeveloper, appDeveloperWebsitePublisher identity
appRating, appReviewCount, appInstallCount, appInstallsLabelListing rating, rating count and exact installs
appPricingModelFree, Free trial, Freemium or Paid (omitted when unpublished)
appIconUrl, appWorksWith[], appLastUpdatedListing media, Google apps it plugs into, last update date
appTermsUrl, appPrivacyUrl, appSupportUrl, appWebsiteUrlPublished listing links
recordType, scrapedAtRecord marker and scrape time

Empty values are omitted at every depth, so every row contains only real data.

Input

InputDefaultWhat it does
appIds["539341275670"]App IDs or full Marketplace URLs. Duplicates are removed. Legacy saved tasks that send a single appId still work.
maxItems100Total reviews saved across all apps.
maxReviewsPerApp2000Hard per-app ceiling; unused slots are offered to the next app.
sortByMostRelevantMostRelevant / MostHelpful use Google's helpful ranking; Newest uses the date ranking; HighestRated / LowestRated sort the fetched reviews.
reviewLanguageen28 Marketplace language slices, or all for the site's mixed "All languages" stream.
minRating, maxRating-Star range (1-5). maxRating: 2 keeps complaints only.
sinceDate, untilDate-ISO date/datetime, or a relative period such as 30 days, 2 weeks, 6 months.
reviewKeyword-Case-insensitive text that must appear in the review.

Only appIds (or the legacy appId) is needed. Everything else has a working default.

Examples

One app, newest first:

{
"appIds": ["539341275670"],
"maxItems": 100,
"sortBy": "Newest"
}

A watchlist of IDs and URLs, complaints from the last 90 days:

{
"appIds": [
"539341275670",
"https://workspace.google.com/marketplace/app/form_presenter+timer/93519377337"
],
"maxItems": 200,
"maxReviewsPerApp": 100,
"maxRating": 2,
"sinceDate": "90 days"
}

German reviews that mention a specific word:

{
"appIds": ["218858140171"],
"reviewLanguage": "de",
"reviewKeyword": "Rechnung",
"maxItems": 50
}

Reliability and coverage

  • Pagination stops at the source total, repeated pages with no new review IDs, the per-app cap, or a safety page cap. Review IDs are deduplicated, so page overlap never produces duplicate rows.
  • Replies are attached to the reviews that carry them.
  • Rating, date and keyword filters are applied to the fetched reviews. Restrictive filters scan more pages automatically; raise maxReviewsPerApp for deeper history.
  • Network errors are retried on 429/5xx. A bad App ID is skipped with a clear status message, and the remaining apps still run.
  • No proxy, no cookies: no account, login, cookie, API key or proxy setup is needed.

Use cases

  • App due diligence - read recent complaints and developer responses before adopting an add-on
  • Review monitoring - track new reviews for a watchlist of Marketplace apps
  • Competitive research - compare ratings, installs and feedback across similar apps
  • Product quality - surface recurring issues by rating, date or keyword
  • Localization QA - inspect reviews in a specific language slice

FAQ

How many reviews can I collect? Up to 2,000 per app (maxReviewsPerApp) and up to 5,000 per run (maxItems). The Marketplace serves text reviews in 10-review pages; rating-only reviews have no body and are not part of the text review total.

Why does an app show thousands of ratings but fewer text reviews? The listing's rating count includes rating-only reviews. The review service returns reviews with text, split by language. Both numbers are real.

Why pick a language? The site serves one language slice at a time. reviewLanguage gives the complete slice for that language. all uses the site's mixed "All languages" stream, whose total can be shorter than the sum of the individual language slices.

Are review names always present? Most reviews show a public name and avatar; some are anonymous. Those fields are omitted rather than filled with a placeholder.

Do all apps have developer replies? Replies are shown when the developer posted one. They are attached to the reviews that carry them; the actor never invents a reply.

Are HighestRated and LowestRated real Marketplace sorts? The Marketplace only offers helpful and newest ordering. The actor fetches newest reviews and sorts that window by stars. Increase maxReviewsPerApp to widen the window.

Can I search for apps by keyword? This actor takes app IDs or URLs. Keyword app discovery is a separate Marketplace surface; use the ID from any app URL.

Can I monitor new reviews? Use sinceDate (for example 7 days) on a schedule; the actor returns only reviews in that window. Cross-run "new since last run" state is not part of this extractor.

A URL field looks broken? App icons, banners and reviewer avatars are public lh3.googleusercontent.com URLs and return images without cookies. Listing pages are public HTML. If an app's own terms/privacy/support link is dead, that is the publisher's link, not a scrape error.

What about an invalid App ID? The Marketplace returns HTTP 400 for an unknown ID. The actor reports it in the status message and continues with the other apps.

Limitations

  • Caps are 2,000 reviews per app and 5,000 per run.
  • The Marketplace exposes two real server sorts; HighestRated/LowestRated sort the fetched window client-side.
  • Reviewer names, avatars and developer replies can be absent upstream; missing values are omitted, never filled.
  • Per-review permalinks are not published; sourceUrl is the app page.
  • Restrictive filters scan a bounded page budget; raise maxReviewsPerApp for deeper history.