{
  "openapi": "3.0.1",
  "info": {
    "title": "Atlassian, Zoom & Zendesk Marketplace Apps Tracker",
    "description": "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.",
    "version": "1.0",
    "x-build-id": "9UFfd1yTJHO8UkhTx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/signalscope-data~saas-marketplaces-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-signalscope-data-saas-marketplaces-tracker",
        "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/signalscope-data~saas-marketplaces-tracker/runs": {
      "post": {
        "operationId": "runs-sync-signalscope-data-saas-marketplaces-tracker",
        "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/signalscope-data~saas-marketplaces-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-signalscope-data-saas-marketplaces-tracker",
        "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": {
          "marketplaces": {
            "title": "Marketplaces",
            "type": "array",
            "description": "Which app marketplaces to search. Every query runs on each selected marketplace and all results share one schema.",
            "items": {
              "type": "string",
              "enum": [
                "atlassian",
                "zoom",
                "zendesk"
              ],
              "enumTitles": [
                "Atlassian Marketplace (Jira, Confluence, Bitbucket)",
                "Zoom App Marketplace",
                "Zendesk Marketplace"
              ]
            },
            "default": [
              "atlassian",
              "zoom",
              "zendesk"
            ]
          },
          "keywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "strictSearch": {
            "title": "Strict keyword match",
            "type": "boolean",
            "description": "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.",
            "default": true
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "vendors": {
            "title": "Vendors (filter)",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "apps": {
            "title": "Apps to track (watchlist)",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerQuery": {
            "title": "Max results per query",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "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).",
            "default": 100
          },
          "atlassianSort": {
            "title": "Atlassian list order (no keyword)",
            "enum": [
              "popular",
              "trending",
              "new",
              "top-grossing",
              "featured"
            ],
            "type": "string",
            "description": "Ranking for Atlassian top lists and category lists. Keyword searches are ranked by relevance.",
            "default": "popular"
          },
          "atlassianProduct": {
            "title": "Atlassian product",
            "enum": [
              "any",
              "jira",
              "confluence",
              "bitbucket",
              "bamboo",
              "fisheye",
              "crowd"
            ],
            "type": "string",
            "description": "Only Atlassian apps for this host product.",
            "default": "any"
          },
          "atlassianHosting": {
            "title": "Atlassian hosting",
            "enum": [
              "any",
              "cloud",
              "datacenter",
              "server"
            ],
            "type": "string",
            "description": "Only Atlassian apps available for this hosting type. latestVersion / lastReleaseDate refer to the latest version for this hosting.",
            "default": "any"
          },
          "zendeskProduct": {
            "title": "Zendesk product",
            "enum": [
              "any",
              "support",
              "sell",
              "chat"
            ],
            "type": "string",
            "description": "Only Zendesk apps for this Zendesk product.",
            "default": "any"
          },
          "pricing": {
            "title": "Pricing",
            "enum": [
              "any",
              "free",
              "paid"
            ],
            "type": "string",
            "description": "Keep only free or only paid apps (Atlassian and Zendesk; Zoom does not publish pricing).",
            "default": "any"
          },
          "minReviews": {
            "title": "Min reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Skip apps with fewer reviews / ratings than this.",
            "default": 0
          },
          "minRating": {
            "title": "Min rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Skip apps with an average rating below this (1-5).",
            "default": 0
          },
          "minInstalls": {
            "title": "Min installs",
            "minimum": 0,
            "type": "integer",
            "description": "Skip apps with fewer installs than this (Atlassian and Zendesk publish install counts; Zoom apps are not filtered).",
            "default": 0
          },
          "outputLevel": {
            "title": "Output level",
            "enum": [
              "apps",
              "vendors"
            ],
            "type": "string",
            "description": "\"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.",
            "default": "apps"
          },
          "maxAppsPerVendor": {
            "title": "Max apps per vendor",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Only with output level \"vendors\": max portfolio apps loaded per vendor (Atlassian's biggest vendors have 100+ apps).",
            "default": 100
          },
          "includeReviews": {
            "title": "Include reviews",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "maxReviewsPerApp": {
            "title": "Max reviews per app",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Max reviews per app (after the rating / date filters).",
            "default": 20
          },
          "reviewSort": {
            "title": "Review order (Atlassian)",
            "enum": [
              "recent",
              "helpful"
            ],
            "type": "string",
            "description": "Order of Atlassian reviews. Zendesk reviews are always newest first. Monitor modes only skip already-seen reviews with \"Newest first\".",
            "default": "recent"
          },
          "reviewsSince": {
            "title": "Reviews since (date)",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}",
            "type": "string",
            "description": "Only reviews posted on or after this date (YYYY-MM-DD)."
          },
          "maxReviewRating": {
            "title": "Max review rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only reviews with at most this many stars, e.g. 2 for critical reviews only (churn signals, competitor weaknesses).",
            "default": 5
          },
          "outputMode": {
            "title": "Output mode",
            "enum": [
              "all",
              "new",
              "changed"
            ],
            "type": "string",
            "description": "\"new\" and \"changed\" compare with the previous run of the same monitor name. The first run is the baseline and outputs everything.",
            "default": "all"
          },
          "trackChanges": {
            "title": "Add change fields in 'All' mode",
            "type": "boolean",
            "description": "Save a snapshot and add previousInstalls, installsChange, reviewsChange, rankChange and changeTypes even when outputting all results.",
            "default": false
          },
          "minInstallsChangePct": {
            "title": "Installs change threshold (%)",
            "minimum": 0,
            "type": "integer",
            "description": "An installs-up / installs-down change is reported when installs moved at least this many percent since the last run.",
            "default": 5
          },
          "minRankChange": {
            "title": "Rank change threshold",
            "minimum": 1,
            "type": "integer",
            "description": "A rank-up / rank-down change is reported when the position moved at least this many places.",
            "default": 5
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Snapshot name used for change tracking. Use a different name for each separate monitor/schedule.",
            "default": "default"
          },
          "includeMarketReport": {
            "title": "Include market report",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "marketReportOnly": {
            "title": "Market report only (no app rows)",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "includeReviewInsights": {
            "title": "Include review insights (complaints, praise, Cloud vs Data Center)",
            "type": "boolean",
            "description": "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.",
            "default": false
          },
          "insightReviewsPerApp": {
            "title": "Reviews analysed per app (insights)",
            "minimum": 10,
            "maximum": 1000,
            "type": "integer",
            "description": "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.",
            "default": 100
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}