# Atlassian Marketplace App, Vendor & Lead Scraper (`scrapesage/atlassian-marketplace-scraper`) Actor

Scrape every Atlassian Marketplace app (Jira, Confluence, Bitbucket, JSM): downloads, active installs, ratings, pricing, hosting, Cloud Fortified status, categories + the vendor company as a B2B lead (name, website, app portfolio). App or vendor output, lead score & monitoring.

- **URL**: https://apify.com/scrapesage/atlassian-marketplace-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Developer tools, Lead generation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 marketplace app records

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Atlassian Marketplace Scraper — Apps, Vendors & B2B Leads (Installs, Pricing & Ratings)

Extract **every app on the [Atlassian Marketplace](https://marketplace.atlassian.com/)** — the Jira, Confluence, Bitbucket and Jira Service Management ecosystem — straight from Atlassian's own REST API. Each app comes back with the data that actually matters: **active installs, lifetime downloads, average rating & review count, real pricing (starting price + full edition tiers), hosting types (Cloud / Data Center / Server), categories, latest version, Cloud Fortified status — and the vendor company turned into a ready-to-use B2B lead** (name, Marketplace profile, derived website/domain). Or aggregate the whole catalog into **one row per vendor** for the cleanest list of Atlassian ecosystem companies anywhere.

No login, no cookies, no browser, **no API key** — fast, reliable JSON extraction.

### Why this Atlassian Marketplace scraper?

Other Marketplace scrapers return a name and a tagline. This actor reads Atlassian's internal Marketplace API directly and ships the **richest dataset in the category** — adoption metrics, pricing and a contactable vendor lead in one clean table.

| Data | Typical scrapers | This actor |
|---|---|---|
| App name, tagline, summary, categories | ✅ | ✅ |
| **Active installs + lifetime downloads** | ❌ | ✅ adoption signals |
| Average rating + review count | partial | ✅ |
| **Real pricing** — starting price + full edition/user tiers | ❌ | ✅ opt-in |
| Hosting: Cloud / Data Center / Server / Connect | ❌ | ✅ |
| **Cloud Fortified** & Bug Bounty status | ❌ | ✅ |
| Latest version, release date, payment model | ❌ | ✅ |
| **Vendor company as a lead** — name + derived website/domain | ❌ | ✅ |
| **Vendor roll-up** — portfolio, total installs, paid/free split | ❌ | ✅ vendor mode |
| Lead score (0–100) + lead signals | ❌ | ✅ |
| Only-new / changed **monitoring mode** | ❌ | ✅ |

### Who buys Atlassian Marketplace data?

- **B2B sales & lead generation** — every Marketplace vendor is a software company. Get the **vendor name + website/domain**, filter by app portfolio size, paid apps and installs, and feed your CRM with qualified Atlassian-ecosystem accounts.
- **App vendors & Marketplace Partners** — size your market, benchmark installs/ratings/pricing against competitors, and watch a rival's whole portfolio (`vendorQuery`).
- **Competitive & pricing intelligence** — track starting prices, edition tiers and payment models across any category (security, time tracking, diagramming, reporting…).
- **Investors & M&A** — the Atlassian app economy has paid vendors **$4B+**; find high-install, high-revenue-signal vendors and consolidation targets by category.
- **Partner & channel teams** — recruit Cloud Fortified, Top Vendor and high-rated apps for integrations, bundles and co-selling.
- **Recruiters & agencies** — reach the developers and companies building on Jira, Confluence and Bitbucket.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **Atlassian Marketplace Scraper**, choose an **output mode** (apps or vendors), optionally add a **search**, **host products**, **categories** or filters, and set your limit.
3. Click **Start** and watch records stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "outputMode": "apps",
    "searchText": "security",
    "hostApplications": ["jira"],
    "cost": "paid",
    "minInstalls": 500,
    "includePricing": true,
    "sortBy": "installs",
    "maxResults": 1000
}
````

