# HubSpot Marketplace Scraper (`solidcode/hubspot-marketplace-scraper`) Actor

\[💰 $1.3 / 1K] Extract apps, integrations, and connectors from the HubSpot App Marketplace. Get names, providers, install counts, ratings, review counts, pricing plans, categories, integrations, media, and support links. Search by keyword or paste listing URLs.

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

## Pricing

from $1.30 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## HubSpot Marketplace Scraper

Pull every app, integration, and connector from the HubSpot App Marketplace at scale — install counts, aggregate ratings, named pricing tiers, integration mappings, screenshots, demo videos, and support links for each listing. Search by keyword across 62 categories and 8 languages, or paste exact listing URLs. Built for partnership and BD teams, competitive-intelligence analysts, and agencies who need a structured map of the HubSpot ecosystem without combing the storefront listing by listing.

### Why This Scraper?

- **62 marketplace categories** — narrow keyword searches to any official HubSpot category, from Email, CRM, and Advertising to ERP, ETL, iPaaS, Lead Scoring, and Sales Intelligence.
- **Filter official HubSpot apps vs partner-built** — a single switch separates apps HubSpot ships itself from the thousands built by third-party partners, so you can isolate first-party tooling or scope the partner landscape.
- **Named pricing tiers with prices** — every listing returns its full pricing plans (tier name, pricing model, per-tier feature list, free-trial day count, and currency), not just a free-vs-paid flag.
- **Install counts, aggregate ratings, and review counts** — adoption and satisfaction signals on every app: total installs, overall star rating, and the number of reviews behind it.
- **Integration mappings, not just a logo** — each listing's `integrations` array spells out which HubSpot objects (contacts, deals, tickets) sync, the sync direction, and a description of each mapping.
- **Screenshots and demo-video URLs** — direct media links for every listing: the icon, the full screenshot gallery, and the overview/demo video when one exists.
- **Free-vs-paid and built-by-HubSpot filters that partition cleanly** — the paid filter is the exact complement of free, so free + paid always sums to the unfiltered total — no double-counted freemium apps.
- **Search by keyword or paste listing URLs** — run broad category sweeps with keywords, or hand it a list of exact marketplace URLs to refresh a known watchlist; each URL returns the full enriched record regardless of filters.
- **Eight marketplace languages** — pull localized listing text in English, German, French, Spanish, Portuguese, Italian, Dutch, or Japanese.

### Use Cases

**Competitive Intelligence**
- Track which competitors have shipped HubSpot integrations and how they price each tier
- Monitor install-count and rating movement on rival apps over time
- Compare a competitor's integration depth (which HubSpot objects sync, and which direction) against your own
- Spot newly listed apps in your category before they gain traction

**Partnership & Business Development**
- Map every app in a target category to find integration or co-sell partners
- Separate official HubSpot apps from partner-built ones to prioritize outreach
- Rank potential partners by install count and review volume
- Pull support, privacy, and terms URLs to fast-track partner due diligence

**Market Research**
- Size a category by counting listings, installs, and average ratings across 62 categories
- Benchmark pricing models and free-trial lengths across an entire category
- Track the free-vs-paid split within any niche to gauge monetization norms
- Localize research across 8 languages to compare regional marketplace coverage

**Agency & Consulting**
- Build a shortlist of HubSpot apps for a client by category, price, and rating
- Compare named pricing tiers side by side when advising on tool selection
- Assemble integration-capability matrices from the per-listing integration mappings
- Refresh a curated app watchlist on a schedule by feeding in known listing URLs

**Lead Generation**
- Build prospect lists of app providers in a target category, with provider name and external app URL
- Identify vendors offering free tiers as warm entry points for upsell motions
- Capture support and contact links to reach app teams directly

### Getting Started

#### Simple Keyword Search

The fastest way to start — one keyword:

