MrScraper PDP
Apify Actor that unblocks and extracts structured data from detail pages — products, articles, hotels, job postings, and more.
The MrScraper PDP Actor unblocks pages and scrapes detail pages from any website. It's stealth, reliable, and scalable — you give it a list of URLs and a content category, and it returns structured fields for each page.
"PDP" stands for product detail page, but the Actor handles many kinds of single-item pages, not just products.
What It Does
The Actor fetches each URL through MrScraper's unblocking engine, then extracts structured data according to the category you select. Supported categories:
articleposthoteljob postingproductpropertyrestaurantsocial media profiletour/attraction
When to Use It
- Extracting product name, price, images, and specifications from ecommerce item pages.
- Pulling article titles, authors, and body text from news or blog posts.
- Collecting hotel, restaurant, or attraction details for travel data.
- Gathering job posting fields from careers pages.
- Building a structured dataset from a list of URLs you already have — for example, URLs produced by the Listing Actor.
Need the URLs first?
Run the MrScraper Listing Actor over a category or search page to collect item URLs, then feed those URLs into this Actor for the full detail of each item.
Input
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
urls | array | Yes | — | List of detail page URLs to scrape. Each entry is an object with a url field. |
category | string | Yes | — | The type of page being scraped. Determines which fields are extracted. See the list above. |
browser_rendering_enabled | boolean | No | false | Enable browser rendering for JavaScript-heavy pages. |
browser_rendering_listen_network | boolean | No | false | Capture network requests made during page loading. |
browser_rendering_wait_for_selector | string | No | "" | CSS selector to wait for before extraction. |
proxy_use_proxy | boolean | No | true | Route requests through residential and mobile IPs. |
proxy_proxy_country | string | No | "" | Country code for geo-targeted proxy routing. |
proxy_bypass_proxy | boolean | No | true | Block images, fonts, and stylesheets to speed up the run. |
output_html | boolean | No | false | Include the raw HTML in the output. |
output_markdown | boolean | No | false | Include a Markdown version of the page in the output. |
Example input
{
"urls": [
{
"url": "https://www.ebay.com/itm/236604718789"
}
],
"category": "product",
"browser_rendering_enabled": false,
"browser_rendering_listen_network": false,
"browser_rendering_wait_for_selector": "",
"proxy_use_proxy": true,
"proxy_proxy_country": "",
"proxy_bypass_proxy": true,
"output_html": false,
"output_markdown": false
}Output
Each scraped page is pushed to the Apify dataset as one item. The extracted fields depend on the category you selected — a product page returns price and images, while an article page returns author and body content.
{
"url": "https://example.com/product/123",
"category": "product",
"title": "Product Name",
"description": "Product description...",
"price": "$99.99",
"images": ["https://example.com/image1.jpg"],
"html": "<!-- raw HTML (if enabled) -->",
"markdown": "<!-- markdown version (if enabled) -->"
}The html field appears only when output_html is true, and markdown only when output_markdown is true.
Usage
Open the Actor
Go to apify.com/mrscrapercom/mrscraper-pdp and click Try for free.
Add your URLs and category
Paste the detail page URLs into the urls field, then pick the category that matches the page type. Getting the category right matters — it determines which fields the extractor looks for.
Adjust proxy and rendering options
Leave the defaults for most sites. If the page returns empty or partial data, enable browser_rendering_enabled and set browser_rendering_wait_for_selector to an element that appears once the content has loaded.
Run and export
Click Start, then export the dataset as JSON, CSV, or XLSX from the Dataset tab.
Run via the API
curl -X POST "https://api.apify.com/v2/acts/mrscrapercom~mrscraper-pdp/run-sync-get-dataset-items?token=<APIFY_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"urls": [
{ "url": "https://www.ebay.com/itm/236604718789" }
],
"category": "product"
}'Pricing
Pay-per-event, starting from $3.00 per 1,000 standard requests. Additional charges apply for browser rendering, network listening, run time (per 30-second interval), bandwidth, and AI token usage. Apify Store discounts apply based on your subscription tier.
Keep runs lean
Browser rendering, network listening, and the output_html / output_markdown options all add cost — rendering and listening as separate events, and the output options through bandwidth. Enable them only when you need them.