- **outputMode** — `apps` (one row per Marketplace app, default), `vendors` (one aggregated row per vendor company / lead), or `both`.
- **searchText** — full-text search across the Marketplace (e.g. `time tracking`, `diagram`, `security`). Leave empty to scan the whole catalogue (~7,400 apps).
- **hostApplications** — keep only apps for `jira`, `confluence`, `bitbucket`, `jira-service-management`, `bamboo`, `compass`, … Leave empty for all.
- **categories** — keep only apps in these categories (e.g. `["Security","Reports","Time tracking"]`).
- **hostingTypes** — `cloud`, `dataCenter`, and/or `server`.
- **cost** — `all`, `paid`, or `free`.
- **cloudFortifiedOnly** — only apps with Atlassian's Cloud Fortified badge (premium vendors).
- **vendorQuery** — keep only apps from a vendor whose name contains this text (e.g. `Tempo`, `Adaptavist`) — competitor portfolio intel.
- **minInstalls / minDownloads / minRating / minReviews** — adoption & quality thresholds.
- **includePricing** — fetch full pricing (starting price, edition/user tiers, currency) per result app.
- **includeReviews** — fetch the latest reviews (author, stars, text, date) per result app.
- **includeDetails** — fetch topic tags & keywords, GDPR personal-data flag and Bug Bounty status per result app.
- **includeVendorWebsite** *(default true)* — derive each vendor's real website/domain from the app's documentation/EULA/privacy links — no extra requests.
- **minLeadScore / maxResults / sortBy / deduplicateResults** — output controls. Sort by `leadScore` (default), `installs`, `downloads`, `rating`, `reviews`, `recentlyUpdated`, or `name`.
- **monitorMode / monitorKey** — only return apps/vendors that are new or changed since the last run.
- **proxyConfiguration** — optional; the Marketplace API is public and needs no proxy, so leave it off for the fastest runs.

### Output

By default you get **one clean, dense table** of apps. An app record:

```json
{
    "recordType": "app",
    "source": "Atlassian Marketplace",
    "key": "com.onresolve.jira.groovy.groovyrunner",
    "name": "ScriptRunner for Jira",
    "tagLine": "Automate, customize, and extend Jira",
    "listingUrl": "https://marketplace.atlassian.com/apps/6820/scriptrunner-for-jira",
    "hostApplications": ["Jira"],
    "hostingTypes": ["cloud", "dataCenter"],
    "categories": ["Workflow"],
    "primaryCategory": "Workflow",
    "downloads": 1284553,
    "totalInstalls": 35807,
    "averageStars": 4.64,
    "reviewCount": 822,
    "paymentModel": "atlassian",
    "isPaid": true,
    "startingPrice": 393,
    "startingPriceCurrency": "USD",
    "hasFreeTier": true,
    "pricingTiers": [{ "edition": "25 users", "users": 25, "amount": 393, "renewalAmount": 196.5, "months": 12, "licenseType": "COMMERCIAL", "currency": "USD" }],
    "latestVersion": "9.6.0",
    "releaseDate": "2026-06-18",
    "cloudFortified": true,
    "partnerPrograms": ["Cloud Fortified", "Bug Bounty"],
    "vendorName": "Adaptavist",
    "vendorUrl": "https://marketplace.atlassian.com/vendors/123/adaptavist",
    "vendorWebsite": "https://adaptavist.com",
    "vendorWebsiteDomain": "adaptavist.com",
    "leadScore": 94,
    "leadSignals": ["10k+ active installs", "Paid app (commercial vendor)", "Strong reviews (4.64★ × 822)", "Cloud Fortified", "Website adaptavist.com"],
    "scrapedAt": "2026-06-21T17:49:40.000Z"
}
```

A **vendor record** (`recordType: "vendor"`, from output mode `vendors`/`both`) aggregates a company's whole portfolio:

