Hubspot Marketplace Scraper | $1.5 / 1k | Fast & Reliable avatar

Hubspot Marketplace Scraper | $1.5 / 1k | Fast & Reliable

Pricing

$1.50 / 1,000 results

Go to Apify Store
Hubspot Marketplace Scraper | $1.5 / 1k | Fast & Reliable

Hubspot Marketplace Scraper | $1.5 / 1k | Fast & Reliable

Scrape the HubSpot App Marketplace into structured listings. Get product details, vendors details, pricing, screenshots/video, capabilities and contact information. Great for ecosystem research, partner discovery, competitive tracking and CRM enrichment

Pricing

$1.50 / 1,000 results

Rating

0.0

(0)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

2

Bookmarked

16

Total users

3

Monthly active users

1.2 hours

Issues response

14 days ago

Last modified

Share

Hubspot Marketplace Scraper

Slug: fatihtahta/hubspot-marketplace-scraper

Overview

Hubspot Marketplace Scraper collects structured HubSpot Marketplace app listings, including listing identifiers, names, descriptions, provider details, product metadata, install and review metrics, pricing plans, media assets, integration capabilities, support links, and source context. HubSpot Marketplace is a public ecosystem directory for HubSpot apps and integrations, making it useful for market research, partner discovery, product analysis, and CRM enrichment. The actor turns public marketplace pages and searches into repeatable JSON records that can be used consistently across analytics, data acquisition, and operational reporting workflows. It is designed for dependable recurring collection patterns without requiring manual copying, spreadsheet cleanup, or one-off research processes. Results are structured for automation and downstream systems while reflecting the public data available at run time.

Why Use This Actor

  • Market research and analytics: build market intelligence datasets from public app listings, pricing models, install counts, ratings, categories, and provider information.
  • Product and content teams: maintain integration directories, compare app positioning, identify partner coverage gaps, and support content planning with structured extraction.
  • Developers and data engineering teams: feed normalized marketplace records into downstream systems, ETL jobs, data warehouses, internal catalogs, or search indexes.
  • Lead generation and enrichment teams: discover vendors, partners, and integration providers, then enrich CRM or account records with public listing attributes and business links.
  • Monitoring and competitive tracking teams: schedule repeatable collection to observe listing updates, category movement, rating changes, pricing changes, and competitive positioning over time.

Common Use Cases

  • Market intelligence: monitor HubSpot Marketplace supply, pricing models, ratings, install counts, provider types, app categories, and ecosystem movement.
  • Lead generation: build targeted prospect lists from public app listings, provider names, company links, support URLs, and marketplace profiles.
  • Competitive monitoring: track changes across app providers, integration categories, pricing pages, ratings, reviews, descriptions, and positioning.
  • Catalog and directory building: populate internal integration directories, partner catalogs, app databases, and searchable knowledge bases with structured public records.
  • Data enrichment: add current public marketplace attributes to existing CRM, BI, partner, or vendor datasets.
  • Recurring reporting: schedule periodic runs for dashboards, alerts, category reports, and trend analysis.

Quick Start

  1. Choose whether to start from HubSpot Marketplace URLs in startUrls or keyword searches in queries.
  2. Add optional filters such as price and builtBy when you need a narrower dataset.
  3. Set a small limit for the first validation run, such as 10 or 25.
  4. Run the actor in Apify Console.
  5. Inspect the first dataset records to confirm that the fields match your workflow.
  6. Increase the limit, add more URLs or queries, or schedule the actor once the output is verified.

Input Parameters

Provide HubSpot Marketplace URLs, search queries, and optional filters to define the listings you want to collect.

ParameterTypeDescriptionDefault
startUrlsarray of stringsHubSpot Marketplace URLs to scrape directly. You can provide search result pages, category pages, or individual app listing pages.-
queriesarray of stringsSearch keywords used to discover relevant HubSpot Marketplace app listings, such as integration names, business functions, or product categories.-
pricestringOptional pricing model filter. Allowed values: CONTACT_US (Contact Us), FREE (Free or freemium), ONE_TIME (One time fee), MONTHLY (Recurring monthly fee), YEARLY (Recurring yearly fee).-
builtBystringFilter listings by who built the app. Allowed values: ALL (All), HUBSPOT (HubSpot), PARTNERS (Partners).ALL
limitintegerMaximum number of listings to save per query. Minimum value is 10.50000
proxyConfigurationobjectOptional Apify connection settings. The default configuration is suitable for most runs.{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}

