# W\&L Law Journal Rankings Scraper (`automation-lab/washington-lee-law-journal-rankings`) Actor

Export public Washington and Lee law journal rankings with rank, combined score, impact factor, citation metrics, currency factor, ISSN, journal link, year, filters, and source timestamp.

- **URL**: https://apify.com/automation-lab/washington-lee-law-journal-rankings.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Education
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.14 / 1,000 item extracteds

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

## W\&L Law Journal Rankings Scraper

Export public Washington and Lee law journal rankings as clean, typed records for publishing research, submission targeting, library analysis, and repeatable journal comparisons.

The Actor reads the current public W\&L ranking tables and combines journal identity, rank, combined score, impact factor, journal citations, case citations, currency factor, ISSN, homepage, source year, selected filters, and collection time.

No W\&L login, cookies from the user, browser, or proxy configuration is required.

### What does this Actor do?

The Actor turns the interactive W\&L Law Journal Rankings form into one dataset row per journal.

It can:

- export the current overall ranking;
- rank by combined score, impact factor, journal citations, currency factor, or case citations;
- filter by a W\&L subject category;
- filter by W\&L country values;
- search journal names;
- enrich rows with public ISSN and journal-homepage details;
- limit output for quick comparisons or larger exports;
- preserve the ranking year and citation window shown by the source.

All five available ranking measures are included even when a different measure controls output order.

### Who is it for?

**Law authors and editors** can compare journals before building a submission shortlist.

**Law librarians** can refresh ranking datasets without manually copying an interactive table.

**Legal-research teams** can compare citation reach, currency, and impact across categories.

**Publishing analysts** can schedule the same input and compare exported datasets over time.

**Data teams** can send normalized ranking rows to Sheets, databases, BI tools, or internal pipelines.

### Why use this W\&L law journal rankings exporter?

The source exposes one ranking measure at a time. This Actor joins all five public measures by stable W\&L journal ID.

Each output row also records the selected scope and source timestamp, making scheduled exports easier to interpret.

The implementation uses the site's public HTML form and JSON detail route directly. That keeps runs lighter than browser automation while preserving the source's own ranking logic.

Null values are retained honestly. Journals displayed as `NR` by W\&L have `rank: null` or a null metric rather than an invented number.

### Quick start

1. Open the Actor in Apify Console.
2. Leave the default combined-score ranking or choose another metric.
3. Optionally enter an exact W\&L subject or country filter.
4. Choose the maximum number of journals.
5. Run the Actor.
6. Download the default dataset as JSON, CSV, Excel, XML, or another Apify-supported format.

A useful first run is:

```json
{
  "rankingMetric": "combinedScore",
  "includeJournalDetails": true,
  "maxItems": 10
}
```

### Input parameters

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `subject` | string | blank | Exact W\&L subject category, for example `Intellectual Property` or `Taxation`. |
| `country` | string | blank | Exact W\&L country value, for example `US`, `Non-US`, `Canada`, or `United Kingdom`. |
| `journalName` | string | blank | Source-supported journal-name search text. |
| `rankingMetric` | string | `combinedScore` | Metric that controls rank and order. |
| `includeJournalDetails` | boolean | `true` | Include public ISSN, journal URL, and alternate name. |
| `maxItems` | integer | `10` | Number of rows to save, from 1 to 2,000. |

Supported `rankingMetric` values are:

- `combinedScore`
- `impactFactor`
- `journalCitations`
- `currencyFactor`
- `caseCitations`

Filters use values recognized by the W\&L form. An unsupported exact filter fails with a clear missing-results-table error instead of returning misleading unfiltered data.

### Subject-specific comparison example

Compare intellectual property journals by impact factor:

```json
{
  "subject": "Intellectual Property",
  "rankingMetric": "impactFactor",
  "includeJournalDetails": true,
  "maxItems": 5
}
```

This exercises a real W\&L subject category and still includes combined score and all citation measures.

### Case-citation shortlist example

Build a U.S. shortlist ordered by case citations:

```json
{
  "country": "US",
  "rankingMetric": "caseCitations",
  "includeJournalDetails": false,
  "maxItems": 10
}
```

Disable details when ISSNs and journal homepages are not needed. This reduces source requests while leaving ranking metrics unchanged.

### Output fields