```json
{
    "recordType": "vendor",
    "vendorName": "Appfire",
    "vendorWebsite": "https://appfire.com",
    "vendorWebsiteDomain": "appfire.com",
    "appCount": 83,
    "paidAppCount": 79,
    "freeAppCount": 4,
    "cloudFortifiedAppCount": 70,
    "totalInstalls": 207795,
    "totalDownloads": 9123456,
    "avgRating": 4.41,
    "totalReviews": 6310,
    "hostProducts": ["Jira", "Confluence", "Bitbucket"],
    "topVendor": true,
    "apps": [{ "key": "…", "name": "JSU Automation Suite", "installs": 12552, "rating": 4.56, "isPaid": true }],
    "leadScore": 100,
    "leadSignals": ["10 apps", "50k+ total installs", "79 paid apps", "Cloud Fortified vendor", "Top Vendor"]
}
```

Every record also carries the raw Marketplace record under `sourceFields` unless you turn off **includeRawFields**. Switch the dataset view to **Apps**, **Vendors**, or **Market intelligence** for a focused table.

#### What to expect (field coverage)

The Marketplace API is official and complete, so the core fields are near-100%.

| Field group | Coverage |
|---|---|
| Name, vendor, host products, categories, hosting, version | ✅ ~100% |
| Active installs, downloads, rating, review count | ✅ ~100% |
| Cloud Fortified badge | ✅ resolved for every record |
| Pricing (starting price + tiers) | ✅ for paid apps when `includePricing` is on |
| Vendor website / domain | ✅ high (derived from app links) |
| Tags, keywords, personal-data, Bug Bounty | ✅ when `includeDetails` is on |

