# Getapp.Com Scraper (`coder_luffy/getapp-com-scraper`) Actor

GetApp.com scraper that collects listings, ratings, and review breakdowns from any category page, so you can watch a market without checking it by hand.

- **URL**: https://apify.com/coder\_luffy/getapp-com-scraper.md
- **Developed by:** [Luffy](https://apify.com/coder_luffy) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.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

![GetApp.com Scraper](https://i.imgur.com/9UOfVV0.png)

## GetApp.com Scraper

Extract software listings from GetApp.com category and search pages, including ratings, review breakdowns, features, and direct product URLs.

### What it does

GetApp.com organizes thousands of business software tools into categories. This scraper takes any category or search page URL and collects all listings, paginating automatically.

For each listing it collects:

- Product name, slug, and direct URL
- Logo URL and tagline
- Overall average rating and total review count
- Star breakdown (1 through 5 stars)
- Sub-scores: value for money, features, ease of use, customer support, and likelihood to recommend
- Popular features
- Category name and URL
- Premium status and Category Leader flag

### Why it matters

GetApp.com is owned by Gartner Digital Markets, the same group behind Capterra and Software Advice. Reviews are verified. Ratings split into sub-scores rather than collapsing to a single number, so you can see whether a product scores well on features but poorly on support, or vice versa.

Schedule it and it gets more useful. Weekly runs give you a time-series. You can catch a competitor's rating dropping after a bad release, or see a new tool building momentum months before it shows up in analyst reports.

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `urls` | Array of strings | required | One or more GetApp.com category or search page URLs |
| `maxItems` | Integer | 50 | Maximum listings to collect across all URLs |
| `requestTimeoutSecs` | Integer | 30 | Per-request timeout in seconds (5 to 120) |

#### Example input

```json
{
  "urls": [
    "https://www.getapp.com/marketing-software/marketing-automation/",
    "https://www.getapp.com/marketing-software/lead-generation/"
  ],
  "maxItems": 100
}
````

Each page shows 25 listings. `maxItems: 50` gets you 2 pages per URL. Set it to `100000` to pull everything in a category.

#### Popular category URLs to try

**Marketing**

- https://www.getapp.com/marketing-software/marketing-automation/
- https://www.getapp.com/marketing-software/lead-generation/
- https://www.getapp.com/marketing-software/email-marketing/
- https://www.getapp.com/marketing-software/social-media/

**Sales & CRM**

- https://www.getapp.com/customer-management-software/crm/
- https://www.getapp.com/sales-software/sales-force-automation/
- https://www.getapp.com/customer-management-software/customer-engagement/

**HR & People**

- https://www.getapp.com/hr-human-resources-software/human-resources/
- https://www.getapp.com/hr-human-resources-software/applicant-tracking/
- https://www.getapp.com/hr-human-resources-software/payroll/

**Finance & Accounting**

- https://www.getapp.com/finance-accounting-software/accounting/
- https://www.getapp.com/finance-accounting-software/billing-and-invoicing/

**Project Management & Collaboration**

- https://www.getapp.com/project-management-planning-software/project-management/
- https://www.getapp.com/collaboration-productivity-software/collaboration/
- https://www.getapp.com/collaboration-productivity-software/task-management/

**Customer Support**

- https://www.getapp.com/customer-service-support-software/help-desk/
- https://www.getapp.com/customer-service-support-software/live-chat/

**Filtered by business size**

- https://www.getapp.com/marketing-software/marketing-automation/org/small-business/
- https://www.getapp.com/customer-management-software/crm/org/enterprise/

Tip: append `?page=2`, `?page=3`, etc. to jump to a specific page, or just set `maxItems` high and let the actor handle pagination.

### Output

Each item represents one software listing.

```json
{
  "productId": "2143ac98-b65c-4bb1-ae6b-a6d200b7a22f",
  "productName": "Zoho CRM",
  "slug": "zoho-crm",
  "productUrl": "https://www.getapp.com/marketing-software/a/zoho-crm/",
  "logoUrl": "https://gdm-catalog-fmapi-prod.imgix.net/ProductLogo/82a342f4.png",
  "tagline": "Customer relationship management solution",
  "productDescription": "Zoho CRM is a cloud-based CRM solution that helps businesses of all sizes close deals smarter, better and faster.",
  "ratingAvg": 4.31,
  "numReviews": 6967,
  "isPremium": true,
  "isCategoryLeader": false,
  "mostVisited": false,
  "categoryLeadersScore": null,
  "stars1Count": 82,
  "stars2Count": 171,
  "stars3Count": 782,
  "stars4Count": 2371,
  "stars5Count": 3561,
  "ratingValue": "4.29",
  "ratingFeatures": "4.27",
  "ratingEase": "4.15",
  "ratingSupport": "4.08",
  "likelihoodToRecommend": "6.82",
  "popularFeatures": ["A/B Testing", "Access Controls/Permissions", "Activity Dashboard"],
  "categoryName": "Marketing Automation",
  "categoryUrl": "https://www.getapp.com/marketing-software/marketing-automation/",
  "pageNumber": 1,
  "sourceUrl": "https://www.getapp.com/marketing-software/marketing-automation/",
  "scrapedAt": "2026-04-19T10:00:00.000000+00:00",
  "error": null
}
```

#### Output in Apify table view

![Table view](https://i.imgur.com/rESup9U.png)

#### Output in Apify JSON view

![JSON view](https://i.imgur.com/6VlUd3O.png)

### Pagination

The actor reads the total page count from each page and paginates automatically.

- `maxItems: 25` = 1 page per URL
- `maxItems: 50` = 2 pages per URL
- `maxItems: 250` = 10 pages per URL
- `maxItems: 100000` = everything available

### Scheduled runs

1. Open your actor and click Schedules
2. Set a cron expression. `0 8 * * 1` runs every Monday at 8 AM
3. Save

Each run appends fresh data to your dataset. After a few weeks you have a time-series you can use to track rating trends, spot new entrants, or catch reputation drops early.

### Best practices

**Start small.** Set `maxItems` to 25 or 50 on your first run to confirm the category URL is correct and the output looks right before scaling up.

**One URL per category.** Splitting categories into separate runs makes it easier to identify which URL a result came from and to re-run a single category without re-scraping everything.

**Use filters in the URL.** GetApp.com lets you filter by business size and other facets directly in the URL (e.g. `/org/small-business/`). Pass those filtered URLs directly rather than post-processing large result sets.

**Set a schedule.** A single snapshot is useful. A weekly series is much more useful. Even a monthly run is enough to track meaningful rating shifts in most categories.

**Export to Google Sheets.** In Apify, connect your dataset to Google Sheets via the integration tab. New runs append rows automatically, giving you a live spreadsheet that updates on every scheduled run.

**Watch `isCategoryLeader`.** Products with the Category Leader badge have cleared a threshold on ratings and review volume. Filtering to `isCategoryLeader: true` is a quick way to build a shortlist of credible options in any category.

### Use cases

Useful for competitive tracking (watch ratings shift week to week), procurement research (sub-scores beat single-number averages when shortlisting vendors), content and SEO work (find where feature coverage in a category is thin), and building company lists from actual category data rather than ad-hoc searches.

### About GetApp.com

GetApp.com is a software review platform owned by Gartner Digital Markets, alongside Capterra and Software Advice. It covers thousands of software categories with verified buyer reviews. The Category Leader badge is calculated from ratings, review volume, and engagement — products with it appear at the top of category pages.

### Related actors

If you work with software review platforms, these actors cover the rest of the Gartner Digital Markets family:

- [Capterra Scraper](https://apify.com/kawsar/capterra-scraper) — scrape software listings and category pages from Capterra
- [Capterra Reviews Scraper](https://apify.com/kawsar/capterra-reviews-scraper) — collect individual user reviews from Capterra product pages

***

[![Visit Apify](https://i.imgur.com/QwbxSKQ.png)](https://apify.com/kawsar)

# Actor input Schema

## `urls` (type: `array`):

One or more GetApp.com category or search page URLs to scrape. Each URL is a category listing page such as https://www.getapp.com/marketing-software/marketing-automation/ or https://www.getapp.com/marketing-software/lead-generation/

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

Maximum number of software listings to collect in total across all URLs. Each GetApp.com page shows 25 listings, so 50 = 2 pages, 250 = 10 pages. Set to a large number to collect everything available.

## `requestTimeoutSecs` (type: `integer`):

Per-request timeout in seconds.

## Actor input object example

```json
{
  "urls": [
    "https://www.getapp.com/customer-management-software/crm/"
  ],
  "maxItems": 50,
  "requestTimeoutSecs": 30
}
```

# 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 = {
    "urls": [
        "https://www.getapp.com/marketing-software/marketing-automation/",
        "https://www.getapp.com/marketing-software/lead-generation/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("coder_luffy/getapp-com-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 = { "urls": [
        "https://www.getapp.com/marketing-software/marketing-automation/",
        "https://www.getapp.com/marketing-software/lead-generation/",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("coder_luffy/getapp-com-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 '{
  "urls": [
    "https://www.getapp.com/marketing-software/marketing-automation/",
    "https://www.getapp.com/marketing-software/lead-generation/"
  ]
}' |
apify call coder_luffy/getapp-com-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Getapp.Com Scraper",
        "description": "GetApp.com scraper that collects listings, ratings, and review breakdowns from any category page, so you can watch a market without checking it by hand.",
        "version": "0.0",
        "x-build-id": "keophqJOh9pJqWG0m"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/coder_luffy~getapp-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-coder_luffy-getapp-com-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/coder_luffy~getapp-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-coder_luffy-getapp-com-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/coder_luffy~getapp-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-coder_luffy-getapp-com-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": {
                    "urls": {
                        "title": "Category / search URLs",
                        "type": "array",
                        "description": "One or more GetApp.com category or search page URLs to scrape. Each URL is a category listing page such as https://www.getapp.com/marketing-software/marketing-automation/ or https://www.getapp.com/marketing-software/lead-generation/",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Maximum number of software listings to collect in total across all URLs. Each GetApp.com page shows 25 listings, so 50 = 2 pages, 250 = 10 pages. Set to a large number to collect everything available.",
                        "default": 50
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout (seconds)",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Per-request timeout in seconds.",
                        "default": 30
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
