# Payhip Marketplace Scraper (`dadhalfdev/payhip-marketplace-scraper`) Actor

Your ultimate Payhip market research tool. Scrape up to 200 digital products per run from any search or category page. Instantly export titles, seller details, pricing strategies, and full customer reviews into clean, structured datasets for competitor analysis.

- **URL**: https://apify.com/dadhalfdev/payhip-marketplace-scraper.md
- **Developed by:** [Marco Rodrigues](https://apify.com/dadhalfdev) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 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

## 🛒 Payhip Marketplace Scraper

The **[Payhip Marketplace](https://payhip.com/marketplace)** is a booming hub for digital products, e-books, courses, memberships, and software. If you're a market researcher, a seller doing competitor analysis, or a deal hunter, getting structured data out of Payhip manually is tedious.

This actor automates the process. Start from the main marketplace or any category/search page, and it will extract up to 200 product cards along with deep details and customer reviews into a clean, structured format.

![Payhip Marketplace](https://i.ibb.co/4ZZbq48v/Screenshot-From-2026-04-23-20-52-54.png)

### 💡 Perfect for…

- **Competitor Analysis:** Track pricing strategies, seller details, and customer sentiment for digital products in your niche.
- **Market Research:** Find out which categories are trending, what ratings top products are getting, and discover top sellers.
- **Lead Generation:** Identify successful creators on Payhip and find their store URLs.
- **Sentiment Analysis:** Extract full customer reviews including star ratings and text for NLP or LLM processing.

### ✨ Why you'll love this scraper

- 🎯 **Search & Category Support:** Paste *any* Payhip marketplace URL (including search results or specific categories) into `input_url`, and the scraper respects your search context.
- ⚙️ **Deep Content Extraction:** Goes beyond the listing card. It navigates to every product page to pull the full description and customer reviews block.
- 💬 **Rich Review Data:** Extracts individual customer reviews, including verification badges, time elapsed, review title, message, and the specific star rating the user gave.
- 🔁 **Automatic Pagination:** Handles Payhip's pagination to seamlessly click through and collect the exact number of products you need.

### 📦 What’s inside the data?

For every single product, you get:

| Field | Description |
|--------|-------------|
| `item_url` | Canonical product detail URL |
| `title` | Product title |
| `seller` | Name of the seller/store |
| `seller_url` | URL to the seller's storefront |
| `price` | Numeric price (e.g., `15.0`) |
| `currency` | Currency symbol (e.g., `$`, `€`, `£`) |
| `rating` | Overall rating out of 5 |
| `number_of_reviews` | Total number of reviews |
| `image_url` | URL of the product's main image |
| `item_description` | Full text of the product description |
| `customer_reviews` | Array of review objects (id, verification, time, title, message, star percentage) |

### 🚀 Quick start

1. **Go to the [Payhip Marketplace](https://payhip.com/marketplace)** and apply any search or category filters you want.
2. **Copy the URL** from your browser and paste it into the `input_url` field of the scraper.
3. **Set `max_items`** (how many items you want to collect, up to 200).
4. **Click Start** and let it run! Export your structured dataset as JSON, CSV, or Excel.

---

#### Tech details for developers 🧑‍💻

**Input Example**

```json
{
  "input_url": "https://payhip.com/marketplace/roblox",
  "max_items": 50
}
````

**Output Example**

```json
{
  "item_url": "https://payhip.com/b/yzpdr?layout=mp&marketplace=search",
  "title": "The Button",
  "seller": "Larrikin Books by Chris Johnson",
  "seller_url": "https://larrikinbooks.com?marketplace=search",
  "rating": 5.0,
  "number_of_reviews": 15,
  "price": 15.0,
  "currency": "$",
  "image_url": "https://payhip.com/cdn-cgi/image/.../image.png",
  "item_description": "made by Caesar, & Sonder\n\nPLEASE READ\n\nTHIS PRODUCT CONTAINS...",
  "customer_reviews": [
    {
      "review_id": "w9B310Q4WR",
      "verified_buyer": true,
      "recommends_product": true,
      "time_elapsed": "1 month ago",
      "review_title": "Chechnya roleplay go hard",
      "review_message": "The map is optimized as hell...",
      "star_fill_percent": 100.0
    }
  ]
}
```

# Actor input Schema

## `input_url` (type: `string`):

Payhip marketplace or search results page URL to scrape product cards from.

## `max_items` (type: `integer`):

Maximum number of unique product detail URLs to collect from the listing.

## Actor input object example

```json
{
  "input_url": "https://payhip.com/marketplace/roblox",
  "max_items": 100
}
```

# Actor output Schema

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

Table view of scraped Payhip products using the dataset 'overview' view.

## `results` (type: `string`):

All scraped Payhip products from the default dataset without view transformation.

# 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 = {};

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

# Run the Actor and wait for it to finish
run = client.actor("dadhalfdev/payhip-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 '{}' |
apify call dadhalfdev/payhip-marketplace-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Payhip Marketplace Scraper",
        "description": "Your ultimate Payhip market research tool. Scrape up to 200 digital products per run from any search or category page. Instantly export titles, seller details, pricing strategies, and full customer reviews into clean, structured datasets for competitor analysis.",
        "version": "0.1",
        "x-build-id": "DHfaIg4ecgmSuAEBp"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dadhalfdev~payhip-marketplace-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dadhalfdev-payhip-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/dadhalfdev~payhip-marketplace-scraper/runs": {
            "post": {
                "operationId": "runs-sync-dadhalfdev-payhip-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/dadhalfdev~payhip-marketplace-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-dadhalfdev-payhip-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": {
                    "input_url": {
                        "title": "Listing URL",
                        "type": "string",
                        "description": "Payhip marketplace or search results page URL to scrape product cards from.",
                        "default": "https://payhip.com/marketplace/roblox"
                    },
                    "max_items": {
                        "title": "Maximum number of products",
                        "minimum": 10,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of unique product detail URLs to collect from the listing.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
