Steam Curator Reviews Scraper avatar

Steam Curator Reviews Scraper

Pricing

Pay per event

Go to Apify Store
Steam Curator Reviews Scraper

Steam Curator Reviews Scraper

Extract public Steam curator profiles, follower metrics, and game recommendations.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

Extract public Steam curator profiles, audience metrics, and game recommendations into clean, analysis-ready records.

Use the Actor to discover outreach targets, monitor launch coverage, compare curator audiences, and build repeatable games-industry research workflows.

It uses public Steam pages, requires no Steam login, and returns data in the default Apify dataset.

What does Steam Curator Reviews Scraper do?

Steam Curator Reviews Scraper collects two related record types:

  • Curator records with identity, profile URL, avatar, description, follower count, review count, and recommendation totals when available.
  • Review records with curator identity, Steam app ID, game title, recommendation status, review text, publication date, and source URL when available.

The Actor accepts the public Steam Curators directory, individual curator profile URLs, or numeric curator IDs.

Responses are pinned to English to make repeated exports easier to compare.

Duplicate records are removed during each run.

Who is it for?

Game publishers

Discover curators with relevant audiences and prioritize outreach using follower and review metrics.

PR and creator-relations agencies

Build evidence-based prospect lists and track which curators cover a client launch.

Competitive-intelligence teams

Monitor curator recommendations around competing releases and compare recommendation direction.

Researchers and analysts

Create structured datasets from a public games-industry influence surface without manually copying profile pages.

Indie developers

Find public curators, understand their coverage, and prepare relevant personalized pitches.

Why use this Actor?

  • ⚡ HTTP-first extraction avoids browser overhead.
  • 🔐 No Steam account or password is required.
  • 📊 Results are normalized for JSON, CSV, Excel, XML, and RSS export.
  • 🔁 Stable curator and app IDs support scheduled comparisons.
  • 🧹 Per-run deduplication reduces repeated rows.
  • 🌍 English locale hints improve output consistency.
  • 🔗 Every row retains provenance through sourceUrl and scrapedAt.

How to scrape Steam curator reviews

  1. Open the Actor input page.
  2. Add https://store.steampowered.com/curators/ to Steam curator or discovery URLs.
  3. Set Maximum records to the number of rows you need.
  4. Click Start.
  5. Wait for the run to finish.
  6. Open the Dataset tab.
  7. Export results as JSON, CSV, Excel, XML, or RSS.
  8. Filter type to separate curator rows from review rows.

For a known curator, provide its public profile URL or numeric ID instead of the directory URL.

Input

FieldTypeDescription
startUrlsarraySteam Curators directory URLs or public curator profile URLs.
curatorIdsstring arrayNumeric Steam curator/group IDs to fetch directly.
maxItemsintegerMaximum combined curator and review rows, from 1 to 10,000.

If no source is provided, the Actor uses the public Steam Curators directory.

Directory example

{
"startUrls": [{ "url": "https://store.steampowered.com/curators/" }],
"maxItems": 100
}

Curator ID example

{
"curatorIds": ["1850"],
"maxItems": 50
}

Profile URL example

{
"startUrls": [{ "url": "https://store.steampowered.com/curator/1850/" }],
"maxItems": 50
}

Output data

FieldApplies toDescription
typeallcurator or review.
curatorIdallStable numeric Steam curator identifier as a string.
curatorNameallPublic curator display name.
curatorUrlallCanonical curator page URL.
avatarUrlcuratorPublic avatar image URL.
descriptioncuratorPublic profile description.
followerCountcuratorVisible follower total.
reviewCountcuratorVisible review total.
recommendedCountcuratorVisible recommended total.
notRecommendedCountcuratorVisible not-recommended total.
informativeCountcuratorVisible informative total.
communityUrlcuratorSteam Community link when present.
discussionUrlcuratorPublic discussion link when present.
appIdreviewNumeric Steam app ID.
appTitlereviewGame title when present.
appUrlreviewSteam store app URL.
recommendationreviewrecommended, not_recommended, or informative.
reviewTextreviewPublic curator recommendation text.
postedAtreviewISO publication timestamp when exposed by Steam.
sourceUrlallInput page that produced the row.
pageNumberallSource page number.
scrapedAtallISO extraction timestamp.

Optional fields are omitted when Steam does not expose them; the Actor does not invent values.

Example output

{
"type": "review",
"curatorId": "1850",
"curatorName": "Example Curator",
"curatorUrl": "https://store.steampowered.com/curator/1850/",
"appId": 570,
"appTitle": "Dota 2",
"appUrl": "https://store.steampowered.com/app/570/",
"recommendation": "recommended",
"reviewText": "Public recommendation text",
"sourceUrl": "https://store.steampowered.com/curators/",
"pageNumber": 1,
"scrapedAt": "2026-07-12T00:00:00.000Z"
}

How much does it cost to scrape Steam curators?

Pricing is pay per event:

  • Run start: $0.005 once per run.
  • Dataset item: tiered by Apify plan.
PlanPrice per item
FREE$0.000033038
BRONZE$0.000028729
SILVER$0.000022409
GOLD$0.000017237
PLATINUM$0.000011492
DIAMOND$0.000010000