Choosing Inputs

Use startUrls when you already know the exact HubSpot Marketplace search, category, or app listing pages you want to collect. Use queries when you want the actor to discover listings from keywords such as product names, integration categories, or business functions. The price and builtBy filters narrow the result set and are useful when you need targeted datasets for reporting, enrichment, or comparison. Broader inputs improve discovery, while narrower filters produce cleaner segments for analysis. Start with a small limit to validate output quality, then increase it for production runs or recurring collection.

Example Inputs

Search-driven app discovery

{
"queries": ["sales automation", "customer support"],
"builtBy": "ALL",
"limit": 25,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Direct URL collection

{
"startUrls": [
"https://ecosystem.hubspot.com/marketplace/explore?eco_search=slack",
"https://ecosystem.hubspot.com/marketplace/apps/zapier"
],
"limit": 50,
"builtBy": "ALL",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Filtered partner and pricing research

{
"queries": ["analytics", "reporting"],
"price": "MONTHLY",
"builtBy": "PARTNERS",
"limit": 100,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Output

9.1 Output destination

The actor writes results to an Apify dataset as JSON records. The dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs with minimal post-processing.

When multiple entity types or record shapes exist, this README documents each shape separately based on the provided Example Output. The provided output contract contains one primary record shape: a HubSpot Marketplace app listing record.

9.2 Record envelope and stable identifiers

Each record represents a public HubSpot Marketplace app listing. The strongest stable identifier in the example output is listing_id; url is also stable and useful as a fallback or secondary key.

Recommended idempotency key: listing_id

Use listing_id for deduplication and upserts when the same app is discovered from multiple searches or URLs. Stable identifiers make records easier to merge, deduplicate, and sync across repeated runs. The source_context.source_url, source_context.seed_type, and source_context.seed_value fields document the input context that produced a record, which can help with auditability and segmented reporting.

9.3 Examples

Example: marketplace listing

{
"listing_id": 30051052,
"url": "https://ecosystem.hubspot.com/marketplace/apps/zapier",
"name": "Zapier",
"slug": "zapier",
"description": "The easiest way to automate and connect HubSpot to 8,000+ apps",
"provider": {
"name": "HubSpot",
"company_name": "HubSpot"
},
"product": {
"type": "APP",
"display_tag": "APP",
"display_tag_label": "App",
"built_by_hubspot": true,
"certified": true,
"published": true,
"ui_extension": false,
"ops_hub": false,
"offering_id": 245,
"offering": {
"slug": "zapier",
"homemade": true,
"portal_id": 521324,
"source_id": "25200",
"certified": true,
"credentials": [
111001
],
"installs_count": 177664,
"connection_type": "HOMEMADE_EXTERNAL",
"first_published_at": 1343658775000
},
"products": [
{
"product_id": 450399,
"source_id": "25200",
"product_type": "APP",
"connection_type": "HOMEMADE_EXTERNAL",
"certified": true,
"built_by_hubspot": true,
"works_with_breeze": false
}
]
},
"metrics": {
"install_count": 177664,
"overall_rating": 3.2409327,
"review_count": 386,
"overall_adjusted_rating": 3.2636778
},
"links": {
"marketplace_listing_url": "https://ecosystem.hubspot.com/marketplace/listing/zapier",
"app_url": "https://zapier.com/apps/hubspot/integrations",
"setup_url": "https://zapier.com/help/hubspot/",
"pricing_url": "https://zapier.com/pricing",
"terms_url": "https://zapier.com/terms/",
"privacy_url": "https://zapier.com/privacy/",
"support_url": "https://zapier.com/app/contact-us?from_url=%2Fapps%2Fhubspot%2Fintegrations",
"company_url": "https://www.hubspot.com",
"chat_url": "https://help.hubspot.com/",
"facebook_url": "https://www.facebook.com/hubspot"
},
"pricing": {
"currency": "USD",
"plans": [
{
"name": "Free",
"amount": 0.0,
"billing_period": "FREE",
"tagline": "Anyone can automate their work. Start with the basics.",
"features_text": "5 Zaps 2-step Zaps",
"free_trial_days": 0
},
{
"name": "Starter",
"amount": 19.99,
"billing_period": "MONTHLY",
"tagline": "Unleash the power of automation for your business",
"features_text": "20 Zaps Multi-step Zaps Premium Apps",
"free_trial_days": 0
},
{
"name": "Professional",
"amount": 49.0,
"billing_period": "MONTHLY",
"tagline": "Advanced tools to take your work to the next level",
"features_text": "50 Zaps Conditional Logic Faster Automations",
"free_trial_days": 0
}
]
},
"media": {
"icon_url": "https://521324.fs1.hubspotusercontent-na1.net/hubfs/521324/__hs-marketplace__/150px-1.png",
"video_url": "https://cdn2.hubspot.net/hubfs/521324/INTEGRATIONS_VIDEO_06_FULL_Zapier_FCV3.mp4",
"screenshots": [
{
"alt": "Connect HubSpot to more than 8,000 apps.",
"url": "https://521324.fs1.hubspotusercontent-na1.net/hubfs/521324/__hs-marketplace__/Zapier_1-1.png"
},
{
"alt": "Save time with automation.",
"url": "https://521324.fs1.hubspotusercontent-na1.net/hubfs/521324/__hs-marketplace__/Zapier_2-2-1.png"
},
{
"alt": "Scale your productivity.",
"url": "https://521324.fs1.hubspotusercontent-na1.net/hubfs/521324/__hs-marketplace__/Zapier_3-3-1.png"
},
{
"alt": "Harness the power of Zapier without navigating away from HubSpot",
"url": "https://521324.fs1.hubspotusercontent-na1.net/hubfs/521324/__hs-marketplace__/Zapier%204-1.png"
}
]
},
"capabilities": {
"integrations": [
"Google Sheets",
"Slack",
"Trello",
"Gmail",
"Quickbooks",
"Asana"
],
"languages": [
"en"
],
"support_languages": [
"en",
"fr",
"de",
"ja",
"pt",
"es"
],
"keywords": [
"ipaas",
"Automate",
"Trigger",
"Workflows",
"integrate",
"connect"
],
"categories": [
"CONNECTOR"
],
"hubspot_features": [
"CRM_CONTACT_ACTIVITY",
"CRM_FORMS",
"CRM_TICKETING",
"MARKETING_BLOG_CONTENT_CREATION",
"MARKETING_CUSTOM_EVENT_REPORTING",
"MARKETING_LISTS",
"MARKETING_MARKETING_AUTOMATION",
"MARKETING_SOCIAL"
],
"required_scope_groups": [
{
"id": 14,
"name": "zapier",
"version": "GRANULAR",
"picto_icon": "workflows",
"visibility": "VISIBLE",
"whitelisted": true,
"long_description": "This grants access to capabilities Zapier uses to enable the triggers and actions defined in Zapier",
"short_description": "Access to features for the Zapier integration"
},
{
"id": 9,
"name": "oauth",
"version": "GRANULAR",
"picto_icon": "settings",
"visibility": "VISIBLE",
"whitelisted": false,
"long_description": "View properties about the installing account including primary domain and user emails.",
"short_description": "Basic HubSpot account information"
}
],
"tiers": [
"MARKETING_STARTER",
"MARKETING_PROFESSIONAL",
"MARKETING_ENTERPRISE",
"SALES_STARTER",
"SALES_PROFESSIONAL",
"SALES_ENTERPRISE",
"SERVICE_STARTER",
"SERVICE_PROFESSIONAL",
"SERVICE_ENTERPRISE",
"CMS_STANDALONE",
"HUBSPOT_FREE",
"CMS_ENTERPRISE",
"OPS_ENTERPRISE",
"OPS_PROFESSIONAL",
"OPS_STARTER",
"CMS_STARTER",
"CONTENT_STARTER",
"CONTENT_PROFESSIONAL",
"CONTENT_ENTERPRISE"
],
"data_syncs": [
{
"data": "CONTACTS",
"sync": "BOTH",
"target": "(varies by connected app)",
"description": "Trigger actions when new contacts are created or updated in HubSpot, and create/update contacts when actions happens in other systems. In addition, trigger actions in other systems when a new contact property is changed."
},
{
"data": "CONTACT_LISTS",
"sync": "BOTH",
"target": "(varies by connected app)",
"description": "Trigger actions when new contacts are added to lists, or add contacts to lists when actions occur in other systems."
},
{
"data": "FORMS",
"sync": "BOTH",
"target": "(varies by connected app)",
"description": "Trigger actions when forms are submitted in HubSpot, or create form submissions when actions occur in other systems."
},
{
"data": "CMS_BLOG",
"sync": "BOTH",
"target": "(varies by connected app)",
"description": "Trigger actions when a new blog article is created, or create a new blog article when actions occur in other systems."
},
{
"data": "CALENDAR",
"sync": "BOTH",
"target": "(varies by connected app)",
"description": "Trigger actions in other systems when a new calendar task is created, or create new calendar tasks when actions occur in other systems."
},
{
"data": "SOCIAL_MEDIA",
"sync": "BOTH",
"target": "(varies by connected app)",
"description": "Trigger actions in other systems when a new social message is posted from HubSpot, or create a new social post in HubSpot when actions occur in other systems."
},
{
"data": "EVENTS",
"sync": "INBOUND",
"target": "(varies by connected app)",
"description": "Create an event in HubSpot when an action occurs in another system."
},
{
"data": "TICKETS",
"sync": "INBOUND",
"target": "(varies by connected app)",
"description": "Create a ticket in HubSpot when an action occurs in another system."
},
{
"data": "WORKFLOWS",
"sync": "INBOUND",
"target": "(varies by connected app)",
"description": "Add a contact to a HubSpot workflow when an action occurs in another system."
},
{
"data": "ENGAGEMENTS",
"sync": "INBOUND",
"target": "(varies by connected app)",
"description": "Create an engagement in HubSpot when an action occurs in another system."
},
{
"data": "COMPANIES",
"sync": "INBOUND",
"target": "(varies by connected app)"
},
{
"data": "COMPANIES",
"sync": "OUTBOUND",
"target": "(varies by connected app)"
},
{
"data": "CUSTOM_OBJECT",
"sync": "INBOUND",
"target": "(varies by connected app)"
},
{
"data": "CUSTOM_OBJECT",
"sync": "OUTBOUND",
"target": "(varies by connected app)"
},
{
"data": "DEALS",
"sync": "INBOUND",
"target": "(varies by connected app)"
},
{
"data": "DEALS",
"sync": "OUTBOUND",
"target": "(varies by connected app)"
},
{
"data": "PRODUCTS",
"sync": "INBOUND",
"target": "(varies by connected app)"
},
{
"data": "PRODUCTS",
"sync": "OUTBOUND",
"target": "(varies by connected app)"
},
{
"data": "LINE_ITEM",
"sync": "INBOUND",
"target": "(varies by connected app)"
},
{
"data": "LINE_ITEM",
"sync": "OUTBOUND",
"target": "(varies by connected app)"
}
],
"primary_language": "en"
},
"contact": {
"contact_url": "https://help.hubspot.com/",
"phone": "+18884827768-3"
},
"content": {
"benefits": "Zapier connects HubSpot to over 8,000 apps so you can unify data, improve accuracy, and automate work across your tools without writing code. Install this app to: Configure workflows called Zaps to automatically sync, transform, and route data between HubSpot and other apps. Look up information across multiple tools, schedule actions, and create simple-to-complex process chains that reduce manual work and increase operational efficiency. Use supported HubSpot data in Zapier to set up custom triggers and actions including filters, scheduling, delaying, looping, summarizing, parsing, transforming, formatting, and more. Control how information flows between your tools, eliminating repetitive tasks and focusing your team on high-value work.",
"features": [
{
"id": "2fd43b4a-d588-4e50-9df0-80fbc8b824cf",
"type": "MARKETPLACE_LISTING",
"title": "Trigger workflows upon creation of new HubSpot contacts, deals & more",
"image_url": "https://521324.fs1.hubspotusercontent-na1.net/hubfs/521324/Zapier_feature_1-1.png",
"description": "Set up automations that trigger upon the creation of new HubSpot contacts, deals, tickets, products, line items, companies, custom objects, engagements, and more. Additionally, trigger Zaps when deal stages, line items, companies, contacts, products, and more are updated in HubSpot.",
"scope_groups": [
"crm.objects.companies.write",
"crm.objects.contacts.read",
"crm.objects.contacts.write",
"crm.objects.deals.read",
"crm.objects.deals.write",
"crm.schemas.companies.read",
"crm.schemas.contacts.read",
"zapier"
],
"publish_created_at": 1767976988304,
"publish_updated_at": 1767976988304
},
{
"id": "ad99fdc9-ec6a-4f67-9136-57ed3c8080cd",
"type": "MARKETPLACE_LISTING",
"title": "Create and update HubSpot records automatically",
"image_url": "https://521324.fs1.hubspotusercontent-na1.net/hubfs/521324/__hs-marketplace__/Zapier_feature%202-2-1.png",
"description": "Use Zapier to automatically create companies, associations, deals, custom objects, and more in HubSpot. Plus, you can use Zapier workflows to keep your HubSpot records updated as data in your other tools is updated.",
"scope_groups": [
"crm.lists.read",
"crm.lists.write",
"crm.objects.companies.read",
"crm.objects.contacts.write",
"crm.objects.deals.write",
"crm.objects.owners.read",
"zapier"
],
"publish_created_at": 1767976988304,
"publish_updated_at": 1767976988304
},
{
"id": "4f291ad9-6227-45d1-bc6f-b5a32e4cbbd3",
"type": "MARKETPLACE_LISTING",
"title": "Access Zapier within HubSpot's integrations settings page",
"image_url": "https://521324.fs1.hubspotusercontent-na1.net/hubfs/521324/Zapier%205-1.png",
"description": "You can harness the power of Zapier without navigating away from HubSpot. Discover, edit, and create HubSpot Zaps and control your automations seamlessly.",
"scope_groups": [
"crm.objects.contacts.read",
"zapier"
],
"publish_created_at": 1767976988304,
"publish_updated_at": 1767976988304
}
]
},
"timestamps": {
"updated_at": "2026-01-08T22:17:52Z"
},
"source_identifiers": {
"search_listing_id": 30051052,
"detail_listing_id": 1775179,
"offering_id": 245
},
"source_context": {
"source_url": "https://ecosystem.hubspot.com/marketplace/explore?eco_PRODUCT_TYPE=APP&eco_search=",
"seed_type": "url",
"seed_value": "https://ecosystem.hubspot.com/marketplace/explore?eco_PRODUCT_TYPE=APP&eco_search=",
"domain": "ecosystem.hubspot.com"
},
"attributes": {
"cases_url": "https://www.hubspot.com/integrations/zapier/case-study",
"dashworks": false,
"privacy2_url": "https://zapier.com/platform/tos"
}
}

Field Reference

Marketplace listing record

listing_id (number, required): stable marketplace listing identifier.

url (string, required): canonical app listing URL.

name (string, required): app or listing name.

slug (string, required): URL-friendly listing slug.

description (string, optional): short listing description.

provider.name (string, optional): provider display name.

provider.company_name (string, optional): provider company name.

product.type (string, optional): product type, such as APP.

product.display_tag (string, optional): product display tag.

product.display_tag_label (string, optional): human-readable display tag.

product.built_by_hubspot (boolean, optional): whether the app is marked as built by HubSpot.

product.certified (boolean, optional): whether the product is marked as certified.

product.published (boolean, optional): whether the listing is marked as published.

product.ui_extension (boolean, optional): UI extension indicator when available.

product.ops_hub (boolean, optional): Operations Hub indicator when available.

product.offering_id (number, optional): associated offering identifier.

product.offering.slug (string, optional): offering slug.

product.offering.homemade (boolean, optional): homemade offering indicator.

product.offering.portal_id (number, optional): provider portal identifier when present.

product.offering.source_id (string, optional): source identifier for the offering.

product.offering.certified (boolean, optional): offering certification indicator.

product.offering.credentials (array of numbers, optional): credential identifiers associated with the offering.

product.offering.installs_count (number, optional): install count associated with the offering.

product.offering.connection_type (string, optional): connection type label.

product.offering.first_published_at (number, optional): first publication timestamp in milliseconds when provided.

product.products[].product_id (number, optional): related product identifier.

product.products[].source_id (string, optional): related product source identifier.

product.products[].product_type (string, optional): related product type.

product.products[].connection_type (string, optional): related product connection type.

product.products[].certified (boolean, optional): related product certification indicator.

product.products[].built_by_hubspot (boolean, optional): whether the related product is marked as built by HubSpot.

product.products[].works_with_breeze (boolean, optional): Breeze compatibility indicator when available.

metrics.install_count (number, optional): public install count.

metrics.overall_rating (number, optional): public rating value.

metrics.review_count (number, optional): public review count.

metrics.overall_adjusted_rating (number, optional): adjusted rating value when available.

links.marketplace_listing_url (string, optional): public marketplace listing URL.

links.app_url (string, optional): app or integration URL.

links.setup_url (string, optional): setup or help URL.

links.pricing_url (string, optional): pricing page URL.

links.terms_url (string, optional): terms page URL.

links.privacy_url (string, optional): privacy page URL.

links.support_url (string, optional): support URL.

links.company_url (string, optional): company website URL.

links.chat_url (string, optional): chat or help URL.

links.facebook_url (string, optional): Facebook URL when listed.

pricing.currency (string, optional): plan currency, such as USD.

pricing.plans[].name (string, optional): pricing plan name.

pricing.plans[].amount (number, optional): plan price amount in pricing.currency.

pricing.plans[].billing_period (string, optional): billing period, such as FREE or MONTHLY.

pricing.plans[].tagline (string, optional): plan tagline.

pricing.plans[].features_text (string, optional): plan feature summary text.

pricing.plans[].free_trial_days (number, optional): free trial length in days.

media.icon_url (string, optional): app icon URL.

media.video_url (string, optional): video URL when available.

media.screenshots[].alt (string, optional): screenshot alt text.

media.screenshots[].url (string, optional): screenshot image URL.

capabilities.integrations (array of strings, optional): named integrations or connected apps.

capabilities.languages (array of strings, optional): listing language codes.

capabilities.support_languages (array of strings, optional): support language codes.

capabilities.keywords (array of strings, optional): marketplace keywords.

capabilities.categories (array of strings, optional): marketplace category labels.

capabilities.hubspot_features (array of strings, optional): HubSpot feature identifiers associated with the listing.

capabilities.required_scope_groups[].id (number, optional): scope group identifier.

capabilities.required_scope_groups[].name (string, optional): scope group name.

capabilities.required_scope_groups[].version (string, optional): scope group version label.

capabilities.required_scope_groups[].picto_icon (string, optional): scope group icon label.

capabilities.required_scope_groups[].visibility (string, optional): scope group visibility label.

capabilities.required_scope_groups[].whitelisted (boolean, optional): scope group whitelist indicator.

capabilities.required_scope_groups[].long_description (string, optional): detailed scope group description.

capabilities.required_scope_groups[].short_description (string, optional): short scope group description.

capabilities.tiers (array of strings, optional): HubSpot tiers associated with the app.

capabilities.data_syncs[].data (string, optional): data object supported by a sync capability.

capabilities.data_syncs[].sync (string, optional): sync direction or mode.

capabilities.data_syncs[].target (string, optional): target system or target descriptor.

capabilities.data_syncs[].description (string, optional): sync capability description when present.

capabilities.primary_language (string, optional): primary listing language code.

contact.contact_url (string, optional): public contact or help URL.

contact.phone (string, optional): public phone number when listed.

content.benefits (string, optional): long-form benefits or overview text.

content.features[].id (string, optional): feature identifier.

content.features[].type (string, optional): feature content type.

content.features[].title (string, optional): feature title.

content.features[].image_url (string, optional): feature image URL.

content.features[].description (string, optional): feature description.

content.features[].scope_groups (array of strings, optional): scope group names associated with the feature.

content.features[].publish_created_at (number, optional): feature publication creation timestamp in milliseconds when provided.

content.features[].publish_updated_at (number, optional): feature publication update timestamp in milliseconds when provided.

timestamps.updated_at (string, optional): listing update timestamp in ISO 8601 format when available.

source_identifiers.search_listing_id (number, optional): listing identifier from search context.

source_identifiers.detail_listing_id (number, optional): listing identifier from detail context.

source_identifiers.offering_id (number, optional): offering identifier.

source_context.source_url (string, optional): source page or search URL that produced the record.

source_context.seed_type (string, optional): input seed type, such as url.

source_context.seed_value (string, optional): original input seed value.

source_context.domain (string, optional): source domain.

attributes.cases_url (string, optional): case study URL when listed.

attributes.dashworks (boolean, optional): additional listing attribute when present.

attributes.privacy2_url (string, optional): secondary privacy URL when listed.

Data Quality, Guarantees, And Handling

  • Structured records: results are normalized into predictable JSON objects for downstream use.
  • Best-effort extraction: fields may vary by region, session, availability, source data quality, or HubSpot Marketplace presentation changes.
  • Optional fields: null-check optional values in downstream code, especially links, pricing plans, media, capabilities, contact data, and long-form content.
  • Deduplication: use listing_id as the recommended stable key; use url as a fallback or secondary key when needed.
  • Freshness: results reflect the publicly available data at run time.
  • Repeated runs: use the recommended idempotency key when syncing data into warehouses, CRMs, BI tools, or search indexes.

Tips For Best Results

  • Start with a small limit to validate the output shape before scaling up.
  • Use queries for discovery when you do not already have target marketplace URLs.
  • Use startUrls when you need precise control over specific search pages, category pages, or individual app listings.
  • Leave price and builtBy empty or broad when the goal is marketplace discovery.
  • Add filters gradually to understand how each field changes coverage.
  • Schedule recurring runs for monitoring workflows instead of relying on manual one-off collection.
  • Use listing_id for deduplication when storing results over time.

How to Run on Apify

  1. Open the Actor in Apify Console.
  2. Configure the available input fields for the target scope.
  3. Set the maximum number of outputs to collect with limit.
  4. Click Start and wait for the run to finish.
  5. Open the dataset and inspect the first records.
  6. Download results in JSON, CSV, Excel, or other supported formats.

Scheduling & Automation

Scheduling

Automated Data Collection

You can schedule runs to keep HubSpot Marketplace datasets fresh for reporting, monitoring, and enrichment workflows. Recurring schedules are useful when you need consistent snapshots over time rather than manual one-off exports.

  • Navigate to Schedules in Apify Console
  • Create a new schedule, such as daily, weekly, or custom cron
  • Configure input parameters
  • Enable notifications for run completion
  • Add webhooks for automated processing

Integration Options

  • CRM enrichment: sync public app, provider, category, pricing, and marketplace attributes into account, lead, or partner records.
  • BI dashboards: monitor install counts, ratings, pricing models, provider segments, and category movement over time.
  • Data warehouses: store recurring marketplace snapshots for historical analysis and operational reporting.
  • Webhooks: trigger validation, notification, or ingestion workflows after each completed run.
  • Google Sheets or Airtable: review curated app lists, partner targets, and lightweight research datasets with business users.
  • Zapier or Make: route completed dataset exports into no-code workflows for alerts, spreadsheet updates, or CRM tasks.

Export Formats And Downstream Use

Apify datasets can be exported or consumed by downstream systems for review, reporting, and automated ingestion.

  • JSON: for APIs, applications, and data pipelines.
  • CSV or Excel: for spreadsheet workflows and manual review.
  • API access: for automated ingestion into internal systems.
  • BI and warehouses: for reporting, dashboards, and historical analysis.

Performance

The following run times are estimates:

  • Small runs (< 1,000 outputs): ~3-5 minutes
  • Medium runs (1,000-5,000 outputs): ~5-15 minutes
  • Large runs (5,000+ outputs): ~15-30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record. Highly filtered runs can finish faster, while broad discovery or detail-rich records may take longer.

Limitations

  • Availability depends on what https://ecosystem.hubspot.com publicly exposes at run time.
  • Some optional fields may be missing on sparse records or listings with limited public information.
  • Very broad searches may take longer or require higher limit values.
  • Target-side changes can affect field availability, field naming, or visible listing attributes.
  • Regional, account, or availability differences may change visible results.
  • Pricing, ratings, install counts, support links, and app metadata can change between runs.

Troubleshooting

  • No results returned: check filters, query spelling, direct URLs, and whether HubSpot Marketplace has matching public records.
  • Fewer results than expected: broaden filters, raise limit, add more queries or URLs, or verify that the marketplace contains enough matching listings.
  • Some fields are empty: optional fields depend on what each listing publicly provides.
  • Run takes longer than expected: reduce scope, lower limit for validation, or split broad collection into smaller segments.
  • Output changed: compare the current output with the field reference and report a small sample if support is needed.

FAQ

What data does this actor collect?

It collects public HubSpot Marketplace app listing data, including listing identifiers, names, descriptions, providers, product metadata, ratings, review counts, install counts, pricing plans, media, links, capabilities, support information, and source context when available.

Can I filter by location, category, date, price, or other criteria?

The supported input filters are price and builtBy. You can also provide HubSpot Marketplace search pages, category pages, individual listing pages, or keyword searches through startUrls and queries.

Why did I receive fewer results than my limit?

The limit is a maximum, not a guarantee. A run may return fewer records when the selected URLs, queries, or filters have fewer matching public listings.

Can I schedule recurring runs?

Yes. Use Apify schedules to run the actor daily, weekly, or on a custom cron schedule for monitoring, reporting, and enrichment workflows.

How do I avoid duplicates across runs?

Use listing_id as the recommended idempotency key. If needed, use url as a fallback or secondary deduplication key.

Can I export the data to CSV, Excel, or JSON?

Yes. Apify datasets can be downloaded in JSON, CSV, Excel, and other supported formats, or consumed through API access.

Does this actor collect private data?

No. The actor is intended to collect publicly available HubSpot Marketplace listing information from https://ecosystem.hubspot.com.

What should I include when reporting an issue?

Include the input used with any sensitive values redacted, the run ID, expected versus actual behavior, and a small output sample if it helps illustrate the issue.

Compliance & Ethics

Responsible Data Collection

This actor collects publicly available HubSpot Marketplace app listing information from https://ecosystem.hubspot.com for legitimate business purposes, including:

  • SaaS and integration ecosystem research and market analysis
  • Partner discovery, vendor evaluation, and marketplace monitoring
  • CRM enrichment, operational reporting, and data acquisition workflows

This section is informational and not legal advice. Users are responsible for ensuring that their use of collected data complies with applicable laws, regulations, and relevant terms.

Best Practices

  • Use collected data in accordance with applicable laws, regulations, and the target site's terms
  • Respect individual privacy and personal information
  • Use data responsibly and avoid disruptive or excessive collection
  • Do not use this actor for spamming, harassment, or other harmful purposes
  • Follow relevant data protection requirements where applicable, including GDPR and CCPA

Support

For help, use the actor page or Issues section. Include the input used with sensitive values redacted, the run ID, expected versus actual behavior, and a small output sample if it helps explain the issue. Avoid sharing credentials, private account data, or unnecessary personal information in support requests.