# QS World University Rankings Scraper (`parseforge/qs-world-rankings-scraper`) Actor

Scrapes QS World University Rankings by year and optional country. Returns each university as a flat row with rank, overall score, and all QS indicator scores.

- **URL**: https://apify.com/parseforge/qs-world-rankings-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 4 total users, 2 monthly users, 92.2% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

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

### QS World University Rankings Scraper

**Scrape QS World University Rankings for any year and country, up to a million universities per run.** Each row returns rank, overall score, academic and employer reputation, citations, and more. Export to CSV, JSON, Excel, or XML.

QS publishes the definitive annual league table of global universities, but manually copying rankings across years and countries is slow and error-prone. This actor reads the public QS World University Rankings pages directly, filtered by year and optional country, and returns every matching university in one consistent flat schema.

| Who uses it | What they scrape QS World University Rankings for |
|---|---|
| Higher education analysts | Compare institutional performance across multiple ranking years. |
| University marketing teams | Benchmark their own university against peer institutions in specific countries. |
| Prospective students and counselors | Build shortlists of top-ranked universities in a target country. |
| Recruitment agencies | Identify leading universities for partnership and student placement. |

### What it does

This Actor collects QS World University Rankings by year and optional country, and returns each university as a flat row with its rank, scores, and indicators.

- 📅 **Year selection:** fetch rankings for 2025, 2024, 2023, or 2022.
- 🌍 **Country filter:** narrow results to a single country, like United States or United Kingdom.
- 📊 **Full indicator set:** overall score, academic reputation, employer reputation, faculty student ratio, citations per faculty, international faculty, and international students.
- ⚡ **High volume:** collect up to 1,000,000 ranked universities in a single run.

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

### What you can do with QS World University Rankings data

**📈 Track ranking trends over time.**

A higher education analyst runs the actor for 2022, 2023, 2024, and 2025, then merges the datasets to see which universities gained or lost ground.

**🌍 Build country-specific university shortlists.**

An education counselor sets the country filter to Canada and the year to 2025 to generate a clean list of top Canadian universities for a student.

**📊 Benchmark a university against competitors.**

A university marketing team scrapes the latest rankings for their home country and compares their own scores on academic reputation and citations against five peer institutions.

**🔍 Enrich internal databases with QS indicators.**

A recruitment platform runs the scraper weekly and maps the overall score and employer reputation into their university profiles for employer clients.

### Why choose this scraper

|  | What you get |
|---|---|
| **Flat row per university** | One university, one row, with rank and all QS indicator scores. |
| **Multi-year analysis** | Pull 2022 through 2025 rankings to track rises and falls. |
| **Country-specific lists** | Extract only universities in a given country for targeted reports. |
| **No API key needed** | Reads the public rankings pages directly with no registration. |

### How it compares

No other Store actor targets QS World University Rankings the same way, so the honest comparison is with the alternatives teams actually weigh.

| | QS World University Rankings Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When QS World University Rankings 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 by selecting a ranking year and an optional country name, and filters run as each university is read so only matches 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.006 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.60 |
| 1,000 results | $6.00 |
| 10,000 results | $60.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 [QS World University Rankings Scraper](https://apify.com/parseforge/qs-world-rankings-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 QS World University Rankings 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/qs-world-rankings-scraper"
```

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

### Troubleshooting

**Why am I getting no results?**

Check your country filter spelling. It must match the QS site exactly, for example United Kingdom not UK. Also confirm the selected year is one of the supported years: 2022 through 2025.

**The actor returns fewer universities than I set in maxItems.**

The QS World University Rankings list has a fixed number of institutions per year, around 1,500. If you set maxItems higher than the total available, the actor returns all of them and stops.

**Some indicator scores are missing in my results.**

QS does not publish every indicator for every university. If a score is not available on the QS page, the field will be empty in your dataset.

**The actor is running slowly.**

The actor respects the QS website by making polite requests. Large pulls with high maxItems values will take longer. Reduce maxItems if you need only a subset.

**I got an error about the year selection.**

Make sure you selected a year from the dropdown in the input UI. Typing a year manually may cause a mismatch. The allowed values are 2025, 2024, 2023, and 2022.

### FAQ

| Question | Answer |
|---|---|
| Which QS rankings does this actor scrape? | It scrapes the main QS World University Rankings table. It does not scrape subject rankings, regional rankings, or MBA rankings. |
| Can I get rankings for a specific country only? | Yes. Use the optional Country filter input and type the country name exactly as it appears on the QS site, for example United States or Germany. |
| What years are available? | The actor supports the ranking years 2025, 2024, 2023, and 2022. Older years are not available in this version. |
| How many universities can I scrape in one run? | You can set the maximum up to 1,000,000. The QS World University Rankings list around 1,500 institutions, so the default maximum is more than enough for a full pull. |
| What data fields does each row contain? | Each row includes the university name, rank, overall score, academic reputation, employer reputation, faculty student ratio, citations per faculty, international faculty ratio, and international student ratio. |
| Do I need a QS account or API key? | No. The actor reads the publicly available ranking pages. No login, API key, or registration is required. |
| Can I filter by rank range? | The actor does not have a rank range filter. It collects universities starting from rank 1 up to the maximum number you set. You can filter the exported dataset afterward. |
| How often is the QS data updated? | QS publishes a new World University Ranking once per year, usually in June. The actor reads whatever is live on the QS site at the time of the run. |
| What output formats are supported? | You can export the results to CSV, JSON, Excel, or XML from the Apify dataset tab. |
| Can I schedule this scraper to run automatically? | Yes. Apify actors support scheduled runs. You can set it to run monthly or annually to capture new rankings when they are released. |

### 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 QS Quacquarelli Symonds. 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

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

How many universities to collect per run.

## `year` (type: `string`):

Ranking year to fetch.

## `country` (type: `string`):

Optional country name filter (e.g. United States, United Kingdom).

## Actor input object example

```json
{
  "maxItems": 10,
  "year": "2025"
}
```

# 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/qs-world-rankings-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/qs-world-rankings-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/qs-world-rankings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/qs-world-rankings-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/3CiGuYwJYqlulEOpM/builds/AooAbJWwmzfG7zpFr/openapi.json
