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

Scrapes HubSpot Marketplace app listings by search query, category, pricing, product type, and more. Returns each app as a flat row with rating, reviews, publisher, and optional company enrichment.

- **URL**: https://apify.com/parseforge/hubspot-marketplace-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Automation, Developer tools, Lead generation
- **Stats:** 28 total users, 0 monthly users, 90.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $15.00 / 1,000 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### HubSpot Marketplace Scraper

**Scrape HubSpot Marketplace apps by keyword, category, pricing, or product type, up to a million per run.** Each listing comes with its rating, review count, publisher, pricing, and optional company enrichment. No login or API key. Export to CSV, JSON, Excel, or XML.

This Actor scrapes the public listing pages, filtered by search term, category, pricing type, product type, and more, and returns each match in one fixed schema. You can also enrich each app with its publisher's company profile from Apollo.io.

| Who uses it | What they scrape HubSpot Marketplace for |
|---|---|
| Market researchers | Which apps dominate a HubSpot category and what their pricing looks like |
| Sales teams | Build a lead list of app publishers with company size and funding data |
| Product managers | Track competitor apps and their feature sets over time |
| HubSpot consultants | Find the best apps to recommend to clients for a specific need |

### What it does

This Actor scrapes HubSpot Marketplace app listings by search query, category, pricing, product type, and other filters, and returns each one as a flat row.

- 🔍 **Search and filters:** drive the Actor from a keyword, category, pricing type, product type, or any combination.
- 📊 **Structured output:** every listing returns as a flat row with rating, reviews, publisher, pricing, and more.
- ✨ **Company enrichment:** toggle on to add the publisher's company profile from Apollo.io, cached per vendor.
- ⚡ **Scale:** collect up to a million listings per run, no login or API key required.

Results export to CSV, JSON, Excel, or XML, or from the API.

### What you can do with HubSpot Marketplace data

**📈 Track category leaders.**

A market researcher runs the Actor weekly on the ANALYTICS category to see which apps gain or lose reviews and ratings.

**🎯 Build a publisher lead list.**

A sales team scrapes all apps in the CRM category with enrichment on to get company size and funding for outreach.

**🧩 Find integration partners.**

A product manager filters for INTEGRATION product type and worksWithBreeze true to identify potential partners.

**💡 Recommend apps to clients.**

A HubSpot consultant searches for 'email marketing' and filters by FREEMIUM to shortlist options for a client.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key** | Scrapes the public marketplace pages, no registration or OAuth |
| **One fixed schema** | Every listing returns the same fields, ready for analysis |
| **Optional enrichment** | Add publisher company size, funding, industry, and LinkedIn from Apollo.io |
| **Export anywhere** | CSV, JSON, Excel, or XML, from the run |

### How it compares

No other Store actor targets HubSpot Marketplace the same way, so the honest comparison is with the alternatives teams actually weigh.

