{
  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}