# ModelScope Models Scraper (`parseforge/modelscope-models-scraper`) Actor

Scrapes ModelScope public model listings from a search query. Returns each model as a flat row with downloads, stars, task, and organization metadata.

- **URL**: https://apify.com/parseforge/modelscope-models-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** AI, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 86.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.52 / 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)

### ModelScope Models Scraper

**Scrape ModelScope model listings by search query, task, or organization, up to a million per run.** Every model comes with its downloads, stars, last update time, and task tags. No API key required. Export to CSV, JSON, Excel, or XML.

ModelScope's web catalog holds thousands of public machine learning models, but browsing it manually is slow and you cannot export a structured list. This Actor reads the public search API directly, lets you filter by task or organization, and returns every matching model in one flat table.

| Who uses it | What they scrape ModelScope for |
|---|---|
| ML researchers | Survey which model architectures are trending for a given task. |
| Developer tool builders | Populate a model directory with up-to-date metadata from ModelScope. |
| Technical product managers | Track competitor model releases and their adoption metrics. |

### What it does

This Actor collects ModelScope model listings from a free-text search query and returns each model as a flat row.

- 🔍 **Free-text search:** supply any query and the Actor sends it straight to the ModelScope search API.
- 🏷️ **Task filter:** narrow results to a specific ML task like text-generation or image-classification.
- 🏢 **Organization filter:** limit the scrape to models published by one organization slug.
- 📊 **Sort control:** order results by downloads, stars, or recent updates before the limit is applied.

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

### What you can do with ModelScope data

**📈 Track model popularity.**

A research lab scrapes text-to-image models sorted by downloads every week to spot rising architectures.

**🗂️ Build a model catalog.**

A startup scrapes all models for the text-generation task and loads them into their internal search tool.

**🏢 Monitor an organization.**

An investor scrapes one company's ModelScope page daily to see new model releases and their early star counts.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key** | Reads the same public endpoint the website uses, so you skip registration. |
| **Flat output** | Every model lands as one row with a fixed schema, ready for pandas or Excel. |
| **Full scale** | Paid users can pull up to 1,000,000 models in a single run. |

### How it compares

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

| | ModelScope Models Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When ModelScope 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 from a search query, and optionally narrow results by task or organization. Filters are sent to the API so only matching models reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10
}
```

A larger pull:

```json
{
  "maxItems": 200
}
```

### Pricing

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

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.50 |
| 1,000 results | $5.00 |
| 10,000 results | $50.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 [ModelScope Models Scraper](https://apify.com/parseforge/modelscope-models-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 ModelScope 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/modelscope-models-scraper"
```

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

### Troubleshooting

**Why am I getting no results?**

Check that your search query, task name, and organization slug are spelled exactly as they appear on ModelScope. A typo in any filter will return an empty list.

**Why did the run stop at 10 models?**

Free Apify accounts are limited to 10 items as a preview. Upgrade to a paid plan to raise the maxItems limit up to 1,000,000.

**The sort order looks wrong.**

The Actor sends your chosen sort to the API. If results seem off, try a different sort value or verify the API is respecting it by checking the raw response in the run log.

**I got fewer models than my maxItems setting.**

The API returned fewer results than you requested. This happens when the search query and filters match a small number of models. Try broadening your search.

### FAQ

| Question | Answer |
|---|---|
| Do I need a ModelScope account or API key? | No. The Actor calls the same public search API that the ModelScope website uses, so no login or key is required. |
| How many models can I scrape? | Free Apify users are limited to 10 models as a preview. Paid users can set maxItems up to 1,000,000. |
| What does the sort option do? | It tells the ModelScope API to order results by downloads, stars, or last modified date before the Actor stops at your maxItems limit. |
| Can I filter by a specific ML task? | Yes. Use the Task input field with a ModelScope task name like text-generation, image-classification, or object-detection. |
| How do I find the correct organization slug? | Visit the organization's page on ModelScope. The slug is the last part of the URL, for example damo in modelscope.cn/organization/damo. |
| What output formats are supported? | You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform. |
| Does the Actor follow pagination? | Yes. It keeps requesting pages from the API until it reaches your maxItems limit or the API runs out of results. |
| Can I scrape models without a search query? | A search query is the main driver. To browse broadly, try a single broad keyword or leave it empty if the API allows, then use the task or organization filters. |
| Is the data real-time? | The Actor reads the live ModelScope API on each run, so you get the current downloads, stars, and update timestamps. |

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

## `search` (type: `string`):

Free-text search query for ModelScope models. Trimmed before being sent to the API.

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

Free users are limited to 10 models (preview). Paid users can collect up to 1,000,000 models.

## `sort` (type: `string`):

Sort order for the API.

## `task` (type: `string`):

Filter by ModelScope task name (e.g. text-generation, image-classification).

## `organization` (type: `string`):

Filter by organization slug.

## Actor input object example

```json
{
  "maxItems": 10,
  "sort": "Default"
}
```

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

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

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/modelscope-models-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/jhAgZ8uYbsT8J360N/builds/ZeQEjNW5biwfWhKLn/openapi.json