| | HubSpot Marketplace Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When HubSpot Marketplace changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor from a search query, categories, pricing types, product types, and more, alone or together, and filters run as each listing is scraped so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10
}
```

A larger pull:

```json
{
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.015 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $1.50 |
| 1,000 results | $15.00 |
| 10,000 results | $150.00 |

**Optional publisher enrichment:** with `enrichOutput` on, each app whose Apollo.io company lookup comes back adds a `publisher-enrichment` event at **$0.005** ($5 per 1,000). Leave it off and you pay only the per-result price above.

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [HubSpot Marketplace Scraper](https://apify.com/parseforge/hubspot-marketplace-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to HubSpot Marketplace through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/hubspot-marketplace-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check your filters. If you combine a search query with categories or pricing types, the marketplace may return zero matches. Try removing some filters or broadening the search term.

**Why is enrichment not working?**

Make sure enrichOutput is toggled on and you have selected an Apollo.io connector in enrichConnector. If you haven't authorized the connector, click the '+' to add it.

**Why do I see fewer results than maxItems?**

The marketplace may have fewer listings matching your filters. Try removing filters or using a more general search query.

**Why are some fields empty?**

Not all listings have every field, such as rating or review count. Empty fields mean the marketplace did not provide that data for that app.

**Can I scrape a specific app by URL?**

Currently the Actor does not accept URLs. Use the search query to find the app by name or keyword.

### FAQ

| Question | Answer |
|---|---|
| Do I need a HubSpot account or API key? | No. The Actor scrapes the public marketplace pages, so no login or API key is required. |
| Can I filter by category and pricing at the same time? | Yes. You can combine search query, categories, pricing types, product types, and other filters in one run. |
| What does the enrichment add? | When you toggle on enrichOutput and select an Apollo.io connector, each app gets its publisher's company profile: size, funding, industry, and LinkedIn URL. |
| How many listings can I scrape? | Up to 1,000,000 per run, set by the maxItems input. |
| What export formats are supported? | CSV, JSON, Excel, and XML, available from the run's dataset. |
| Can I scrape only apps built by HubSpot? | Yes, set builtByHubSpot to true to include only HubSpot-built apps. |
| Can I filter for apps that work with Breeze? | Yes, use the worksWithBreeze filter to include or exclude apps that work with HubSpot Breeze. |
| What are agent types and agent teams? | These filters apply only when productTypes includes AGENT. Agent types are STUDIO, CUSTOM, or THIRD\_PARTY, and agent teams are SALES, MARKETING, SERVICE, OPERATIONS, or GENERAL. |
| Is the enrichment cached? | Yes, enrichment is cached per unique vendor, so repeated runs do not re-query Apollo.io for the same publisher. |
| Can I run this on a schedule? | Yes, you can set up a recurring schedule in Apify to run the Actor daily, weekly, or at any interval. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by HubSpot, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `searchQuery` (type: `string`):

Enter a search term to find specific apps in the HubSpot Marketplace. Examples: 'marketing', 'calendar', 'email', 'CRM', 'analytics', 'advertising'.

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

Select app categories to filter by (optional). Leave empty to include all categories.

## `pricingTypes` (type: `array`):

Select pricing types to filter by (optional). Leave empty to include all pricing types.

## `maxItems` (type: `integer`):

How many marketplace listings to collect per run.

## `productTypes` (type: `array`):

Filter by product types (optional). Leave empty to include all types.

## `worksWithBreeze` (type: `string`):

Filter apps that work with HubSpot Breeze (optional).

## `installed` (type: `string`):

Show only installed apps (optional).

## `agentTypes` (type: `array`):

Filter by agent types (for AGENT product type only).

## `agentTeams` (type: `array`):

Filter by agent teams (for AGENT product type only).

## `certified` (type: `string`):

Show only HubSpot certified apps (optional).

## `builtByHubSpot` (type: `string`):

Show only apps built by HubSpot (optional).

## `enrichOutput` (type: `boolean`):

Toggle on to add the app vendor's company profile (size, funding, industry, LinkedIn) to every app via Apollo.io. Default off — cached per unique vendor.

## `enrichConnector` (type: `string`):

Pick the Apollo.io connector. Click '+' to authorize if you haven't yet.

## `mcpProxyUrlOverride` (type: `string`):

Diagnostic only.

## `mcpTokenOverride` (type: `string`):

Diagnostic only.

## Actor input object example

```json
{
  "maxItems": 10,
  "worksWithBreeze": "ALL",
  "installed": "ALL",
  "certified": "ALL",
  "builtByHubSpot": "ALL",
  "enrichOutput": false
}
```

# Actor output Schema

## `apps` (type: `string`):

Complete dataset with all scraped HubSpot Marketplace apps including app information, pricing, descriptions, vendor details, and technical specifications

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

Overview view of apps with key fields displayed in a table format

# 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 = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/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 = { "maxItems": 10 }

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

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

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

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/hubspot-marketplace-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/hubspot-marketplace-scraper"
        }
    }
}

```

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

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ejbQ3TnaaIYSjAdIr/builds/KSeMfI8LiFo9KV9NH/openapi.json
