# Apify Store Scraper (`igolaizola/apify-store-scraper`) Actor

Scrape the Apify Store at scale. Collect actor listings, descriptions, stats, pricing, categories, and tags. Filter by query, use Apify Proxy, and export JSON/CSV for market research, competitor tracking, and trend analysis.

- **URL**: https://apify.com/igolaizola/apify-store-scraper.md
- **Developed by:** [Iñigo Garcia Olaizola](https://apify.com/igolaizola) (community)
- **Categories:** Developer tools, Lead generation, Automation
- **Stats:** 26 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## 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

## Apify Store Scraper — scrape actors & stats from the Apify marketplace

> **Looking for developer profiles instead of actor listings?**\
> Use the **Apify Developers Scraper** 👉 [Open actor](https://apify.com/igolaizola/apify-developers-scraper?fpr=ig)

Collect public data about actors listed on the \[Apify Store]: titles, names, owners, categories, descriptions, images, usage stats, pricing model, and more—perfect for market research, competitive analysis, lead lists, or internal dashboards.

### 🤖 What does Apify Store Scraper do?

This actor fetches **public actor listings** from the Apify Store and saves them to a dataset (JSON/CSV). You can:

- 🔎 **Search** by a free-text query (title, description, etc.)
- 📊 **Export** rich stats (runs, users, recent usage, success rates)
- 🧩 **Capture** metadata (owner, categories, pricing model, images)

It supports an optional `query` filter and a `maxItems` cap for output size.

### 💡 Why use this scraper?

- 📈 Track trending tools, categories, and publishers on Apify
- 🧪 Build internal catalogs or “best of” lists with usage metrics
- 🤝 Generate lead lists (creators, emails if publicly listed in bios/readmes)
- 🧠 Benchmark your actors vs. category peers

### 🚀 How to use

1. Add the actor to your Apify account.
2. (Optional) Set a **Search Query** to filter by keywords.
3. Set `maxItems` (required).
4. Run the actor and download results from the **Dataset** tab.

**Tip:** The default proxy uses the Apify **RESIDENTIAL** group for reliability.

### 📝 Input parameters

Supply inputs as JSON. Only `maxItems` is required.

| Parameter            | Type / Options              | Default | Description                                                                              |
| -------------------- | --------------------------- | ------- | ---------------------------------------------------------------------------------------- |
| `maxItems`           | integer (≥ 1)               | `10`    | **Required.** Maximum number of actor records to save.                                   |
| `query`              | string                      | `""`    | Optional text filter to search actors by title/description/etc. Empty means “no filter”. |
| `proxyConfiguration` | object (Apify proxy config) |         | Proxy settings. Prefill uses Apify `RESIDENTIAL` proxy group.                            |

### 🔧 Examples

Get the first 50 actors (no filter):

```json
{
  "maxItems": 50,
  "query": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

Search for “tiktok” and limit to 25 actors:

```json
{
  "maxItems": 25,
  "query": "tiktok",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

Research “crawler” tools (top 200):

```json
{
  "maxItems": 200,
  "query": "crawler",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### 📊 Output

Each dataset item corresponds to one actor. Common fields include:

- `title`, `name`, `username`, `description`

- `categories` (array), `pictureUrl`, `notice`

- `userFullName`, `userPictureUrl`

- `currentPricingInfo` (pricing model and details if available)

- `stats`:
  - `totalBuilds`, `totalRuns`, `totalUsers`
  - `totalUsers7Days`, `totalUsers30Days`, `totalUsers90Days`
  - `lastRunStartedAt`, `totalMetamorphs`
  - `publicActorRunStats30Days` (SUCCEEDED, FAILED, TIMED-OUT, ABORTED, TOTAL)

- `objectID` (internal/store identifier)

**Sample (shortened):**

```json
{
  "title": "Website Content Crawler",
  "name": "website-content-crawler",
  "username": "apify",
  "stats": {
    "totalBuilds": 357,
    "totalRuns": 18969894,
    "totalUsers": 76615,
    "totalUsers7Days": 2918,
    "totalUsers30Days": 8888,
    "totalUsers90Days": 22035,
    "lastRunStartedAt": "2025-09-24T17:16:16.626Z",
    "totalMetamorphs": 476,
    "publicActorRunStats30Days": {
      "ABORTED": 9570,
      "FAILED": 11353,
      "SUCCEEDED": 1212273,
      "TIMED-OUT": 38128,
      "TOTAL": 1273677
    }
  },
  "description": "Crawl websites and extract text content to feed AI models...",
  "categories": ["AI", "DEVELOPER_TOOLS"],
  "pictureUrl": "https://…/CleanShot.png",
  "notice": "NONE",
  "userPictureUrl": "https://…/profile.png",
  "userFullName": "Apify",
  "currentPricingInfo": { "pricingModel": "FREE" },
  "objectID": "aYG0l9s7dbB7j3gbS"
}
```

### 💳 Pricing

Runs consume Apify platform resources (compute units, storage, proxy). The actor itself does not add extra fees beyond standard Apify usage. See **Apify Pricing** for plan details.

### 📥 Integrations

- Export results as **JSON**, **CSV**, or **Parquet**.
- Stream to your app or warehouse via the Apify API.
- Connect with Zapier/Make, webhooks, or your own pipelines.

### 🆘 Support

Need help or a custom field? Open an issue or message me on Telegram: **[t.me/igolaizola](https://t.me/igolaizola)**.

### ⚖️ Legal & Ethics

- Review and comply with Apify's terms and acceptable-use policies.
- Use results responsibly and respect applicable laws (e.g., GDPR/CCPA).
- Do not misuse scraped data or misrepresent affiliations.

### 📜 Disclaimer

This actor is an independent tool and is **not** affiliated with, endorsed, or sponsored by Apify. All trademarks are the property of their respective owners.

# Actor input Schema

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

Maximum number of items to scrape

## `query` (type: `string`):

Search query to filter actors by. If empty, all actors will be scraped.

## `fetchInput` (type: `boolean`):

When enabled, fetches each actor detail page and includes its input JSON schema in the `input` field.

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

Select proxies to be used.

## Actor input object example

```json
{
  "maxItems": 10,
  "query": "",
  "fetchInput": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("igolaizola/apify-store-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 = { "proxyConfiguration": { "useApifyProxy": False } }

# Run the Actor and wait for it to finish
run = client.actor("igolaizola/apify-store-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 '{
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call igolaizola/apify-store-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,igolaizola/apify-store-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/oOH5qOUqtxQb4Op3g/builds/dCfe5EhnfFsShYVGg/openapi.json
