# Atlassian, Zoom & Zendesk Marketplace Apps Tracker (`signalscope-data/saas-marketplaces-tracker`) Actor

Scrape & monitor Atlassian, Zoom & Zendesk marketplace apps and vendors: installs, ratings, reviews, review insights, partner tiers, vendor portfolios, market reports, alerts. $2/1,000 apps.

- **URL**: https://apify.com/signalscope-data/saas-marketplaces-tracker.md
- **Developed by:** [Bin](https://apify.com/signalscope-data) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 apps

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Atlassian, Zoom & Zendesk Marketplace Apps Tracker

Search, rank and **monitor apps across three SaaS integration marketplaces in one run**: the **Atlassian Marketplace** (Jira, Confluence, Bitbucket), the **Zoom App Marketplace** and the **Zendesk Marketplace**. Every app comes back in one unified schema: name, vendor, categories, installs, rating, review count, pricing, latest version and release date, hosting and URL.

New: **one row per vendor** (`outputLevel: "vendors"`) with the vendor's complete app portfolio, total installs and reviews, Atlassian partner tier (Platinum / Gold / Silver), website domain and HQ country, plus vendor-level change alerts. Also new: a **market report per niche** (`marketReportOnly`) — total installs, install concentration, ratings, pricing mix, Cloud / Data Center / Server availability, release freshness, top vendors and **weak or stale incumbents** to beat. Plus **app reviews with vendor responses** (Atlassian full history, Zendesk latest reviews) and an **app watchlist** — paste app keys or URLs and track exactly those apps and their new reviews.

New: **review insights** (`includeReviewInsights: true`) — one row per app that says **what Jira, Confluence and Zendesk admins complain about and what they love**: complaint themes (bugs, broke after update, **cloud migration & feature parity**, pricing & licensing, vendor support, performance, setup...) with quotes, praise themes, feature requests, the rating trend, **Cloud vs Data Center vs Server ratings** and the vendor's response rate, plus a side-by-side comparison of competing apps.

Turn on monitor mode and each run is compared with the previous one. You get **new apps, install jumps, new reviews, rating moves, rank changes, new versions, price changes and renames**, so a daily schedule becomes a marketplace alert feed.

No login, no API key, no browser. The Actor reads each marketplace's public JSON endpoints, so it's fast and cheap.

### Why this one?

- **Three marketplaces, one schema.** Other Store actors scrape a single marketplace each. Here one keyword (e.g. `"crm"`) returns the matching apps from Atlassian, Zoom and Zendesk side by side, with the same field names.
- **Monitor mode built in.** `outputMode: "new"` returns only apps never seen before. `"changed"` adds `installs-up` / `installs-down` (with % threshold), `reviews-up`, `rating-up` / `rating-down`, `rank-up` / `rank-down`, `entered-list`, `new-version`, `price-change` and `renamed`.
- **Install counts.** Atlassian and Zendesk publish install counts; you get `installs`, `installsChange` and `installsChangePct` between runs, which is the best public proxy for app traction.
- **Whole marketplaces when you need them.** All ~3,900 Zoom apps and ~1,750 Zendesk apps in about a minute; Atlassian top lists by popular, trending, newest or top-grossing.
- **Strict keyword matching.** Marketplace full-text search returns loosely related apps. Strict mode keeps only apps that actually contain your keywords.
- **Reviews included.** `includeReviews` adds every matched app's reviews as extra rows: stars, text, date, hosting, helpful votes and the **vendor's public response**. Filter to critical reviews (`maxReviewRating: 2`), recent ones (`reviewsSince`) or only unanswered ones in the dataset. In monitor mode you get only reviews posted since the last run.
- **Watchlist by key or URL.** `apps` accepts Atlassian app keys (`is.origo.jira.tempo-plugin`), Atlassian / Zendesk marketplace URLs, or `atlassian:<id>` / `zendesk:<id>`.
- **Vendor view (account list).** `outputLevel: "vendors"` turns matched apps into one row per vendor and loads its **whole portfolio** on that marketplace, not just the apps that matched: `appCount`, `totalInstalls`, `totalReviews`, weighted `averageRating`, `topApp`, categories, products, paid vs free apps, latest release, and the public profile — Atlassian `partnerTier`, `website` / `websiteDomain`, HQ `city` / `state` / `country`, description, trust center and support URL, Cloud Fortified and bug-bounty app counts; Zendesk website and country. Monitor it to catch `new-app`, `app-removed`, `installs-up`, `reviews-up`, `rating-up/down` and `partner-tier-change`.
- **Niche market reports.** `includeMarketReport` / `marketReportOnly` add one `market-report` row per marketplace × keyword / category: apps and vendors, total and median installs, **install concentration** (top app / top 3 / top 10 share), average and review-weighted rating, rating distribution, pricing mix and paid share, Zendesk price p25 / median / p75, **Atlassian Cloud / Data Center / Server availability**, release freshness (share updated in 90 / 365 days, abandoned for 2+ years), top vendors by apps and installs, **weak incumbents** (1K+ installs rated below 3.5) and **stale incumbents** (popular apps with no release for a year). With `trackChanges`: `sinceLastRun` (new apps, installs change %, fastest growing apps).
- **Review insights & competitor comparison (new).** `includeReviewInsights` adds one `recordType: "review-insights"` row per Atlassian / Zendesk app from its newest reviews (`insightReviewsPerApp`, default 100): rating distribution and trend (last 90 days vs older), **11 complaint themes tuned for Jira / Confluence / Zendesk apps** (bugs, broke after update, cloud migration & feature parity, performance, pricing & licensing, vendor support, setup & configuration, usability, permissions & security, integration & sync, reporting & export) with example quotes, **9 praise themes**, feature requests, top complaint phrases, **ratings by hosting** (`byHosting`, `weakHosting` = a hosting type rated 0.7+ stars below the others) and the vendor's response rate incl. unanswered negative reviews. With 2+ apps a `review-comparison` row benchmarks them per 100 reviews: relative weaknesses and strengths. Other Atlassian review scrapers give you raw text; this tells you where a competitor is beatable.
- **Correct star ratings.** Atlassian moved from 4 to 5 stars in 2026, but older reviews keep their 4-star value in the API. Review rows convert them the way Atlassian's own average does (×1.25, so `rating` always uses 5 stars; `originalStars` and `ratingScale` keep the raw value). Without this, a 4.5★ app looks like 3.6★ in its own reviews.
- **No contact harvesting.** Vendor emails and reviewer names are deliberately not exported.

### Use cases

- **SaaS partnership / integrations teams:** see which tools already integrate with Jira, Zoom and Zendesk in your category, who builds them, and how many installs they have.
- **Competitive intelligence:** track competitors' apps across ecosystems daily: install growth, new reviews, rating changes, new releases, price changes.
- **Marketplace vendors (ISVs):** watch your own listings and your category rank for your main keywords, and get alerted when a new competitor app launches.
- **B2B sales & lead generation:** vendors that ship a Jira, Zoom or Zendesk app are a well-defined account list. The vendor view gives one row per company with website domain, HQ country, partner tier and portfolio size — ready for CRM enrichment (company data only, no personal emails or phones).
- **Atlassian partner & M\&A research:** list every Platinum / Gold vendor in a category with total installs and app count, and see who just launched a new app.
- **Product & customer success teams:** collect competitors' 1–2★ reviews to find feature gaps and switching triggers ("we are looking for another solution"), and see how their vendors respond.
- **Investors & market research:** size app categories, spot fast-growing apps (install velocity) and long-unmaintained ones (`daysSinceRelease`).
- **Competitor teardown for Atlassian vendors:** search your category with `includeReviewInsights` and see in one table which competitor's Cloud edition is rated worse than its Data Center edition, who leaves negative reviews unanswered, and what everybody praises (the bar you must meet).
- **Should we build a Jira / Zendesk app?** One `marketReportOnly` run per keyword tells you how big the niche is, whether one vendor owns it (top-3 install share), whether users are unhappy (weak incumbents) and whether the leaders still ship updates (stale incumbents) — before you write a line of code.

### Input

| Field | Description |
|---|---|
| `marketplaces` | Any of `atlassian`, `zoom`, `zendesk` (default: all three) |
| `keywords` | Search terms, e.g. `"crm"`, `"time tracking"`, `"ai assistant"` |
| `strictSearch` | Keep only apps containing every keyword (default `true`) |
| `categories` | Atlassian category name (`"Time tracking"`, `"Project management"`), Zoom slug (`crm`, `productivity`, `customer-service`), Zendesk category (`"CRM"`, `"Reporting"`) |
| `vendors` | Vendor filter, e.g. `"Tempo"`, `"HubSpot"`. Used alone, it returns that vendor's apps on every marketplace |
| `apps` | Watchlist: Atlassian app keys / URLs, Zendesk app URLs, or `atlassian:<id>` / `zendesk:<id>`. Always output; used alone, only these apps are returned |
| `maxResultsPerQuery` | Max apps per query per marketplace (default 100, max 5,000) |
| `atlassianSort` | Atlassian top list order: `popular`, `trending`, `new`, `top-grossing`, `featured` |
| `atlassianProduct` / `atlassianHosting` | e.g. `jira` + `cloud` |
| `zendeskProduct` | `support`, `sell` or `chat` |
| `pricing` | `free` or `paid` (Atlassian & Zendesk; Zoom has no public pricing and is skipped) |
| `minReviews`, `minRating`, `minInstalls` | Quality filters |
| `outputLevel` | `apps` (default, one row per app) or `vendors` (one row per vendor with its full portfolio and profile) |
| `maxAppsPerVendor` | Vendor view only: max portfolio apps loaded per vendor (default 100) |
| `includeReviews` | Also output reviews (Atlassian & Zendesk; Zoom reviews need a login) |
| `maxReviewsPerApp`, `reviewSort`, `reviewsSince`, `maxReviewRating` | Review limit (default 20), Atlassian order (`recent` / `helpful`), date and star filters |
| `includeReviewInsights` | One review-insights row per Atlassian / Zendesk app (complaint / praise themes, trend, Cloud vs Data Center ratings) + a competitor comparison row |
| `insightReviewsPerApp` | Newest reviews analysed per app for insights (default 100, max 1,000) |
| `outputMode` | `all`, `new` (never seen before) or `changed` (new + any change) |
| `trackChanges` | Add change fields in `all` mode too |
| `minInstallsChangePct`, `minRankChange` | Alert thresholds |
| `stateKey` | Monitor name: use one per schedule |

Example: one CRM integration landscape across all three marketplaces:

```json
{
  "keywords": ["crm"],
  "maxResultsPerQuery": 200
}
```

Example: daily alert of new or changed time-tracking apps for Jira Cloud and Zendesk:

```json
{
  "marketplaces": ["atlassian", "zendesk"],
  "keywords": ["time tracking"],
  "atlassianProduct": "jira",
  "atlassianHosting": "cloud",
  "outputMode": "changed",
  "stateKey": "time-tracking-watch"
}
```

Example: everything a vendor has published:

```json
{
  "vendors": ["HubSpot"]
}
```

Example: one row per vendor (account list) for Jira time-tracking apps, with weekly vendor alerts:

```json
{
  "marketplaces": ["atlassian", "zendesk"],
  "keywords": ["time tracking"],
  "outputLevel": "vendors",
  "outputMode": "changed",
  "stateKey": "time-tracking-vendors"
}
```

Example: market report only — size the CRM-integration niche on all three marketplaces (no app rows charged):

```json
{
  "marketplaces": ["atlassian", "zoom", "zendesk"],
  "keywords": ["crm"],
  "maxResultsPerQuery": 200,
  "marketReportOnly": true
}
```

Example: daily feed of new critical reviews for three competitor apps:

```json
{
  "apps": [
    "is.origo.jira.tempo-plugin",
    "https://marketplace.atlassian.com/apps/6820/scriptrunner-for-jira",
    "https://www.zendesk.com/marketplace/apps/support/6536/user-data/"
  ],
  "includeReviews": true,
  "maxReviewRating": 2,
  "outputMode": "changed",
  "stateKey": "competitor-reviews"
}
```

### Output

```json
{
  "uid": "atlassian:1219004",
  "marketplace": "atlassian",
  "id": "1219004",
  "key": "com.soldevelo.apps.worklogs",
  "name": "Worklogs - Time Tracking, Time Reports, Timesheets",
  "vendor": "SolDevelo",
  "vendorUrl": "https://marketplace.atlassian.com/vendors/1215650/soldevelo",
  "description": "This plugin will allow you to keep track of the time spent by your team members. ...",
  "url": "https://marketplace.atlassian.com/apps/1219004/worklogs-time-tracking-time-reports-timesheets",
  "categories": ["Time tracking", "Dashboard gadgets", "Reports", "Project management"],
  "products": ["jira"],
  "installs": 5338,
  "downloads": 24840,
  "rating": 4.51,
  "reviewCount": 104,
  "pricing": "paid",
  "paymentModel": "atlassian",
  "latestVersion": "7.8.0",
  "lastReleaseDate": "2026-08-26",
  "daysSinceRelease": 40,
  "hosting": ["cloud"],
  "rank": 1,
  "query": "atlassian|search:time tracking",
  "isNew": false,
  "previousInstalls": 5011,
  "installsChange": 327,
  "installsChangePct": 6.5,
  "reviewsChange": 2,
  "changeTypes": ["installs-up", "reviews-up"],
  "scrapedAt": "2026-10-05T08:00:00.000Z"
}
```

Review rows (`recordType: "review"`, see the **Reviews** dataset view):

```json
{
  "recordType": "review",
  "marketplace": "atlassian",
  "reviewId": "5ae1d3ae87ac7129b88e9f89",
  "appKey": "is.origo.jira.tempo-plugin",
  "appName": "Timesheets by Tempo - Jira Time Tracking",
  "vendor": "Tempo Software",
  "rating": 1,
  "text": "Tempo is out of order day-to-day. ... We are looking for another solution.",
  "reviewDate": "2026-09-16",
  "hosting": "cloud",
  "helpfulVotes": 3,
  "totalVotes": 3,
  "hasVendorResponse": true,
  "vendorResponse": "Thanks for the feedback and we're sorry for the errors you experienced. ...",
  "reviewUrl": "https://marketplace.atlassian.com/apps/6572/timesheets-by-tempo-jira-time-tracking?reviewId=5ae1d3ae87ac7129b88e9f89",
  "isNewReview": true
}
```

Vendor rows (`outputLevel: "vendors"`, `recordType: "vendor"`, see the **Vendors** dataset view):

```json
{
  "recordType": "vendor",
  "marketplace": "atlassian",
  "vendorId": "6558",
  "vendor": "Tempo Software",
  "vendorUrl": "https://marketplace.atlassian.com/vendors/6558/tempo-software",
  "partnerTier": "platinum",
  "website": "http://www.tempo.io",
  "websiteDomain": "tempo.io",
  "city": "Burlington",
  "state": "Massachusetts",
  "country": "United States of America",
  "trustCenterUrl": "https://trust.tempo.io/",
  "supportUrl": "https://help.tempo.io/",
  "appCount": 29,
  "portfolioComplete": true,
  "totalInstalls": 114984,
  "totalReviews": 2374,
  "averageRating": 4.25,
  "topApp": { "name": "Timesheets by Tempo - Jira Time Tracking", "installs": 26561, "rating": 4.13, "reviewCount": 898 },
  "categories": ["Project management", "Reports", "Charts & diagramming", "..."],
  "products": ["jira", "confluence"],
  "hosting": ["cloud", "server", "datacenter"],
  "paidApps": 22,
  "freeApps": 7,
  "cloudFortifiedApps": 12,
  "bugBountyApps": 13,
  "programsCheckedApps": 18,
  "latestReleaseDate": "2026-10-05",
  "matchedApps": ["Timesheets by Tempo - Jira Time Tracking"],
  "apps": [{ "id": "6572", "name": "Timesheets by Tempo - Jira Time Tracking", "installs": 26561, "rating": 4.13, "cloudFortified": true, "...": "..." }]
}
```

In monitor mode vendor rows add `changeTypes` (`new`, `new-app`, `app-removed`, `installs-up/down`, `reviews-up`, `rating-up/down`, `partner-tier-change`), `newApps`, `removedApps`, `previousAppCount`, `totalInstallsChange(Pct)`, `reviewsChange` and `previousPartnerTier`. `cloudFortifiedApps` / `bugBountyApps` are counted over the `programsCheckedApps` shown on the vendor page (its first 18 apps).

Market report row (`recordType: "market-report"`, real numbers for Atlassian keyword "crm", shortened):

```json
{
  "recordType": "market-report",
  "marketplace": "atlassian",
  "query": "atlassian|search:crm",
  "appsAnalyzed": 43,
  "vendorCount": 28,
  "totalInstalls": 13970,
  "top3InstallShare": 0.547,
  "reviewWeightedRating": 4.51,
  "pricingMix": { "paid": 35, "free": 8 },
  "hostingMix": { "apps": 43, "cloud": 40, "datacenter": 5, "server": 10, "cloudShare": 0.93, "datacenterShare": 0.116, "releaseDatesVerified": 25 },
  "releaseFreshness": { "medianDaysSinceRelease": 24, "releasedLast90Days": 0.65, "releasedLast365Days": 0.8, "notUpdatedOver2Years": 0.05 },
  "topVendorsByInstalls": [{ "vendor": "Appfire", "installs": 3336, "installShare": 0.239, "apps": 1 }],
  "weakIncumbents": [],
  "staleIncumbents": [],
  "sinceLastRun": {
    "newApps": 2,
    "newAppNames": ["Mria CRM", "CRM Salesforce Integration for Jira"],
    "installsChangePct": 4.3,
    "fastestGrowing": [{ "name": "HubSpot CRM Integration for Jira", "installs": 372, "installsChangePct": 25.3 }]
  }
}
```

`sinceLastRun` appears with `trackChanges` or a monitor `outputMode` (illustrative values above from a test with an edited snapshot). Zendesk reports add `priceFromUsd` (p25 / median / p75 of the cheapest paid plan) and `newAppsLast365Days`; Zoom reports add `mcpServerApps` and `fedRampApps` (Zoom has no installs or pricing). All reports are also saved to the `MARKET_REPORT` record.

App rows have `recordType: "app"`. Marketplace-specific fields: Zendesk adds `priceFrom` (USD), `priceUnit` (`per_agent`, `per_account`…), `thirdPartyPricingUrl`, `publishedAt` and `marketingOnly`; Zoom adds `zoomUsage`, `hasMcpServer` and `fedRampAuthorized` (Zoom does not publish installs or pricing). Change fields appear when `outputMode` is `new` / `changed` or `trackChanges` is on. A run summary is saved to the `SUMMARY` record in the key-value store.

### Review insights: why admins leave a competitor

Input (Jira checklist apps, Atlassian + Zendesk):

```json
{
  "marketplaces": ["atlassian", "zendesk"],
  "keywords": ["checklist"],
  "maxResultsPerQuery": 4,
  "includeReviewInsights": true,
  "insightReviewsPerApp": 200
}
```

Real results (October 2026, newest 200 reviews per app):

| App | Rating (sample) | 1-2★ share | Ratings by hosting | Top complaint (1-3★) | Vendor answered 1-2★ |
|---|---|---|---|---|---|
| Smart Checklists for Jira (TitanApps) | 4.69 | 6.7% | Cloud 4.63 · DC 4.91 · Server 4.69 | bugs & errors | 66.7% |
| Checklists for Jira (Pro) by HeroCoders | 4.76 | 6% | Cloud only | bugs & errors | 58.3% |
| Checklists for Jira (Enterprise) by HeroCoders | 4.26 | 18.2% | **Cloud 3.95** · Server 4.47 · DC 5.0 | bugs, **cloud migration & feature parity** | 65.4% (9 unanswered) |
| Multiple Checklists for Jira (SolDevelo) | 4.87 | 3.4% | Cloud 4.84 | vendor support (1) | 100% |

The comparison row flags the Enterprise edition as weak in bugs (6.3 per 100 reviews vs a peer median of 2) and cloud migration / feature parity (4.2 vs 0), while "great vendor support" is the most praised theme for every app — the bar a new checklist app must meet.

Each insights row also has `topPraise`, `featureRequests` (with quotes), `topPhrases` (common 2-word phrases in 1-2★ reviews), `byMonth` and `ratingTrend`. Everything is rule-based (keyword themes), so it is transparent and repeatable; read the quotes before you act on a theme.

### Pricing

Pay per result, no subscription: **$2 per 1,000 apps** returned, **$1 per 1,000 reviews** (only when `includeReviews` is on), **$5 per 1,000 vendor rows** in the vendor view (each row includes the vendor's full portfolio and profile; portfolio apps are not charged separately), and **$0.02 per market-report row** (only with `includeMarketReport` / `marketReportOnly`; with `marketReportOnly` apps are not charged, and empty reports are never charged). Review insights cost **$0.01 per app** (plus $0.01 for the comparison row); the reviews read for them are not charged.

A 3-marketplace keyword landscape of ~200 apps costs about $0.40. In `new` / `changed` mode you pay only for apps that are new or changed, so a daily monitor usually costs cents per month.

### Scheduling a monitor

1. Set `outputMode` to `changed` (or `new`) and give the monitor a `stateKey`.
2. Run it once. The first run is the baseline and returns everything.
3. Create an Apify Schedule (e.g. daily). Later runs return only what changed. Connect a webhook, Slack or email integration to get alerts.

### FAQ

**Can I scrape Atlassian Marketplace reviews?** Yes. Turn on `includeReviews`. Atlassian reviews come with the full history (thousands per app), newest or most helpful first, including the vendor's response.

**Are Zoom App Marketplace reviews supported?** No. Zoom only shows reviews to signed-in users, and this Actor uses public data only. Zoom ratings and rating counts are still included in the app rows.

**Why are there only a few Zendesk reviews per app?** The Zendesk Marketplace publishes only the latest written reviews for each app (usually up to 5); the full rating breakdown is in the app row (`rating`, `reviewCount`).

**How do I track one specific app?** Put its Atlassian app key or marketplace URL into `apps`. You don't need keywords; only the watched apps are returned.

**Can I get one row per vendor instead of per app?** Yes. Set `outputLevel` to `vendors`. Matched apps are grouped by vendor and each vendor's full portfolio on that marketplace is loaded (Atlassian vendor API, the full Zendesk catalog; Zoom by company-name search). Atlassian rows also include the partner tier, website, HQ location, trust center and Cloud Fortified app count.

**How do I list all Atlassian Platinum partners in a category?** Run a keyword or category with `outputLevel: "vendors"` and filter the dataset by `partnerTier = platinum`. To follow specific companies, put their names in `vendors`.

**Do vendor rows include emails or phone numbers?** No. Only company-level public data (website, domain, city/country, partner tier). Contact emails and phones shown on vendor pages are deliberately not exported.

**How do I size a niche on the Atlassian Marketplace?** Set `marketReportOnly: true`, your keyword(s) or category, and `maxResultsPerQuery` 200+. You get one row per marketplace with total installs, how concentrated they are, ratings, pricing, hosting availability and weak / stale incumbents. Add `trackChanges` and a schedule to see new apps and install growth week by week.

**How is the Cloud / Data Center / Server mix calculated?** Atlassian's API reports deployment only for each app's latest version, so the Actor re-runs the same search filtered to each hosting type and counts how many of the matched apps appear (`hostingMix`). It is a close approximation (checked against per-app version data). Release dates in reports are re-verified per app, because search results sometimes carry an outdated version.

**How do I find what users dislike about a competing Jira app?** Set `includeReviewInsights: true` and put the app's key or URL into `apps` (or search the category). You get complaint themes with quotes, praise themes, feature requests, the rating trend and the hosting type (Cloud / Data Center / Server) users rate worst. Raise `insightReviewsPerApp` (e.g. 500) for a bigger sample. You don't need `includeReviews` for it.

**Why do some Atlassian reviews show a rating of 3.75 or 1.25?** They were written on Atlassian's old 4-star scale. The Actor converts them like Atlassian's own average rating (×1.25); `originalStars` and `ratingScale` keep the raw value. The `maxReviewRating` filter uses whole stars (a 3.75 counts as 3).

**Are reviewer names exported?** No. Reviews include stars, text, date and votes, but not the reviewer's name or avatar.

### More tools from the same developer

- [GitHub Marketplace Apps & Actions Tracker](https://apify.com/signalscope-data/github-marketplace-tracker) — GitHub apps with exact installs, plans and permissions, plus Actions with stars and releases, and new-listing alerts.
- [Google Workspace Marketplace Scraper & App Tracker](https://apify.com/signalscope-data/workspace-marketplace-tracker) — Gmail, Docs & Sheets add-ons with exact installs, OAuth permissions and new/changed alerts.
- [Salesforce AppExchange Scraper & Listing Monitor](https://apify.com/signalscope-data/appexchange-tracker) — AppExchange apps & Agentforce agents with ratings, pricing, versions and change alerts.
- [Chrome, Firefox & VS Code Extensions Tracker](https://apify.com/signalscope-data/extension-marketplaces-tracker) — installs, ratings, versions and change alerts across three extension marketplaces.
- [App Store & Google Play Top Charts & App Rank Tracker](https://apify.com/signalscope-data/app-charts-tracker) — top free/paid/grossing charts in any country, with daily rank changes.
- [Company Jobs Scraper](https://apify.com/signalscope-data/ats-jobs-scraper) — every open job from Workday, Greenhouse, Lever, Ashby & more, with new-job alerts.
- [Shopify Products Scraper & Price Change Monitor](https://apify.com/signalscope-data/shopify-store-monitor) — full catalogs plus price-drop / restock alerts.

# Actor input Schema

## `marketplaces` (type: `array`):

Which app marketplaces to search. Every query runs on each selected marketplace and all results share one schema.

## `keywords` (type: `array`):

Keywords to search, e.g. "crm", "time tracking", "ai assistant", "salesforce". Each keyword is a separate ranked list per marketplace. Leave empty (and no categories / vendors) to get each marketplace's top apps.

## `strictSearch` (type: `boolean`):

Atlassian and Zoom full-text search also returns loosely related apps. Keep only apps whose name, description, vendor or categories contain every keyword. rank still shows the position on the marketplace.

## `categories` (type: `array`):

Optional category filter. Atlassian: category name, e.g. "Project management", "Time tracking", "Charts & diagramming". Zoom: category slug, e.g. "crm", "productivity", "customer-service", "project-management", "education", "marketing", "analytics". Zendesk: part of a category name, e.g. "Reporting", "CRM", "AI". Without keywords the whole category is listed.

## `vendors` (type: `array`):

Keep only apps whose vendor name contains one of these, e.g. "Tempo", "HubSpot", "Salesforce". Used alone (no keywords/categories), the Actor searches each vendor name and returns that vendor's apps on every marketplace.

## `apps` (type: `array`):

Specific apps to always output (no ranking filters applied): Atlassian app key (e.g. "is.origo.jira.tempo-plugin"), Atlassian app URL (marketplace.atlassian.com/apps/6572/...), Zendesk app URL (zendesk.com/marketplace/apps/support/6536/...), or "atlassian:<id>" / "zendesk:<id>". Used alone, only these apps are returned. Combine with "Include reviews" to monitor competitors' reviews.

## `maxResultsPerQuery` (type: `integer`):

Max apps per keyword / category / top list on each marketplace. Whole marketplaces: Zoom ~3,900 apps, Zendesk ~1,750, Atlassian ~8,000 (first 5,000 per list).

## `atlassianSort` (type: `string`):

Ranking for Atlassian top lists and category lists. Keyword searches are ranked by relevance.

## `atlassianProduct` (type: `string`):

Only Atlassian apps for this host product.

## `atlassianHosting` (type: `string`):

Only Atlassian apps available for this hosting type. latestVersion / lastReleaseDate refer to the latest version for this hosting.

## `zendeskProduct` (type: `string`):

Only Zendesk apps for this Zendesk product.

## `pricing` (type: `string`):

Keep only free or only paid apps (Atlassian and Zendesk; Zoom does not publish pricing).

## `minReviews` (type: `integer`):

Skip apps with fewer reviews / ratings than this.

## `minRating` (type: `integer`):

Skip apps with an average rating below this (1-5).

## `minInstalls` (type: `integer`):

Skip apps with fewer installs than this (Atlassian and Zendesk publish install counts; Zoom apps are not filtered).

## `outputLevel` (type: `string`):

"vendors" groups the matched apps by vendor and outputs one row per vendor with its complete app portfolio on that marketplace (not just the matched apps): app count, total installs, total reviews, weighted rating, top app, categories, products, paid/free apps, latest release, and the public profile (Atlassian partner tier, website + domain, HQ city/state/country, description, trust center, support URL; Zendesk website + country). Monitor modes report new vendors, new/removed apps, install and review growth, rating and partner-tier changes. Charged per vendor row. No emails or phone numbers.

## `maxAppsPerVendor` (type: `integer`):

Only with output level "vendors": max portfolio apps loaded per vendor (Atlassian's biggest vendors have 100+ apps).

## `includeReviews` (type: `boolean`):

Also output user reviews of every matched app as separate rows (recordType "review"): rating, text, date, hosting, helpful votes and the vendor's public response. Atlassian: full review history; Zendesk: latest written reviews; Zoom reviews need a login and are skipped. Reviewer names are not exported. Charged per review.

## `maxReviewsPerApp` (type: `integer`):

Max reviews per app (after the rating / date filters).

## `reviewSort` (type: `string`):

Order of Atlassian reviews. Zendesk reviews are always newest first. Monitor modes only skip already-seen reviews with "Newest first".

## `reviewsSince` (type: `string`):

Only reviews posted on or after this date (YYYY-MM-DD).

## `maxReviewRating` (type: `integer`):

Only reviews with at most this many stars, e.g. 2 for critical reviews only (churn signals, competitor weaknesses).

## `outputMode` (type: `string`):

"new" and "changed" compare with the previous run of the same monitor name. The first run is the baseline and outputs everything.

## `trackChanges` (type: `boolean`):

Save a snapshot and add previousInstalls, installsChange, reviewsChange, rankChange and changeTypes even when outputting all results.

## `minInstallsChangePct` (type: `integer`):

An installs-up / installs-down change is reported when installs moved at least this many percent since the last run.

## `minRankChange` (type: `integer`):

A rank-up / rank-down change is reported when the position moved at least this many places.

## `stateKey` (type: `string`):

Snapshot name used for change tracking. Use a different name for each separate monitor/schedule.

## `includeMarketReport` (type: `boolean`):

Add one market-report row per marketplace x keyword / category: total apps, vendors, total and median installs, install concentration (top app / top 3 / top 10 share), average and review-weighted rating, rating distribution, pricing mix and paid share, Zendesk price p25/median/p75, Atlassian hosting mix (Cloud / Data Center / Server), release freshness, top vendors by apps and installs, weak incumbents (1K+ installs rated below 3.5), stale incumbents (no release for a year) and top apps. With trackChanges / monitor modes: sinceLastRun (new apps, installs change %, fastest growing). Raise maxResultsPerQuery (e.g. 200) for a fuller picture.

## `marketReportOnly` (type: `boolean`):

Scan the apps but output only the market-report rows (apps are not output or charged). Cheapest way to size a niche on Atlassian, Zoom and Zendesk marketplaces.

## `includeReviewInsights` (type: `boolean`):

Add one review-insights row per output Atlassian / Zendesk app, computed from its newest reviews: rating distribution and trend (last 90 days vs older), 11 complaint themes tuned for Jira / Confluence / Zendesk apps (bugs, broke after update, cloud migration & feature parity, performance, pricing & licensing, vendor support, setup, usability, permissions & security, integration & sync, reporting & export) with quotes, praise themes, feature requests, top complaint phrases, rating by hosting (Cloud vs Data Center vs Server) with weakHosting, monthly ratings and the vendor response rate. With 2+ apps a review-comparison row benchmarks them. The reviews read for insights are not charged; you don't need includeReviews. Up to 100 apps per run. Zoom reviews need a login, so Zoom apps are skipped.

## `insightReviewsPerApp` (type: `integer`):

How many of each app's newest reviews the review insights read (all stars and hosting types). More reviews = a more reliable picture, a slightly slower run, same price.

## Actor input object example

```json
{
  "marketplaces": [
    "atlassian",
    "zoom",
    "zendesk"
  ],
  "keywords": [
    "crm"
  ],
  "strictSearch": true,
  "maxResultsPerQuery": 100,
  "atlassianSort": "popular",
  "atlassianProduct": "any",
  "atlassianHosting": "any",
  "zendeskProduct": "any",
  "pricing": "any",
  "minReviews": 0,
  "minRating": 0,
  "minInstalls": 0,
  "outputLevel": "apps",
  "maxAppsPerVendor": 100,
  "includeReviews": false,
  "maxReviewsPerApp": 20,
  "reviewSort": "recent",
  "maxReviewRating": 5,
  "outputMode": "all",
  "trackChanges": false,
  "minInstallsChangePct": 5,
  "minRankChange": 5,
  "stateKey": "default",
  "includeMarketReport": false,
  "marketReportOnly": false,
  "includeReviewInsights": false,
  "insightReviewsPerApp": 100
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "marketplaces": [
        "atlassian",
        "zoom",
        "zendesk"
    ],
    "keywords": [
        "crm"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("signalscope-data/saas-marketplaces-tracker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "marketplaces": [
        "atlassian",
        "zoom",
        "zendesk",
    ],
    "keywords": ["crm"],
}

# Run the Actor and wait for it to finish
run = client.actor("signalscope-data/saas-marketplaces-tracker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "marketplaces": [
    "atlassian",
    "zoom",
    "zendesk"
  ],
  "keywords": [
    "crm"
  ]
}' |
apify call signalscope-data/saas-marketplaces-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,signalscope-data/saas-marketplaces-tracker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/LhHPLddIVavkNROn0/builds/9UFfd1yTJHO8UkhTx/openapi.json
