# Snapcraft Apps Scraper (`parseforge/snapcraft-apps-scraper`) Actor

Searches the Snapcraft store by keyword and returns each matching snap app as a flat row with its publisher, version, license, description, and install metrics.

- **URL**: https://apify.com/parseforge/snapcraft-apps-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Automation, Other
- **Stats:** 2 total users, 1 monthly users, 93.1% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.95 / 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/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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Snapcraft Apps Scraper

**Scrape Snapcraft Linux app listings by keyword, up to a million per run.** Every app comes with its publisher, version, license, description, and install metrics. No login or API key. Export to CSV, JSON, Excel, or XML.

Snapcraft's storefront holds thousands of Linux snap packages, but browsing it manually or through the web UI makes bulk analysis slow. This Actor searches the public Snapcraft store by any keyword you give it and returns every matching app in a clean, flat dataset. You get the full listing data for each snap, ready for market research, competitive analysis, or catalog building.

| Who uses it | What they scrape Snapcraft for |
|---|---|
| Linux software vendors | Monitor competitor snap packages, their descriptions, and version updates. |
| DevOps engineers | Build an internal catalog of available snaps for a curated enterprise software list. |
| Market researchers | Analyze the Linux desktop application ecosystem by publisher, license, or category. |
| Open-source maintainers | Track how similar projects are packaged and described on the Snap store. |

### What it does

This Actor searches the Snapcraft store by a keyword and returns each matching app as a flat row with its metadata.

- 🔍 **Keyword search:** feed it any term like vlc, spotify, or blender and get every matching snap.
- 📦 **Full listing data:** publisher name, version, license, description, and install base per app.
- 📊 **Bulk collection:** set maxItems up to 1,000,000 to pull the entire matching catalog in one run.
- 📁 **Multi-format export:** download your dataset as CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Snapcraft data

**📈 Monitor competitor snap packages.**

A Linux ISV searches for a product category keyword weekly, collects every matching snap, and compares version numbers and descriptions against their own listing.

**📋 Build an enterprise software catalog.**

A DevOps team scrapes all snaps matching a set of approved keywords, filters by publisher and license, and publishes an internal allowed-apps list for workstations.

**🔬 Research the Linux app ecosystem.**

A market analyst runs broad keyword searches across the Snap store, aggregates install metrics and publisher data, and identifies which niches are growing fastest.

**🛡️ Audit open-source packaging.**

An open-source maintainer searches for projects similar to their own, reviews how each is described and licensed on Snapcraft, and updates their own snap metadata to match community expectations.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key needed** | Reads the public Snapcraft store search, no registration or token required. |
| **Flat row per app** | Every snap comes back as one row with a fixed schema, ready for spreadsheets or databases. |
| **Publisher and license** | See who published each snap and under what license, useful for compliance checks. |
| **Install metrics** | Each listing includes the install base where Snapcraft exposes it. |

### How it compares

No other Store actor targets Snapcraft the same way, so the honest comparison is with the alternatives teams actually weigh.

| | Snapcraft Apps Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When Snapcraft changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor with a single search query and cap the total number of apps returned. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "searchQuery": "vlc",
  "maxItems": 10
}
```

A larger pull:

```json
{
  "searchQuery": "vlc",
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.011 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $1.10 |
| 1,000 results | $11.00 |
| 10,000 results | $110.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Snapcraft Apps Scraper](https://apify.com/parseforge/snapcraft-apps-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Snapcraft through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/snapcraft-apps-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check the spelling of your searchQuery. Try a shorter or more general keyword. The Snapcraft search may not have any snaps matching your exact term.

**The run stopped before reaching my maxItems.**

The Snapcraft search returned fewer results than your maxItems value. The Actor stops when there are no more pages of results for your query.

**Some fields are empty in my dataset.**

Not every Snapcraft listing fills in every field. If a publisher did not provide a license or a description, that field will be empty in your row.

**The Actor is timing out.**

Increase the run timeout in your Apify task settings. For very large maxItems values, consider splitting the work across multiple runs with narrower keywords.

**I am getting blocked or seeing errors.**

Add a short delay between requests by using the Apify platform's request queue settings. If the issue persists, contact support with your run ID.

### FAQ

| Question | Answer |
|---|---|
| Do I need a Snapcraft account or API key? | No. This Actor reads the public Snapcraft store search pages directly. No registration, no token, and no OAuth flow are required. |
| What data does each row contain? | Each row returns the app name, publisher, version, license, description, category, and install metrics as shown on the public Snapcraft listing. |
| Can I scrape all apps in the Snapcraft store? | You can set maxItems up to 1,000,000 and use a broad keyword. The Actor will return every matching snap the store search surfaces for that term. |
| How do I search for an exact app name? | Enter the exact name as the searchQuery, for example vlc or firefox. The Snapcraft search will return that app and any similarly named results. |
| What export formats are supported? | You can export your dataset in CSV, JSON, Excel, or XML from the Apify platform after the run completes. |
| Does this Actor handle pagination automatically? | Yes. It follows the Snapcraft search pagination until it reaches your maxItems limit or no more results exist. |
| Can I filter by publisher or license during the run? | The Actor collects all matching results for your keyword. You can filter by publisher or license after the run in your dataset using tools like Excel or Pandas. |
| Is this Actor affiliated with Canonical or Snapcraft? | No. This is an independent scraper that reads publicly available web pages from the Snapcraft store. It is not endorsed by or affiliated with Canonical Ltd. |
| How often can I run this Actor? | You can schedule it as frequently as you need. For monitoring, a daily or weekly schedule works well. Be mindful of the load you place on the Snapcraft servers. |
| What happens if my search query returns no results? | The run will complete with an empty dataset. Check your spelling or try a broader keyword. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Canonical Ltd. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `searchQuery` (type: `string`):

Required. The term to search for in the Snapcraft store (for example vlc, spotify, blender).

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

How many apps to collect per run.

## Actor input object example

```json
{
  "searchQuery": "vlc",
  "maxItems": 10
}
```

# 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 = {
    "searchQuery": "vlc",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/snapcraft-apps-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 = {
    "searchQuery": "vlc",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/snapcraft-apps-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 '{
  "searchQuery": "vlc",
  "maxItems": 10
}' |
apify call parseforge/snapcraft-apps-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/snapcraft-apps-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/hombsEEIzV57ZDdaI/builds/1Zid5auhxNlJM3kNd/openapi.json