| Field | Meaning |
| --- | --- |
| `journalId` | Stable numeric journal identifier exposed by W\&L. |
| `journalName` | Journal name displayed by W\&L. |
| `rank` | Numeric rank under the selected metric, or null for `NR`. |
| `rankDisplay` | Exact source rank text, including `NR` when applicable. |
| `combinedScore` | W\&L combined score, or null. |
| `impactFactor` | W\&L impact factor, or null. |
| `journalCitations` | Journal citation count, or null. |
| `currencyFactor` | W\&L currency factor, or null. |
| `caseCitations` | Case citation count, or null. |
| `issn` | Public ISSN from the journal detail route, or null. |
| `journalUrl` | Public journal homepage from W\&L, or null. |
| `alternateName` | Alternate journal name when supplied, or null. |
| `rankingYear` | Ranking year parsed from the source table. |
| `rankingWindow` | Full citation window, such as `2021-2025`. |
| `rankingMetric` | Metric used to rank and order this run. |
| `selectedSubject` | Subject filter supplied to the source, or null. |
| `selectedCountry` | Country filter supplied to the source, or null. |
| `sourceUrl` | Public W\&L rankings page. |
| `sourceTimestamp` | UTC collection timestamp. |

### Example output

A current combined-score run returns records shaped like this:

```json
{
  "journalId": 1974,
  "journalName": "Columbia Law Review",
  "rank": 1,
  "rankDisplay": "1",
  "combinedScore": 100,
  "impactFactor": 3.3,
  "journalCitations": 2316,
  "currencyFactor": 6.03,
  "caseCitations": 55,
  "issn": "0010-1958",
  "journalUrl": "http://columbialawreview.org/",
  "alternateName": null,
  "rankingYear": 2025,
  "rankingWindow": "2021-2025",
  "rankingMetric": "combinedScore",
  "selectedSubject": null,
  "selectedCountry": null,
  "sourceUrl": "https://managementtools4.wlu.edu/LawJournals/",
  "sourceTimestamp": "2026-09-09T20:14:05.901Z"
}
```

Values can change when W\&L releases or corrects rankings. Treat the run dataset as a source snapshot, not a permanent claim about a journal.

### How much does it cost to export W\&L law journal rankings?

Pricing uses one start event per run and one `item` event for each useful journal row saved.

At the BRONZE tier, the price is a **$0.01 start fee plus $0.0069056 per journal row**.

Examples at that tier:

- 10 journals: about **$0.0791**
- 100 journals: about **$0.7006**
- 400 journals: about **$2.7722**

Higher account tiers receive the active tier discount shown in Apify Console. Failed or rejected rows are not charged as items. ISSN enrichment is included in the item event and has no separate charge.

### Scheduling recurring ranking research

Use an Apify Schedule to run the same input weekly, monthly, or after the annual W\&L release period.

For change analysis:

1. keep the input stable;
2. retain each run's dataset ID;
3. join snapshots by `journalId`;
4. compare rank and metric fields;
5. use `rankingYear` and `sourceTimestamp` to label each snapshot.

The Actor exports snapshots. It does not send alerts or compute historical deltas itself.

### Export and integration workflows

Download the default dataset directly as CSV or Excel for editorial research.

Connect Apify to Google Sheets to maintain a reviewable journal shortlist.

Use webhooks to notify an internal workflow after a scheduled run succeeds.

Load JSON rows into a warehouse and compare ranks by subject, country, or ranking measure.

Feed a focused dataset to an LLM or RAG pipeline, preserving W\&L as the cited source.

### Run through the Apify API with cURL

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~washington-lee-law-journal-rankings/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"subject":"Intellectual Property","rankingMetric":"impactFactor","maxItems":5}'
```

Poll the returned run or use the synchronous dataset-items endpoint when your client can wait.

Never embed an Apify token in public source code.

### Run through the Apify API with JavaScript

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/washington-lee-law-journal-rankings').call({
  country: 'US',
  rankingMetric: 'caseCitations',
  includeJournalDetails: false,
  maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Run through the Apify API with Python

```python
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/washington-lee-law-journal-rankings').call(
    run_input={
        'rankingMetric': 'combinedScore',
        'includeJournalDetails': True,
        'maxItems': 25,
    }
)
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### Use with MCP and AI agents

#### Claude Code setup

Add the Actor to Claude Code:

```bash
claude mcp add --transport http apify \
  "https://mcp.apify.com?tools=automation-lab/washington-lee-law-journal-rankings"
```

#### Claude Desktop, Cursor, and VS Code setup

