# Zapier Templates and Apps Scraper (`scraper_guru/zapier-template-analyzer`) Actor

Scrape Zapier templates, workflow steps, app integrations, categories, and popularity signals for automation research and competitive analysis.

- **URL**: https://apify.com/scraper\_guru/zapier-template-analyzer.md
- **Developed by:** [LIAICHI MUSTAPHA](https://apify.com/scraper_guru) (community)
- **Categories:** Automation, Developer tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

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

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

## Zapier Templates and Apps Scraper

Extract Zapier templates, workflow steps, app dependencies, categories, and app-directory records as structured JSON. Use the data for automation research, integration planning, content discovery, and competitive analysis.

The Actor reads Zapier's server-rendered data directly. It does not require a browser, and direct requests normally work without paid proxies.

### Features

- Scrape Zapier's template library and template category pages
- Analyze individual Zapier template detail pages
- Extract nested workflows, steps, actions, and app identifiers
- Detect templates that use AI-related tools or language
- Scrape Zapier's app directory and app category pages
- Filter listing records by keyword
- Export JSON, CSV, Excel, XML, RSS, or HTML through Apify datasets
- Use optional Apify proxies when your network requires them

### Use Cases

- Find high-demand Zapier automation ideas
- Compare Zapier templates with n8n, Make, or other automation ecosystems
- Prioritize SaaS integrations using app-directory and workflow data
- Research AI automation patterns and common app combinations
- Build market reports, searchable catalogs, or recommendation systems
- Discover topics for Zapier tutorials and implementation services

### Input

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `startUrls` | array | Zapier templates | Template listings, template details, app directory, or app category URLs |
| `maxItems` | integer | `10` | Maximum records to save; `0` saves every record available on the supplied pages |
| `includeDetails` | boolean | `true` | Open templates and extract workflow steps, apps, dates, and AI signals |
| `keyword` | string | empty | Filter by title, description, category, or template type |
| `concurrency` | integer | `1` | Parallel detail requests, from 1 to 10 |
| `proxyConfiguration` | object | disabled | Optional Apify proxy configuration |

#### Example input: template research

```json
{
  "startUrls": [
    { "url": "https://zapier.com/templates" }
  ],
  "maxItems": 25,
  "includeDetails": true,
  "keyword": "AI",
  "concurrency": 1
}
```

#### Example input: app directory

```json
{
  "startUrls": [
    { "url": "https://zapier.com/apps" },
    { "url": "https://zapier.com/apps/categories/artificial-intelligence" }
  ],
  "maxItems": 40,
  "includeDetails": false
}
```

### Output

Each dataset item has `record_type` set to `template` or `app`.

#### Template record

```json
{
  "record_type": "template",
  "template_id": "lqLYHjWWPbjjuOu55D2gZ",
  "title": "Manage FAQs and requests from Slack with AI",
  "description": "Transform requests into an intake process and a growing knowledge base.",
  "category": "Tickets & incidents",
  "template_type": "Multi-product solution",
  "url": "https://zapier.com/templates/details/helpdesk-automation-template-slack-clickup",
  "workflow_count": 11,
  "step_count": 69,
  "app_count": 10,
  "apps": ["SlackCLIAPI@1.14.9", "AICLIAPI@3.1.12"],
  "uses_ai": true,
  "workflows": [
    {
      "id": "_ZAP_1",
      "name": null,
      "steps": [
        {
          "id": "_GEN_1",
          "title": "New message posted to channel",
          "type": "read",
          "action": "channel_message",
          "app": "SlackCLIAPI@1.14.9"
        }
      ]
    }
  ],
  "scraped_at": "2026-08-29T12:00:00.000Z"
}
```

#### App record

```json
{
  "record_type": "app",
  "app_id": "0d71fb90-f233-4ce0-bdb1-3a2c887dfadf",
  "slug": "google-sheets",
  "name": "Google Sheets",
  "description": "Create, edit, and share spreadsheets with Google Sheets.",
  "partner_tier": "PLATINUM",
  "is_premium": false,
  "is_beta": false,
  "url": "https://zapier.com/apps/google-sheets/integrations",
  "scraped_at": "2026-08-29T12:00:00.000Z"
}
```

Results are available in the run's default dataset. The `STATS` key in the default key-value store contains record counts and any non-fatal detail request errors.

### How to Run

1. Open the Actor in Apify Console.
2. Add one or more supported Zapier URLs.
3. Choose the result limit and whether to extract workflow details.
4. Click **Start**.
5. Open **Dataset** to inspect or download the records.

#### Python API

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("scraper_guru/zapier-template-analyzer").call(run_input={
    "startUrls": [{"url": "https://zapier.com/templates"}],
    "maxItems": 10,
    "includeDetails": True,
})

items = client.dataset(run["defaultDatasetId"]).list_items().items
```

#### JavaScript API

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('scraper_guru/zapier-template-analyzer').call({
    startUrls: [{ url: 'https://zapier.com/apps' }],
    maxItems: 20,
    includeDetails: false,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

### Performance and Cost

The Actor uses HTTP requests instead of a headless browser, reducing startup time and memory usage. Listing-only runs are fastest. Deep template extraction makes one additional request per template and returns substantially richer workflow data.

Apify platform usage depends on run duration, memory, and any optional proxy traffic. Start with a small `maxItems` value when testing a new input.

### FAQ

#### Which Zapier URLs are supported?

Use `/templates`, template category URLs, `/templates/details/...`, `/apps`, and `/apps/categories/...` URLs on `zapier.com`.

#### Do I need residential proxies?

Usually no. The Actor defaults to direct HTTP requests. Configure an Apify proxy only if direct requests are restricted in your environment.

#### What does deep extraction add?

With `includeDetails` enabled, template records include nested workflow steps, app identifiers, workflow and step counts, AI detection, descriptions, and source dates when Zapier exposes them.

#### Why can an app-directory run return fewer items than `maxItems`?

Zapier's server-rendered app page exposes a finite page of app records. `maxItems` is a ceiling, not a guarantee.

#### Can I scrape all visible templates?

Set `maxItems` to `0`. For routine monitoring, smaller scheduled runs are more efficient.

#### Is this Actor affiliated with Zapier?

No. Zapier is a trademark of its respective owner. Use the Actor responsibly and follow applicable terms and laws.

### Support

For custom automation datasets, integrations, or scraper development, contact `mustaphaliaichi@gmail.com` or visit [MuLIAICHI on GitHub](https://github.com/MuLIAICHI).

# Actor input Schema

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

Use a template listing, template category, template detail, app directory, or app category URL.

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

Maximum number of records to save. Use 0 for every record available on the supplied pages.

## `includeDetails` (type: `boolean`):

Open each template to extract workflows, steps, app dependencies, dates, and AI signals.

## `keyword` (type: `string`):

Return records whose title, description, category, or type contains this keyword.

## `concurrency` (type: `integer`):

Number of template detail pages requested in parallel.

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

Optional proxy settings. Direct requests normally work and avoid proxy charges.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://zapier.com/templates"
    }
  ],
  "maxItems": 10,
  "includeDetails": true,
  "keyword": "",
  "concurrency": 1,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

## `templates` (type: `string`):

No description

## `apps` (type: `string`):

No description

## `stats` (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 = {
    "startUrls": [
        {
            "url": "https://zapier.com/templates"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper_guru/zapier-template-analyzer").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://zapier.com/templates" }],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scraper_guru/zapier-template-analyzer").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://zapier.com/templates"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraper_guru/zapier-template-analyzer --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraper_guru/zapier-template-analyzer"
        }
    }
}

```

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/AZdErCeegr4IpiyRg/builds/2UarGFRcBBKRQlqP6/openapi.json