```json
{
    "searchQueries": ["email marketing"],
    "maxResults": 50
}
````

#### Filtered Category Search

Map a single category, paid apps only, partner-built:

```json
{
    "searchQueries": ["data sync"],
    "category": "CRM",
    "priceFilter": "paid",
    "builtBy": "partners",
    "maxResults": 200
}
```

#### Exact Listings by URL

Refresh a known watchlist by pasting marketplace URLs — filters are ignored, every listing returns the full record:

```json
{
    "startUrls": [
        "https://ecosystem.hubspot.com/marketplace/apps/marketing/email/mailchimp",
        "https://ecosystem.hubspot.com/marketplace/apps/sales/sales-enablement/zoom"
    ],
    "language": "de"
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | array | `["email marketing"]` | Keywords to search the marketplace, such as `email marketing` or `data sync`. Each query is collected separately. |
| `startUrls` | array | `[]` | Paste marketplace listing URLs to collect those apps directly. Search filters do not apply to URLs. |

#### Search Filters

These filters apply only to keyword searches. When you provide listing URLs, every app is collected regardless of these settings.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `category` | string | `"all"` | Limit keyword searches to one of 62 marketplace categories — e.g. `EMAIL`, `CRM`, `ADVERTISING`, `SALES_ENABLEMENT`, `IPAAS`, `ERP`. Select `All Categories` to search everything. |
| `priceFilter` | string | `"all"` | Show `All Apps`, `Free Apps Only`, or `Paid Apps Only`. |
| `builtBy` | string | `"all"` | Filter by who built the app: `Anyone`, `Built by HubSpot`, or `Built by Partners`. |

#### Options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `100` | Maximum number of listings to collect across all queries and URLs combined. Set to `0` for unlimited. |
| `language` | string | `"en"` | Language for listing text where the marketplace provides it: English, German, French, Spanish, Portuguese, Italian, Dutch, or Japanese. |

### Output

Each listing is one flat row combining the marketplace card and the full detail record. Example:

```json
{
    "listingId": 487123,
    "name": "Mailchimp",
    "slug": "marketing/email/mailchimp",
    "url": "https://ecosystem.hubspot.com/marketplace/apps/marketing/email/mailchimp",
    "description": "Sync contacts and campaigns between Mailchimp and HubSpot",
    "overview": "Keep your email audiences and HubSpot contacts in perfect sync...",
    "category": "Email",
    "categories": ["Email", "Marketing Automation"],
    "categoryCodes": ["EMAIL", "MARKETING_AUTOMATION"],
    "providerName": "Mailchimp",
    "builtByHubspot": false,
    "productType": "APP",
    "installCount": 18452,
    "rating": 4.3,
    "adjustedRating": 4.18,
    "reviewCount": 211,
    "isFree": true,
    "certifiedAt": 1713539903755,
    "keywords": ["mailchimp", "email sync", "campaigns"],
    "pricingPlans": [
        {
            "name": "Free",
            "pricingModels": ["FREE"],
            "detail": "Up to 500 contacts",
            "tagline": "Get started at no cost",
            "features": ["Contact sync", "1 audience"],
            "freeTrialDays": null
        },
        {
            "name": "Standard",
            "pricingModels": ["MONTHLY"],
            "detail": "$20/month",
            "tagline": "For growing teams",
            "features": ["Unlimited audiences", "Advanced segmentation"],
            "freeTrialDays": 14
        }
    ],
    "integrations": [
        {
            "appObject": "Subscriber",
            "hubspotObjects": ["CONTACT"],
            "direction": ["BIDIRECTIONAL"],
            "hubspotObjectTypes": ["CONTACT"],
            "description": "Sync subscribers with HubSpot contacts"
        }
    ],
    "languages": ["en", "de", "fr"],
    "currency": "USD",
    "iconUrl": "https://static.hubspot.com/.../mailchimp-icon.png",
    "screenshots": [
        "https://static.hubspot.com/.../screenshot-1.png",
        "https://static.hubspot.com/.../screenshot-2.png"
    ],
    "videoUrl": "https://www.youtube.com/watch?v=example",
    "appUrl": "https://mailchimp.com",
    "supportUrl": "https://mailchimp.com/help",
    "supportEmail": "support@mailchimp.com",
    "phone": "+18884827768",
    "setupDocsUrl": "https://knowledge.hubspot.com/integrations/connect-mailchimp",
    "privacyUrl": "https://mailchimp.com/legal/privacy",
    "termsUrl": "https://mailchimp.com/legal/terms"
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `listingId` | integer | Unique marketplace listing identifier. |
| `name` | string | App / listing name. |
| `slug` | string | URL slug for the listing. |
| `url` | string | Full marketplace listing URL. |
| `description` | string | Short listing tagline. |
| `overview` | string | Longer listing overview text. |
| `category` | string | Primary marketplace category (human label). |
| `categories` | array | All category labels the listing appears under. |
| `categoryCodes` | array | Raw category codes (e.g. `EMAIL`, `CRM`). |
| `providerName` | string | Provider / company that built the app. |
| `productType` | string | Listing type (e.g. `APP`, `CONNECTOR`). |

#### Metrics & Flags

| Field | Type | Description |
|-------|------|-------------|
| `installCount` | integer | Total number of installs. |
| `rating` | number | Aggregate overall star rating. |
| `adjustedRating` | number | HubSpot's recency- and volume-weighted rating shown on the storefront. |
| `reviewCount` | integer | Aggregate number of reviews (count only — individual reviews are not collected). |
| `isFree` | boolean | Whether the listing offers a free pricing tier. |
| `builtByHubspot` | boolean | Whether the app is built by HubSpot. |
| `certifiedAt` | integer | When the app was certified, as a Unix timestamp in milliseconds (null if not certified). |
| `keywords` | array | Search keywords / tags the provider tagged the listing with. |

#### Pricing & Integrations

| Field | Type | Description |
|-------|------|-------------|
| `pricingPlans` | array | Named pricing tiers: `name`, `pricingModels`, `detail`, `tagline`, `features`, and `freeTrialDays`. |
| `integrations` | array | Integration mappings: app object, the HubSpot objects it syncs, sync direction, and a description. |
| `languages` | array | Languages the listing supports. |
| `currency` | string | Pricing currency code. |

#### Media & Links

| Field | Type | Description |
|-------|------|-------------|
| `iconUrl` | string | App icon image URL. |
| `screenshots` | array | Screenshot image URLs (full gallery). |
| `videoUrl` | string | Overview / demo video URL (nullable). |
| `appUrl` | string | External app / product website URL. |
| `supportUrl` | string | Support link. |
| `supportEmail` | string | Support contact (email or support URL). |
| `phone` | string | Support / contact phone number. |
| `setupDocsUrl` | string | Setup / installation documentation link. |
| `privacyUrl` | string | Privacy policy link. |
| `termsUrl` | string | Terms of service link. |

### Tips for Best Results

- **Pair `category` with `builtBy` to map a niche** — set a category like `IPAAS` and switch `builtBy` to `Built by Partners` to chart exactly who competes in a single segment, official apps excluded.
- **Use `startUrls` for an exact watchlist** — when you already know the listings you care about, paste their URLs instead of searching; every URL returns the full enriched record and ignores the filters entirely.
- **The paid filter is the exact complement of free** — `Free Apps Only` plus `Paid Apps Only` always sums to the unfiltered total, so you can split a category cleanly without double-counting freemium apps that carry both a free and a paid tier.
- **Start small, then scale** — run with `maxResults` set to 10–50 to confirm the category and filters return what you expect, then raise the cap or set it to `0` for a full sweep.
- **Each keyword query is collected separately** — pass several related terms in `searchQueries` to widen coverage of a topic, and the results are merged into one dataset.
- **Set `language` to localize text** — descriptions and overviews come back in the language you choose where the marketplace provides a translation; identifiers and metrics stay consistent across languages.
- **Sort and filter on `installCount` and `rating` after export** — these adoption and satisfaction signals are the fastest way to rank an entire category by traction.

### Pricing

**From $1.30 per 1,000 results** — undercuts comparable HubSpot marketplace extractors while returning a richer per-listing record. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.16 | $0.15 | $0.14 | $0.13 |
| 1,000 | $1.55 | $1.45 | $1.40 | $1.30 |
| 10,000 | $15.50 | $14.50 | $14.00 | $13.00 |
| 100,000 | $155.00 | $145.00 | $140.00 | $130.00 |

One result is one app listing record. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor collects publicly available information from the HubSpot App Marketplace. Use the data responsibly and in compliance with HubSpot's terms of service and all applicable laws. Do not use collected data to infringe on intellectual property, send unsolicited communications, or for any purpose that violates privacy regulations. You are responsible for how you use the data you collect.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search the HubSpot App Marketplace, such as 'email marketing' or 'data sync'. Each query is collected separately. Leave empty if you are pasting listing URLs below.

## `startUrls` (type: `array`):

Paste HubSpot marketplace listing URLs to scrape those apps directly (e.g. https://ecosystem.hubspot.com/marketplace/apps/marketing/email/mailchimp). The filters below do not apply to URLs.

## `category` (type: `string`):

Limit keyword searches to a single marketplace category. Only applies to Search Queries — ignored for App Listing URLs.

## `priceFilter` (type: `string`):

Show all apps, only free apps, or only paid apps. Only applies to Search Queries.

## `builtBy` (type: `string`):

Filter by who built the app. Only applies to Search Queries.

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

Maximum number of unique app listings to collect across all queries and URLs combined. Duplicate listings (the same app matched by more than one query or URL) are removed automatically and only counted once. Set to 0 for unlimited. Tip: start with 10-50 to test, then increase.

## `language` (type: `string`):

Language for listing text where the marketplace provides it.

## Actor input object example

```json
{
  "searchQueries": [
    "email marketing"
  ],
  "startUrls": [],
  "category": "all",
  "priceFilter": "all",
  "builtBy": "all",
  "maxResults": 100,
  "language": "en"
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of marketplace listings with provider, install, and rating fields.

# 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 = {
    "searchQueries": [
        "email marketing"
    ],
    "startUrls": [],
    "category": "all",
    "priceFilter": "all",
    "builtBy": "all",
    "maxResults": 100,
    "language": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/hubspot-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 = {
    "searchQueries": ["email marketing"],
    "startUrls": [],
    "category": "all",
    "priceFilter": "all",
    "builtBy": "all",
    "maxResults": 100,
    "language": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/hubspot-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 '{
  "searchQueries": [
    "email marketing"
  ],
  "startUrls": [],
  "category": "all",
  "priceFilter": "all",
  "builtBy": "all",
  "maxResults": 100,
  "language": "en"
}' |
apify call solidcode/hubspot-marketplace-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "HubSpot Marketplace Scraper",
        "description": "[💰 $1.3 / 1K] Extract apps, integrations, and connectors from the HubSpot App Marketplace. Get names, providers, install counts, ratings, review counts, pricing plans, categories, integrations, media, and support links. Search by keyword or paste listing URLs.",
        "version": "1.0",
        "x-build-id": "XoNU2XIAhv1c0hJiz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~hubspot-marketplace-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-hubspot-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/solidcode~hubspot-marketplace-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-hubspot-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/solidcode~hubspot-marketplace-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-hubspot-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": {
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Keywords to search the HubSpot App Marketplace, such as 'email marketing' or 'data sync'. Each query is collected separately. Leave empty if you are pasting listing URLs below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "App Listing URLs",
                        "type": "array",
                        "description": "Paste HubSpot marketplace listing URLs to scrape those apps directly (e.g. https://ecosystem.hubspot.com/marketplace/apps/marketing/email/mailchimp). The filters below do not apply to URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "all",
                            "ACCOUNT_BASED_MARKETING",
                            "ACCOUNTING",
                            "ADVERTISING",
                            "APPLICANT_TRACKING_SYSTEMS",
                            "CALLING",
                            "COLLABORATION",
                            "COMPETITIVE_INTELLIGENCE",
                            "CONNECTOR",
                            "CONSENT_MANAGEMENT",
                            "CONTENT_MANAGEMENT_SYSTEM",
                            "CONVERSATION_INTELLIGENCE",
                            "CPQ",
                            "CRM",
                            "CUSTOMER_SUCCESS",
                            "DATA_MIGRATION",
                            "DATA_QUALITY_BACKUP",
                            "DIGITAL_PLATFORM_ADOPTION",
                            "DIRECT_MAIL_AUTOMATION",
                            "E_COMMERCE",
                            "E_SIGNATURE",
                            "EMAIL",
                            "ERP",
                            "ETL",
                            "EVENT_MANAGEMENT",
                            "EXPERIENCE_MANAGEMENT",
                            "FIELD_SERVICE",
                            "FORM_BUILDER",
                            "FUNDRAISING_NON_PROFIT",
                            "HELP_DESK",
                            "IPAAS",
                            "KNOWLEDGE_BASE",
                            "LEAD_SCORING_ROUTING",
                            "LEARNING_MANAGEMENT_SYSTEM",
                            "LIVE_CHAT",
                            "MARKETING_ANALYTICS",
                            "MARKETING_AUTOMATION",
                            "MESSAGING_NETWORK",
                            "PARTNER_MANAGEMENT",
                            "PAYMENTS",
                            "PRODUCT_ANALYTICS",
                            "PROJECT_MANAGEMENT",
                            "PROPOSALS",
                            "SALES_ANALYTICS",
                            "SALES_COMPENSATION",
                            "SALES_ENABLEMENT",
                            "SALES_ENGAGEMENT",
                            "SALES_INTELLIGENCE",
                            "SCHEDULING",
                            "SENSITIVE_DATA",
                            "SEO",
                            "SESSION_REPLAYS",
                            "SMS",
                            "SOCIAL_MEDIA_MANAGEMENT",
                            "SOCIAL_NETWORKS",
                            "SPREADSHEETS",
                            "SUBSCRIPTION_MANAGEMENT",
                            "SURVEYS",
                            "TICKETING",
                            "VIDEO",
                            "WEBINARS",
                            "WORKFLOW_AUTOMATION",
                            "WORKFORCE_MANAGEMENT"
                        ],
                        "type": "string",
                        "description": "Limit keyword searches to a single marketplace category. Only applies to Search Queries — ignored for App Listing URLs.",
                        "default": "all"
                    },
                    "priceFilter": {
                        "title": "Pricing",
                        "enum": [
                            "all",
                            "free",
                            "paid"
                        ],
                        "type": "string",
                        "description": "Show all apps, only free apps, or only paid apps. Only applies to Search Queries.",
                        "default": "all"
                    },
                    "builtBy": {
                        "title": "Built By",
                        "enum": [
                            "all",
                            "hubspot",
                            "partners"
                        ],
                        "type": "string",
                        "description": "Filter by who built the app. Only applies to Search Queries.",
                        "default": "all"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of unique app listings to collect across all queries and URLs combined. Duplicate listings (the same app matched by more than one query or URL) are removed automatically and only counted once. Set to 0 for unlimited. Tip: start with 10-50 to test, then increase.",
                        "default": 100
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "en",
                            "de",
                            "fr",
                            "es",
                            "pt",
                            "it",
                            "nl",
                            "ja"
                        ],
                        "type": "string",
                        "description": "Language for listing text where the marketplace provides it.",
                        "default": "en"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