Claude Desktop, Cursor, and VS Code clients can use:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=automation-lab/washington-lee-law-journal-rankings"
    }
  }
}
```

Example prompts:

- "Export the top 10 current W\&L law journal rankings by combined score."
- "Compare five Intellectual Property journals by impact factor and include ISSNs."
- "Build a U.S. journal shortlist ordered by case citations."

### Reliability and retry behavior

Each ranking request uses a fresh coherent ASP.NET session and the hidden form state supplied by W\&L.

Transient network failures, HTTP 429, and server-side 5xx responses are retried up to three times with backoff.

Malformed pages, invalid filters, and exhausted retries fail the run. They are not converted into an empty successful dataset.

The Actor does not automatically use paid proxies or a browser.

### Limits and source behavior

The Actor exports the ranking year currently presented by W\&L. It does not claim a historical year selector.

W\&L currently ranks only part of the listed journal universe. The source displays other journals as `NR`.

Exact category and country vocabulary is controlled by W\&L and may change.

`maxItems` limits saved rows after the selected metric determines source order.

Including journal details adds one lightweight public JSON request per accepted row.

The Actor does not scrape article contents, submission rules, acceptance rates, editorial contacts, or private data.

### Responsible use and legality

This Actor accesses public Washington and Lee University ranking pages without login.

Use the data in accordance with applicable law, W\&L's terms, and your organization's policies.

Do not present rankings as legal advice, an endorsement, or a guarantee of publication outcome.

Preserve source attribution when redistributing derived research. Verify important decisions against the current W\&L methodology and journal information.

### Troubleshooting

**The run says no recognizable results table.**

Check that `subject` and `country` exactly match values accepted by the W\&L form. Remove filters to test the broad route.

**The run fails after retries.**

Inspect the log for an upstream HTTP status. Retry later if W\&L is temporarily unavailable; do not add a proxy unless source behavior materially changes.

**A metric or rank is null.**

W\&L may display `NR` or no value for that journal. Null is intentional and preserves source meaning.

**Output has no ISSN or journal URL.**

Confirm `includeJournalDetails` is true. Some W\&L detail records may still omit a field.

### FAQ

**Does this Actor rank journals itself?**

No. It preserves W\&L's public values and selected-metric order.

**Can I export every journal?**

Set `maxItems` up to 2,000. Actual output depends on the selected filters and current W\&L table.

**Can I choose an older ranking year?**

Not in this release. The Actor reports the current source year and citation window.

**Does it require a proxy?**

No. Direct public HTTP is the implemented route.

**Can I search for one journal?**

Yes. Set `journalName` to source-supported name text and use a small `maxItems`.

**Are detail requests charged separately?**

No. A complete saved row is one item event whether or not public details are requested.

### Related Automation Lab Actors

For broader literature discovery rather than law-journal rankings, use [PubMed Article Search Scraper](https://apify.com/automation-lab/pubmed-article-search-scraper).

For preprint metadata and paper discovery, use [arXiv Paper Search & Export](https://apify.com/automation-lab/arxiv-paper-search-export).

Those Actors return papers or articles. This Actor is purpose-built for W\&L law-journal ranking rows.

### Data source attribution

Ranking data comes from the public [Washington and Lee University Law Journal Rankings](https://managementtools4.wlu.edu/LawJournals/) site.

Review W\&L's methodology pages before interpreting combined scores, impact factors, currency factors, or citation windows.

# Actor input Schema

## `subject` (type: `string`):

Exact W\&L subject category, such as Intellectual Property, Taxation, or Constitutional Law. Leave blank for all subjects.

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

Exact W\&L country filter, such as US, Non-US, Canada, or United Kingdom. Leave blank for all countries.

## `journalName` (type: `string`):

Return journals whose names match this source-supported search text.

## `rankingMetric` (type: `string`):

Metric that determines rank and output order. Every output row still includes all five available metrics.

## `includeJournalDetails` (type: `boolean`):

Fetch each journal's public W\&L detail record to include ISSN, homepage, and alternate name.

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

Maximum number of ranked journal rows to save.

## Actor input object example

```json
{
  "rankingMetric": "combinedScore",
  "includeJournalDetails": true,
  "maxItems": 10
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset containing journals, ranking metrics, selected source scope, year, links, and collection timestamps.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/washington-lee-law-journal-rankings").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/washington-lee-law-journal-rankings").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 '{}' |
apify call automation-lab/washington-lee-law-journal-rankings --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation-lab/washington-lee-law-journal-rankings"
        }
    }
}
```

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/fP6IhXpQkn1IlxwtO/builds/P8W1ocSN8PVNN1lod/openapi.json