A blank field means the source doesn't publish that signal for that app — not that scraping failed. Nothing is dropped, so you always get the richest record available.

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it weekly with **monitoring mode** to capture newly-published apps, install jumps, version releases and price changes as fresh signals.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, sales sequence) the moment a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/atlassian-marketplace-scraper').call({
    outputMode: 'vendors',
    cost: 'paid',
    minInstalls: 500,
    sortBy: 'installs',
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} Atlassian Marketplace vendors`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new app & vendor leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored category or vendor gets a new or changed app.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find every paid, Cloud Fortified Jira security app with 1,000+ installs and a 4★+ rating, with the vendor's website and a lead score" and let it run the scraper for you.

### More scrapers from scrapesage

Build a complete **app-marketplace, developer & B2B lead-gen stack**:

- **[Shopify App Store Scraper](https://apify.com/scrapesage/shopify-app-store-scraper)** — Shopify apps, pricing, ratings & developer leads.
- **[Chrome Web Store Scraper](https://apify.com/scrapesage/chrome-web-store-scraper)** — Chrome extensions, users, ratings & publisher leads.
- **[WordPress Plugins & Themes Scraper](https://apify.com/scrapesage/wordpress-plugin-theme-scraper)** — active installs, downloads & author leads.
- **[Google Play Scraper](https://apify.com/scrapesage/google-play-scraper)** — Android apps, installs, ratings & developer data.
- **[App Store Scraper](https://apify.com/scrapesage/app-store-scraper)** — iOS apps, ratings, pricing & publisher data.
- **[GitHub Scraper](https://apify.com/scrapesage/github-scraper)** — repositories, stars & developer profiles.
- **[Product Hunt Scraper](https://apify.com/scrapesage/product-hunt-scraper)** — new product launches, makers & traction.
- **[Y Combinator Scraper](https://apify.com/scrapesage/ycombinator-scraper)** — startups, founders & company leads.

### Tips

- **Cleanest vendor list**: set `outputMode: "vendors"` and sort by `installs` for the definitive list of Atlassian ecosystem companies, each with its website and portfolio.
- **Pricing intelligence**: set `cost: "paid"` + `includePricing: true` to pull starting prices and full edition tiers across a category.
- **Competitor watch**: set `vendorQuery` to a rival's name to pull their entire portfolio with installs and ratings.
- **Premium accounts only**: turn on `cloudFortifiedOnly` and `minInstalls` to focus on the highest-quality, best-funded vendors.
- **Recurring monitoring**: combine [Schedules](https://docs.apify.com/platform/schedules) with `monitorMode` to capture only apps added or changed (installs, version, price) since the last run.

### FAQ

**Where does the data come from?** From the official [Atlassian Marketplace REST API](https://marketplace.atlassian.com/) — the same data that powers marketplace.atlassian.com. No key, no login, no browser.

**Does it include pricing?** Yes — turn on `includePricing` to get the starting price plus the full edition / user-tier pricing table (with renewal amounts and currency) for each app in your result set.

**What are active installs vs downloads?** *Active installs* is the number of Atlassian instances currently running the app (the best market-size signal); *downloads* is the lifetime download count.

**What is Cloud Fortified?** Atlassian's program for cloud apps that meet the highest security, reliability and support standards — a strong quality and vendor-maturity signal. This actor resolves the badge for every record.

**How do I get the vendor's email?** The Marketplace doesn't publish vendor emails, but this actor derives each vendor's **website/domain** from the app's documentation, EULA and privacy links — the starting point to reach the company.

**How fresh is it?** Live on every run. Run on a [Schedule](https://docs.apify.com/platform/schedules) with monitoring mode to capture new apps, install changes, releases and price changes.

**Can I export to Google Sheets, CSV, or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**Is scraping this data legal?** This actor collects publicly available Atlassian Marketplace data. You're responsible for using it in compliance with applicable laws and Atlassian's terms.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

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

What to output. 'apps' = one row per Marketplace app (default). 'vendors' = one aggregated row per vendor company (B2B lead: portfolio, total installs, website). 'both' = emit both record types.

## `searchText` (type: `string`):

Full-text search across the Atlassian Marketplace (name, summary, keywords) — e.g. "time tracking", "diagram", "security". Leave empty to scan the whole catalog.

## `hostApplications` (type: `array`):

Keep only apps that work with these Atlassian host products. Allowed values: jira, confluence, bitbucket, jira-service-management, jira-software, bamboo, fisheye, crucible, jira-work-management, compass, statuspage. Leave empty for all.

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

Keep only apps whose category matches one of these (case-insensitive, e.g. \["Security","Time tracking","Reports"]). Optional.

## `hostingTypes` (type: `array`):

Keep only apps available for these hosting types. Allowed values: cloud, dataCenter, server. Leave empty for all.

## `cost` (type: `string`):

Filter by pricing: 'paid' (apps with a paid edition), 'free', or 'all'.

## `cloudFortifiedOnly` (type: `boolean`):

Keep only apps with Atlassian's Cloud Fortified badge (the highest cloud security/reliability program) — premium vendors.

## `vendorQuery` (type: `string`):

Keep only apps from vendors whose company name contains this text (case-insensitive) — e.g. "Tempo", "Adaptavist". Competitive intelligence on a single vendor's portfolio.

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

Keep only apps with at least this many active installs (a strong adoption / market-size signal).

## `minDownloads` (type: `integer`):

Keep only apps with at least this many lifetime downloads.

## `minRating` (type: `number`):

Keep only apps with an average star rating of at least this value (0-5).

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

Keep only apps with at least this many reviews.

## `includePricing` (type: `boolean`):

Fetch the full pricing table (editions, user tiers, starting price, currency) for each app in the result set. Adds one request per app, so it is bounded by Max results.

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

Fetch the latest reviews (author, stars, text, date) for each app in the result set. Adds one request per app, so it is bounded by Max results.

## `includeDetails` (type: `boolean`):

Fetch detail-only fields for each app in the result set: topic tags & keywords, whether the app stores personal data (GDPR), and Bug Bounty participation. Adds one request per app, so it is bounded by Max results.

## `includeVendorWebsite` (type: `boolean`):

Derive each vendor's real company website/domain from the app's documentation, EULA and privacy links (no extra requests). Turns a Marketplace listing into a contactable B2B lead.

## `minLeadScore` (type: `integer`):

Keep only records with a derived lead score at or above this value (0-100).

## `sortBy` (type: `string`):

Order of the output.

## `maxResults` (type: `integer`):

Maximum number of records to output (per record type when output mode is 'both').

## `maxAppsToScan` (type: `integer`):

Safety cap on how many apps to read from the Marketplace before filtering. The full catalog is ~7,400 apps. Lower it for quick test runs.

## `deduplicateResults` (type: `boolean`):

Drop duplicate apps/vendors (recommended).

## `includeRawFields` (type: `boolean`):

Attach the raw Atlassian Marketplace record under sourceFields for every row.

## `monitorMode` (type: `boolean`):

Only output apps/vendors that are new or changed (installs, downloads, rating, version, pricing) since the last run with the same monitor key. Ideal on a recurring Schedule.

## `monitorKey` (type: `string`):

Name for the monitor memory. Use a distinct key per saved search so each tracks its own history.

## `proxyConfiguration` (type: `object`):

Optional. The Atlassian Marketplace API is public and works without a proxy — leave this off for the fastest runs.

## Actor input object example

```json
{
  "outputMode": "apps",
  "hostApplications": [],
  "hostingTypes": [],
  "cost": "all",
  "cloudFortifiedOnly": false,
  "includePricing": false,
  "includeReviews": false,
  "includeDetails": false,
  "includeVendorWebsite": true,
  "sortBy": "leadScore",
  "maxResults": 1000,
  "maxAppsToScan": 10000,
  "deduplicateResults": true,
  "includeRawFields": true,
  "monitorMode": false,
  "monitorKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All scraped Atlassian Marketplace app and vendor records in the default dataset, each with adoption metrics, ratings, pricing, vendor lead fields and a lead score.

# 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 = {
    "hostApplications": [],
    "hostingTypes": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/atlassian-marketplace-scraper").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 = {
    "hostApplications": [],
    "hostingTypes": [],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/atlassian-marketplace-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "hostApplications": [],
  "hostingTypes": []
}' |
apify call scrapesage/atlassian-marketplace-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapesage/atlassian-marketplace-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Atlassian Marketplace App, Vendor & Lead Scraper",
        "description": "Scrape every Atlassian Marketplace app (Jira, Confluence, Bitbucket, JSM): downloads, active installs, ratings, pricing, hosting, Cloud Fortified status, categories + the vendor company as a B2B lead (name, website, app portfolio). App or vendor output, lead score & monitoring.",
        "version": "0.1",
        "x-build-id": "ExkbMMcTZ24MSmDUh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapesage~atlassian-marketplace-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapesage-atlassian-marketplace-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapesage~atlassian-marketplace-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapesage-atlassian-marketplace-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapesage~atlassian-marketplace-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapesage-atlassian-marketplace-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "outputMode": {
                        "title": "Output mode",
                        "enum": [
                            "apps",
                            "vendors",
                            "both"
                        ],
                        "type": "string",
                        "description": "What to output. 'apps' = one row per Marketplace app (default). 'vendors' = one aggregated row per vendor company (B2B lead: portfolio, total installs, website). 'both' = emit both record types.",
                        "default": "apps"
                    },
                    "searchText": {
                        "title": "Search text",
                        "type": "string",
                        "description": "Full-text search across the Atlassian Marketplace (name, summary, keywords) — e.g. \"time tracking\", \"diagram\", \"security\". Leave empty to scan the whole catalog."
                    },
                    "hostApplications": {
                        "title": "Host products",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Keep only apps that work with these Atlassian host products. Allowed values: jira, confluence, bitbucket, jira-service-management, jira-software, bamboo, fisheye, crucible, jira-work-management, compass, statuspage. Leave empty for all.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "categories": {
                        "title": "Categories",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Keep only apps whose category matches one of these (case-insensitive, e.g. [\"Security\",\"Time tracking\",\"Reports\"]). Optional.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "hostingTypes": {
                        "title": "Hosting types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Keep only apps available for these hosting types. Allowed values: cloud, dataCenter, server. Leave empty for all.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "cost": {
                        "title": "Cost",
                        "enum": [
                            "all",
                            "paid",
                            "free"
                        ],
                        "type": "string",
                        "description": "Filter by pricing: 'paid' (apps with a paid edition), 'free', or 'all'.",
                        "default": "all"
                    },
                    "cloudFortifiedOnly": {
                        "title": "Cloud Fortified only",
                        "type": "boolean",
                        "description": "Keep only apps with Atlassian's Cloud Fortified badge (the highest cloud security/reliability program) — premium vendors.",
                        "default": false
                    },
                    "vendorQuery": {
                        "title": "Vendor name contains",
                        "type": "string",
                        "description": "Keep only apps from vendors whose company name contains this text (case-insensitive) — e.g. \"Tempo\", \"Adaptavist\". Competitive intelligence on a single vendor's portfolio."
                    },
                    "minInstalls": {
                        "title": "Minimum active installs",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only apps with at least this many active installs (a strong adoption / market-size signal)."
                    },
                    "minDownloads": {
                        "title": "Minimum downloads",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only apps with at least this many lifetime downloads."
                    },
                    "minRating": {
                        "title": "Minimum rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "number",
                        "description": "Keep only apps with an average star rating of at least this value (0-5)."
                    },
                    "minReviews": {
                        "title": "Minimum review count",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only apps with at least this many reviews."
                    },
                    "includePricing": {
                        "title": "Include detailed pricing",
                        "type": "boolean",
                        "description": "Fetch the full pricing table (editions, user tiers, starting price, currency) for each app in the result set. Adds one request per app, so it is bounded by Max results.",
                        "default": false
                    },
                    "includeReviews": {
                        "title": "Include recent reviews",
                        "type": "boolean",
                        "description": "Fetch the latest reviews (author, stars, text, date) for each app in the result set. Adds one request per app, so it is bounded by Max results.",
                        "default": false
                    },
                    "includeDetails": {
                        "title": "Include extra details",
                        "type": "boolean",
                        "description": "Fetch detail-only fields for each app in the result set: topic tags & keywords, whether the app stores personal data (GDPR), and Bug Bounty participation. Adds one request per app, so it is bounded by Max results.",
                        "default": false
                    },
                    "includeVendorWebsite": {
                        "title": "Resolve vendor website",
                        "type": "boolean",
                        "description": "Derive each vendor's real company website/domain from the app's documentation, EULA and privacy links (no extra requests). Turns a Marketplace listing into a contactable B2B lead.",
                        "default": true
                    },
                    "minLeadScore": {
                        "title": "Minimum lead score",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Keep only records with a derived lead score at or above this value (0-100)."
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "leadScore",
                            "installs",
                            "downloads",
                            "rating",
                            "reviews",
                            "recentlyUpdated",
                            "name"
                        ],
                        "type": "string",
                        "description": "Order of the output.",
                        "default": "leadScore"
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of records to output (per record type when output mode is 'both').",
                        "default": 1000
                    },
                    "maxAppsToScan": {
                        "title": "Max apps to scan",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Safety cap on how many apps to read from the Marketplace before filtering. The full catalog is ~7,400 apps. Lower it for quick test runs.",
                        "default": 10000
                    },
                    "deduplicateResults": {
                        "title": "Deduplicate results",
                        "type": "boolean",
                        "description": "Drop duplicate apps/vendors (recommended).",
                        "default": true
                    },
                    "includeRawFields": {
                        "title": "Include raw source fields",
                        "type": "boolean",
                        "description": "Attach the raw Atlassian Marketplace record under sourceFields for every row.",
                        "default": true
                    },
                    "monitorMode": {
                        "title": "Monitor mode (only new / changed)",
                        "type": "boolean",
                        "description": "Only output apps/vendors that are new or changed (installs, downloads, rating, version, pricing) since the last run with the same monitor key. Ideal on a recurring Schedule.",
                        "default": false
                    },
                    "monitorKey": {
                        "title": "Monitor key",
                        "type": "string",
                        "description": "Name for the monitor memory. Use a distinct key per saved search so each tracks its own history.",
                        "default": "default"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional. The Atlassian Marketplace API is public and works without a proxy — leave this off for the fastest runs.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