A 100-item BRONZE run has an event price of about $0.00787: $0.005 start plus approximately $0.00287 for items. Platform compute and plan terms may also apply.

Use a larger maxItems in one run instead of many tiny runs to avoid paying the start event repeatedly.

Build a Steam curator outreach list

  1. Run the directory source.
  2. Export the dataset as CSV.
  3. Filter rows where type equals curator.
  4. Sort by followerCount or reviewCount.
  5. Read profile descriptions to assess relevance.
  6. Visit the retained public curator URL before outreach.

Use the data to qualify contacts, not to send indiscriminate bulk messages.

Monitor game-launch coverage

Schedule the Actor daily or weekly and retain each dated dataset.

Filter review rows by appId after export, then compare curator-and-app keys across runs.

New keys indicate newly observed coverage; recommendation values show the published direction.

Steam may vary which recommendations are exposed on a page, so treat the output as a public-page snapshot rather than a complete historical archive.

Data quality and limitations

  • Steam can change public markup without notice.
  • Directory responses may expose only a current subset of curators and recommendations.
  • Some profiles do not publish descriptions, dates, discussion links, or recommendation details.
  • maxItems limits the combined number of curator and review rows.
  • The Actor does not access private curators or authenticated content.
  • The Actor does not guarantee historical completeness.
  • IDs are better join keys than display names.

For critical monitoring, retain prior datasets and compare multiple scheduled snapshots.

Scheduling and change monitoring

In Apify Console, create a schedule for the Actor and select your saved input.

A weekly cadence works well for market research; launch monitoring may justify a daily cadence.

Connect the resulting dataset to a webhook, Make, Zapier, Google Sheets, or your warehouse.

Deduplicate downstream using curatorId for profiles and curatorId plus appId for recommendations.

Integrations

Google Sheets

Export curator rows to a sheet, rank by audience metrics, and add human qualification columns.

Make or Zapier

Trigger a workflow after successful runs and route newly observed app recommendations to Slack or email.

Webhooks

Send run completion events to your own endpoint, then fetch the default dataset through the Apify API.

Data warehouses

Load JSON or CSV snapshots into BigQuery, Snowflake, or PostgreSQL for longitudinal analysis.

Slack alerts

Compare current and previous datasets and alert only when a new curator-and-app pair appears.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/steam-curator-reviews-scraper').call({
startUrls: [{ url: 'https://store.steampowered.com/curators/' }],
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/steam-curator-reviews-scraper').call(run_input={
'startUrls': [{'url': 'https://store.steampowered.com/curators/'}],
'maxItems': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

API usage with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~steam-curator-reviews-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://store.steampowered.com/curators/"}],"maxItems":100}'

Fetch dataset items with the defaultDatasetId returned by the run API.

Use with Apify MCP

Connect Claude Code:

$claude mcp add apify --transport http "https://mcp.apify.com/?tools=automation-lab/steam-curator-reviews-scraper"

Claude Desktop configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=automation-lab/steam-curator-reviews-scraper"
}
}
}

Example prompts:

  • “Scrape 100 public Steam curator records and rank curators by followers.”
  • “Extract public recommendations for curator ID 1850.”
  • “Compare this Steam curator dataset with last week's export and summarize new game coverage.”

Troubleshooting

Why did the run return fewer reviews than expected?

Steam varies which recommendations appear in public responses. Use a canonical curator URL, increase maxItems, and inspect the run log for request warnings.

Why are optional fields missing?

Not every curator publishes every value. Missing public values are omitted rather than represented with fabricated defaults.

Why did the dataset stop at an unexpected record type?

maxItems applies to the combined dataset. Curator and review rows both count toward the limit.

What should I do after an HTTP warning?

Confirm the URL opens publicly, check that it is a Steam curator or directory URL, and retry later if Steam is temporarily unavailable.

Can the Actor scrape private curator data?

No. It intentionally processes public pages only.

Legality and responsible use

This Actor extracts publicly available information.

You are responsible for ensuring that your use complies with Steam terms, applicable laws, privacy requirements, and outreach regulations.

Use conservative schedules, collect only data needed for a legitimate purpose, secure exported datasets, and honor deletion or objection requests where applicable.

Do not use the Actor to bypass access controls, impersonate users, or facilitate spam.

FAQ

Does it require a Steam login?

No. The Actor uses public Steam curator surfaces.

Can I supply multiple curator IDs?

Yes. Add multiple numeric strings to curatorIds; all rows share the same maxItems budget.

Which export formats are available?

Apify datasets support JSON, JSONL, CSV, Excel, XML, and RSS exports.

Are results deduplicated?

Yes, within each run. Use stable IDs to deduplicate across scheduled runs.

Can I monitor one game directly?

The Actor does not expose an app-ID input filter. Export recommendations and filter the numeric appId downstream.

Use this Actor for curator profiles and curator recommendations; use the related actors when the primary entity is a game or Workshop item.

Support

If a valid public Steam curator URL produces no output, open an issue from the Actor page.

Include the input, run ID, expected result, and a public example URL.

Do not include credentials or private personal data in support requests.