# Appsumo Scraper (`scraperoka/appsumo-scraper`) Actor

🚀 Appsumo Scraper pulls targeted app listings, pricing, features, and descriptions from Appsumo — fast & accurate. 📈 Perfect for lead gen, market research, and competitive analysis. Automate insights in minutes, not hours.

- **URL**: https://apify.com/scraperoka/appsumo-scraper.md
- **Developed by:** [Scraperoka](https://apify.com/scraperoka) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

### Appsumo Products Scraper 🚀

Manually visiting individual product pages to collect prices, ratings, and review stats wastes time you don’t have. **Appsumo Products Scraper** automates AppSumo product data extraction so you can build a clean dataset fast. This Appsumo Products Scraper also supports an AppSumo product scraper workflow—perfect for marketers, researchers, and growth teams that want hundreds of product records in minutes from publicly available product pages.

***

### What the Data Looks Like

Here’s a sample record from a single run:

```json
{
  "url": "https://appsumo.com/products/pinreel-animated-video-maker/",
  "public_name": "",
  "price": "",
  "review_count": "",
  "average_rating": "",
  "comment_count": "",
  "story_subheader": "",
  "story_snippet": "",
  "scraped_at": "2026-06-02T00:00:00.000000",
  "success": false
}
```

> Note: If meaningful product values aren’t found, the actor returns the record with `success: false` and empty fields (strings for most fields).

| Field | Type | What It Tells You |
|---|---|---|
| `url` | string | The AppSumo product page URL that was processed |
| `public_name` | string | The product’s display name as shown on the page |
| `price` | string | The product price value extracted from the page |
| `review_count` | string | How many reviews are listed for the product |
| `average_rating` | string | The average rating shown for the product |
| `comment_count` | string | How many comments are available for the product |
| `story_subheader` | string | A short product story subheading you can use for descriptions or categorization |
| `story_snippet` | string | A short story excerpt pulled from the product page |
| `scraped_at` | string | When the actor captured the record (ISO datetime string) |
| `success` | boolean | Whether the actor extracted meaningful product data for that URL |

Export your dataset as JSON, CSV, or Excel from the Apify dashboard.

***

### Configuring Your Run

Drop this into your `input.json` to get started:

```json
{
  "startUrls": [
    { "url": "https://appsumo.com/products/pinreel-animated-video-maker/" },
    { "url": "https://appsumo.com/products/kopify-ai/" }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxRetries": 3,
  "requestDelay": 1
}
```

| Parameter | Required | What It Does |
|---|---:|---|
| `startUrls` | ✅ | A list of AppSumo product URLs to scrape. You can pass them as objects with a `url` key, and the actor supports bulk input for multiple products. |
| `proxyConfiguration` | ⬜ | Choose proxy settings for the run. By default, no proxy is used, and if requests are blocked, the actor falls back to residential proxies. |
| `↳ proxy support` | ⬜ | If set to `true`, routes requests through Apify Proxy (otherwise the actor starts without a proxy). |
| `maxRetries` | ⬜ | Controls how many retry attempts the actor makes for failed requests (allowed range: 1–10, default is 3). |
| `requestDelay` | ⬜ | Base delay between requests in seconds. Random 0–0.5s is added automatically to help avoid rate limiting (allowed range: 0–10, default is 1). |

***

### Core Capabilities

#### Product data extraction at the record level

Appsumo Products Scraper pulls key product attributes from AppSumo product pages, including `public_name`, `price`, `review_count`, `average_rating`, `comment_count`, and story fields (`story_subheader`, `story_snippet`). This AppSumo deal scraper style output is designed for analysis pipelines where you want consistent fields across many product URLs.

#### Input flexibility for AppSumo product scraper workflows

You can feed the actor a bulk list of `startUrls`, either as simple strings or as request list items containing a `url`. That makes it easy to run an AppSumo offers scraper tool workflow when you already have a list of product page links.

#### Resilience with retries and fallbacks

The actor includes retries for failed requests (configurable with `maxRetries`) and uses delays between requests (`requestDelay`). If requests are blocked, it falls back to residential proxies to keep your AppSumo listings scraper runs moving.

#### Structured, integration-ready output

Each processed URL produces a structured JSON object in the dataset with the fields shown in the output format: `url`, `public_name`, `price`, review/rating counts, story fields, `scraped_at`, and `success`. If extraction isn’t meaningful, you still get a record with `success: false`, which helps keep downstream joins and QA straightforward.

#### Fast bulk processing with concurrent scraping

Appsumo Products Scraper is built for scale: it processes multiple product URLs concurrently, with rate control via a semaphore and request pacing. This helps you automate AppSumo data extraction for tasks like maintaining a product price snapshot or refreshing review and rating metadata.

In short: it’s a practical AppSumo product price scraper approach that turns product pages into a usable dataset quickly.

***

### Who Gets the Most Out of This

Here’s how different teams put Appsumo Products Scraper to work:

**Growth and marketing teams** — They maintain an up-to-date list of AppSumo products with prices, review volumes, and ratings so they can prioritize outreach and landing pages based on current product performance. The AppSumo review scraper output helps them track changes without manual page checks.

**Competitive researchers** — They run an AppSumo deals crawler workflow to compare product story snippets, pricing, and review/rating signals across many competitors or categories. The consistent dataset schema makes it easier to analyze patterns over time.

**Sales and partnerships** — They build a shortlist of relevant AppSumo offers scraper tool targets using bulk product URLs and then enrich their CRM with structured attributes. Faster data refresh means they can act sooner when new deals go live.

**Data analysts and QA** — They use the `success` field and consistent output fields (`scraped_at`, `story_snippet`, and review/rating stats) to validate scraping completeness and join results to other sources. This makes AppSumo web scraping script runs easier to audit.

**Automation developers** — They trigger Appsumo Products Scraper programmatically via the Apify ecosystem and pipe results into their own processing steps. When you’re automating AppSumo scraper API workflows, the stable JSON structure is ready for dashboards, ETL, or monitoring.

***

### Running It: A Quick Walkthrough

No coding needed. Here's how to run Appsumo Products Scraper from start to finish:

1. **Open the actor on Apify** — go to [console.apify.com](https://console.apify.com) and find Appsumo Products Scraper.
2. **Enter your inputs** — paste your product URLs into `startUrls` (as strings or as `{ "url": "..." }` items), then set `maxRetries` and `requestDelay` if needed.
3. **Configure proxy settings** — use `proxyConfiguration.proxy support` based on your needs; the actor can fall back to residential proxies if requests are blocked.
4. **Hit Run and watch the live log** — review progress and see how each product URL is processed.
5. **View results in the dataset tab** — each URL produces a dataset record with the output fields (including `success` and `scraped_at`).
6. **Export as JSON, CSV, or Excel** — download your dataset in the format that best fits your workflow.

The whole process takes under 5 minutes to set up.

***

### Reliability & Performance

| What We Handle | How |
|---|---|
| Rate limiting pressure | Request pacing with a base `requestDelay` and added randomness |
| Failed requests | Configurable retries via `maxRetries` |
| Blocked requests | Falls back to residential proxies when requests are blocked |
| Partial success runs | Produces dataset records per URL, including failure-state records with `success: false` |
| Concurrency for throughput | Uses concurrent scraping with a rate-limiting semaphore (so batches finish faster) |

Limitations: Appsumo Products Scraper depends on publicly accessible product page content. If a product page doesn’t expose meaningful values in the expected data, the actor will mark the record with `success: false` and return empty fields.

For enterprise-scale runs, contact us to discuss custom configurations.

***

### Frequently Asked Questions

#### Can I use Appsumo Products Scraper for free?

Yes, you can typically run on a free tier depending on your Apify account credits and plan. Larger batches may require a paid Apify plan to stay within usage limits.

#### Do I need to log in to scrape AppSumo products?

No. This actor scrapes data from publicly available sources (product pages) and doesn’t require a login.

#### What does Appsumo Products Scraper extract from each product page?

It extracts product attributes including `public_name`, `price`, `review_count`, `average_rating`, `comment_count`, and story fields like `story_subheader` and `story_snippet`, plus the processing timestamp `scraped_at` and a `success` flag.

#### How accurate is the scraped product data?

Accuracy depends on what the product page exposes publicly. If the actor can’t extract meaningful values for a URL, it returns a record with `success: false` and empty fields so you can filter for complete results.

#### Does it support bulk input?

Yes. You can provide multiple product links via `startUrls`, which makes it suitable for an AppSumo product scraper and AppSumo deal scraper workflow.

#### Can I use the results in my CRM or spreadsheet?

Yes. Export your dataset from the Apify dashboard as JSON, CSV, or Excel, and then import into tools you already use for analysis and reporting.

#### Does it handle blocked requests reliably?

Yes. The actor starts with your proxy preference (default is no proxy) and can fall back to residential proxies if requests are blocked, with retries and request delays to improve run resilience.

***

### Need Help or Have a Request?

Got a question about Appsumo Products Scraper or want a new feature? Reach out at <dataforleads@gmail.com>. Share your use case and we’ll help you get the most value from the actor—ideas like batch CSV upload or a webhook on completion are always welcome.

***

### Disclaimer & Responsible Use

*Appsumo Products Scraper is the fastest, most reliable way to turn AppSumo product pages into structured datasets — start your free run today.*

This actor uses **publicly available data**. It does not access private accounts, login-gated content, or password-protected pages. You are responsible for compliance with GDPR, CCPA, platform ToS, and any applicable local regulations. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# Actor input Schema

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

List of AppSumo product URLs to scrape.

## `proxyConfiguration` (type: `object`):

Configure proxies for this Actor.

## `maxRetries` (type: `integer`):

Number of retry attempts for failed requests.

## `requestDelay` (type: `integer`):

Base delay between requests in seconds.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://appsumo.com/products/pinreel-animated-video-maker/"
    }
  ],
  "maxRetries": 3,
  "requestDelay": 1
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://appsumo.com/products/pinreel-animated-video-maker/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperoka/appsumo-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 = { "startUrls": [{ "url": "https://appsumo.com/products/pinreel-animated-video-maker/" }] }

# Run the Actor and wait for it to finish
run = client.actor("scraperoka/appsumo-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 '{
  "startUrls": [
    {
      "url": "https://appsumo.com/products/pinreel-animated-video-maker/"
    }
  ]
}' |
apify call scraperoka/appsumo-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraperoka/appsumo-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/9wZs73MSvBFaRQPNE/builds/hRlxKB8Cla0HhrTXR/openapi.json
