{"id":"43ec03fe-58e2-4d1a-b6b9-372c68f812b5","entityType":"agent","slug":"clawhub-crawlora-org-gaming-research","name":"gaming-research","canonicalUrl":"https://www.xpersona.co/agent/clawhub-crawlora-org-gaming-research","canonicalPath":"/agent/clawhub-crawlora-org-gaming-research","generatedAt":"2026-10-11T20:58:00.673Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:36:06.442Z","emptyReason":null},"description":"Researches video games via the Crawlora API — Steam (store pages, pricing, reviews, player counts, charts, tags, achievements) and PlayStation Store (products, categories, deals) — returning clean JSON. Use when the user wants a game's price/reviews/player count, what's trending or on sale, or a store listing's details.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:gaming-research","sourceUrl":"https://clawhub.ai/crawlora-org/gaming-research","homepage":"https://clawhub.ai/crawlora-org/skills/gaming-research","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/crawlora-org/gaming-research","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/crawlora-org/skills/gaming-research","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"gaming-research technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:36:06.442Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:36:06.442Z","emptyReason":null},"stars":null,"forks":null,"downloads":1017,"packageName":null,"latestVersion":"1.0.18","tractionLabel":"1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:36:06.323Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T17:36:06.442Z","lastCrawledAt":"2026-10-11T17:36:06.323Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T17:36:06.323Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.18","createdAt":"2026-09-21T01:34:13.203Z","changelog":"Sync skill instructions, references, and helper from GitHub 0cfbceba40b050ba434a0a3f4945ca97b668c805","fileCount":5,"zipByteSize":11534},{"version":"1.0.17","createdAt":"2026-09-17T10:18:33.388Z","changelog":"Security hardening: generated helpers now enforce exact routes, methods, and credential-safe curl behavior.","fileCount":5,"zipByteSize":10739},{"version":"1.0.16","createdAt":"2026-09-14T01:45:10.201Z","changelog":"Sync skill instructions, references, and helper from GitHub 902f58316c643ffbcabc57fc6f15f59d27ec063d","fileCount":5,"zipByteSize":11327},{"version":"1.0.15","createdAt":"2026-09-10T12:32:21.439Z","changelog":"Validate API keys before curl config","fileCount":5,"zipByteSize":11074},{"version":"1.0.14","createdAt":"2026-09-10T12:15:08.648Z","changelog":"Keep API keys out of process arguments","fileCount":5,"zipByteSize":10877},{"version":"1.0.13","createdAt":"2026-09-10T12:05:35.231Z","changelog":"Reject curl local-file query syntax","fileCount":5,"zipByteSize":10840},{"version":"1.0.12","createdAt":"2026-09-10T11:53:17.112Z","changelog":"Stream helper request bodies through curl stdin","fileCount":5,"zipByteSize":10710},{"version":"1.0.11","createdAt":"2026-09-10T11:40:07.680Z","changelog":"Scope helper routes and remove secret-shaped key examples","fileCount":5,"zipByteSize":10695}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:gaming-research","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:gaming-research` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/crawlora-org/gaming-research before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-gaming-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-gaming-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-gaming-research/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-gaming-research/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-gaming-research/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-gaming-research/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T20:58:00.655Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-gaming-research/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-gaming-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-gaming-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-gaming-research/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:36:06.442Z","emptyReason":null},"readme":"Skill: gaming-research\n\nOwner: crawlora-org\n\nSummary: Researches video games via the Crawlora API — Steam (store pages, pricing, reviews, player counts, charts, tags, achievements) and PlayStation Store (products, categories, deals) — returning clean JSON. Use when the user wants a game's price/reviews/player count, what's trending or on sale, or a store listing's details.\n\nTags: latest:1.0.18\n\nVersion history:\n\nv1.0.18 | 2026-09-21T01:34:13.203Z | user\n\nSync skill instructions, references, and helper from GitHub 0cfbceba40b050ba434a0a3f4945ca97b668c805\n\nv1.0.17 | 2026-09-17T10:18:33.388Z | user\n\nSecurity hardening: generated helpers now enforce exact routes, methods, and credential-safe curl behavior.\n\nv1.0.16 | 2026-09-14T01:45:10.201Z | user\n\nSync skill instructions, references, and helper from GitHub 902f58316c643ffbcabc57fc6f15f59d27ec063d\n\nv1.0.15 | 2026-09-10T12:32:21.439Z | user\n\nValidate API keys before curl config\n\nv1.0.14 | 2026-09-10T12:15:08.648Z | user\n\nKeep API keys out of process arguments\n\nv1.0.13 | 2026-09-10T12:05:35.231Z | user\n\nReject curl local-file query syntax\n\nv1.0.12 | 2026-09-10T11:53:17.112Z | user\n\nStream helper request bodies through curl stdin\n\nv1.0.11 | 2026-09-10T11:40:07.680Z | user\n\nScope helper routes and remove secret-shaped key examples\n\nv1.0.10 | 2026-09-10T06:42:10.888Z | user\n\nMigrate publisher from tonywangcn to crawlora-org for brand consistency with the plugins\n\nv1.0.9 | 2026-09-08T04:31:23.557Z | user\n\nRefresh stale REST examples, endpoint references, and Bash helper from crawlora-skills 1.17.1.\n\nv1.0.8 | 2026-09-07T13:31:53.531Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.7 | 2026-09-07T08:15:54.090Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.6 | 2026-09-07T06:39:41.964Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.5 | 2026-08-24T07:17:25.095Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.4 | 2026-08-24T06:29:36.841Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.3 | 2026-08-24T05:11:37.357Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.2 | 2026-08-14T18:28:50.045Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.1 | 2026-08-10T18:27:04.985Z | user\n\nSet categories\n\nv1.0.0 | 2026-08-10T18:01:38.526Z | auto\n\n- Initial release of gaming-research skill for researching video games via the Crawlora API.\n- Supports Steam and PlayStation Store: search, pricing, reviews, player counts, trending titles, sales, and categories.\n- Returns clean, normalized JSON for all queries.\n- Full guidance for API setup, usage examples, and endpoint references included.\n- Designed for queries about game prices, reviews, player activity, trending/top sellers, deals, and game discovery by genre/tag.\n\nArchive index:\n\nArchive v1.0.18: 5 files, 11534 bytes\n\nFiles: reference/endpoints.md (25246b), scripts/crawlora.sh (4815b), skill-card.md (2363b), SKILL.md (3889b), _meta.json (135b)\n\nFile v1.0.18:SKILL.md\n\n---\nname: gaming-research\ndescription: Researches video games via the Crawlora API — Steam (store pages, pricing, reviews, player counts, charts, tags, achievements) and PlayStation Store (products, categories, deals) — returning clean JSON. Use when the user wants a game's price/reviews/player count, what's trending or on sale, or a store listing's details.\n---\n\n# Gaming research\n\nLook up game store listings, pricing, reviews, and player counts across\nSteam and the PlayStation Store as normalized JSON from the Crawlora API —\nno scraping storefront pages.\n\n## When to use this skill\n\n- \"What does <game> cost / how is it rated?\"\n- \"How many people are playing <game> right now?\" (Steam player counts)\n- \"What's trending / most played / top sellers right now?\"\n- \"What's on sale?\" (Steam or PlayStation deals)\n- \"Find games in <genre/tag>\" or \"similar to <game>.\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Steam** — `/steam/search` (`term`) to find an `appid`, then\n   `/steam/app` for the store page, `/steam/reviews` (+ `/reviews/histogram`)\n   for review data, `/steam/players` for the current concurrent player\n   count, `/steam/news` for updates, `/steam/achievements` for the\n   achievement list. `/steam/charts/most-played`, `/steam/charts/concurrent`,\n   `/steam/charts/top-releases`, `/steam/top-sellers`, and `/steam/featured`\n   cover trending/what's-hot; `/steam/tags` and `/steam/category/{slug}`\n   filter by genre/tag.\n2. **PlayStation** — `/playstation/search` (`term`) to find a product `id`,\n   then `/playstation/product` for detail, `/playstation/concept` for a\n   game's overall franchise/concept page, `/playstation/category` to browse\n   a category, `/playstation/deals` for current discounts,\n   `/playstation/latest` for new releases.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every Steam and\nPlayStation endpoint this skill uses.\n\n## Examples\n\n- **Buy-decision brief:** `/steam/app` (price, tags) + `/steam/reviews/histogram`\n  (rating distribution) + `/steam/players` (is it still active) in one pass.\n- **What's hot right now:** `/steam/charts/most-played` + `/steam/top-sellers`\n  cross-checked against `/playstation/latest` for console releases.\n- **Sale-hunting:** `/steam/featured` (specials) + `/playstation/deals` for\n  the same title across both storefronts.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public store/review pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Steam pricing/availability is region-specific** — pass `cc` (country\n  code) and `l` (language) where supported to match a specific storefront.\n- Resolve names to platform ids via `.../search` before calling a detail\n  endpoint.\n\nFile v1.0.18:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"gaming-research\",\n  \"version\": \"1.0.18\",\n  \"publishedAt\": 1789954453203\n}\n\nFile v1.0.18:reference/endpoints.md\n\n# gaming-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**35 endpoints across 3 platform group(s).**\n\n## Steam (21)\n\n### `steam_achievements`\n\n- **HTTP:** `GET /steam/achievements`\n- **What:** Get global achievement completion percentages for a Steam app. Returns the global unlock percentage for each of an app's achievements, sorted most-unlocked first. Apps without global achievement stats return an empty list. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_app`\n\n- **HTTP:** `GET /steam/app`\n- **What:** Get Steam store details for an app. Returns normalized store metadata for a single Steam app (title, type, price, developers/publishers, platforms, genres, categories, release date, metacritic, recommendation and achievement counts). cc selects the store region (and price currency) and l the text language. filters is a comma-separated subset of allowed fields to shrink the payload. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cc` (string, optional) — Store country code (ISO, selects currency); `filters` (string, optional) — Comma-separated fields: basic, price_overview, developers, publishers, categories, genres, release_date, platforms, metacritic, achievements, screenshots, movies, recommendations, controller_support, dlc, short_description, supported_languages, packages, package_groups, ratings, content_descriptors, background; `l` (string, optional) — Language code\n\n### `steam_category`\n\n- **HTTP:** `GET /steam/category/{slug}`\n- **What:** Browse a store category (tag) with weighted community tags. Returns a catalog slice for a community tag / category via Steam's keyless IStoreQueryService, carrying each item's WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The slug is a numeric tag id or a tag name (case- and separator-insensitive, e.g. rogue_like); resolve ids via /steam/tags/list. Ordering is Steam's default relevance — for sorted or os/price-faceted browse use /steam/tags. Credential-free public Steam store query API.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `coming_soon_only` (boolean, optional) — Only unreleased / coming-soon titles; `count` (integer, optional) — Results per page (max 100); `free` (boolean, optional) — Only free titles; `l` (string, optional) — Steam store language name; `released_only` (boolean, optional) — Only already-released titles; `slug` (string, **required**) — Community tag id (numeric) or tag name slug; `start` (integer, optional) — Result offset for pagination\n\n### `steam_charts_concurrent`\n\n- **HTTP:** `GET /steam/charts/concurrent`\n- **What:** Get Steam's live games-by-concurrent-players leaderboard. Returns the live leaderboard of games ranked by current concurrent players (rank, appid, current concurrent, peak). By default each row is enriched with the game name and review summary; pass enrich=false for raw ranked app ids. Credential-free public Steam WebAPI JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO) for name enrichment; `enrich` (boolean, optional) — Attach game name and review summary to each rank; `l` (string, optional) — Steam store language name for name enrichment\n\n### `steam_charts_most_played`\n\n- **HTTP:** `GET /steam/charts/most-played`\n- **What:** Get Steam's weekly most-played games chart. Returns Steam's weekly most-played chart: the top games ranked by peak concurrent players over the last week (rank, appid, previous-week rank, peak players). By default each row is enriched with the game name and review summary via a batch lookup; pass enrich=false for the raw ranked app ids only. Credential-free public Steam WebAPI JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO) for name enrichment; `enrich` (boolean, optional) — Attach game name and review summary to each rank; `l` (string, optional) — Steam store language name for name enrichment\n\n### `steam_charts_top_releases`\n\n- **HTTP:** `GET /steam/charts/top-releases`\n- **What:** Get Steam's monthly best-new-releases index. Returns Steam's monthly top-releases index: one page per month, each listing that month's top-released app ids (with the month label and start date). The app-id lists are large and not name-enriched; resolve names via /steam/items. Credential-free public Steam WebAPI JSON.\n- **Params:** _none_\n\n### `steam_community_recommendations`\n\n- **HTTP:** `GET /steam/community-recommendations`\n- **What:** Get the store's community-recommended reviews feed. Returns a batch of recent, quality user reviews recommended across the whole store (author, playtime, helpful votes, and the recommended app). Filter by review kind/sort, reviewer playtime window, review language, and store region. The upstream serves a fixed batch and, unauthenticated, does not support tag filtering or deep pagination. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `playtime_max` (integer, optional) — Maximum reviewer playtime in hours (0 = no maximum); `playtime_min` (integer, optional) — Minimum reviewer playtime in hours (0 = no minimum); `review_filter` (string, optional) — Review kind / sort; `review_language` (string, optional) — Review language: 'my_languages' or a Steam language name\n\n### `steam_featured`\n\n- **HTTP:** `GET /steam/featured`\n- **What:** Get the Steam store featured capsules. Returns the storefront's featured capsules for a region (per-platform featured lists plus large spotlight capsules), including discount and price fields. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `steam_featured_categories`\n\n- **HTTP:** `GET /steam/featured-categories`\n- **What:** Get Steam top sellers, new releases, specials and coming soon. Returns the storefront merchandising buckets for a region: specials, top_sellers, new_releases, and coming_soon, each with its item list. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `steam_items`\n\n- **HTTP:** `GET /steam/items`\n- **What:** Resolve a batch of app ids to store items with weighted tags. Resolves up to 100 Steam app ids in one call to normalized store items via Steam's keyless IStoreBrowseService, each carrying its WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The batch enrichment primitive for the community-tag taxonomy. Credential-free public Steam store query API.\n- **Params:** `appids` (string, **required**) — Comma-separated numeric app ids (max 100); `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Steam store language name\n\n### `steam_news`\n\n- **HTTP:** `GET /steam/news`\n- **What:** Get recent news posts for a Steam app. Returns recent news/announcement posts for an app (title, author, contents, feed, date). Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `count` (integer, optional) — Number of posts (max 50); `maxlength` (integer, optional) — Max characters of each post body; default 300, set -1 for full content\n\n### `steam_package`\n\n- **HTTP:** `GET /steam/package`\n- **What:** Get Steam store details for a package. Returns normalized details for a Steam package (a purchasable bundle): name, the apps it contains, price, platforms, and release date. cc selects the store region and price currency. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `packageid` (string, **required**) — Numeric Steam package id\n\n### `steam_players`\n\n- **HTTP:** `GET /steam/players`\n- **What:** Get the current concurrent-player count for a Steam app. Returns the official current concurrent-players count for an app. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_reviews`\n\n- **HTTP:** `GET /steam/reviews`\n- **What:** List reviews for a Steam app. Returns a page of user reviews for an app with cursor pagination and an aggregate query_summary (score, positive/negative totals). Aggregate totals populate only on the first page (cursor=*). Pass the returned cursor back to page. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cursor` (string, optional) — Pagination cursor from the previous page; `day_range` (integer, optional) — Look-back window in days (filter=all only, max 365); `filter` (string, optional) — Sort order; `language` (string, optional) — Steam language name or 'all'; `num_per_page` (integer, optional) — Reviews per page (max 100); `purchase_type` (string, optional) — Purchase source filter; `review_type` (string, optional) — Review sentiment filter\n\n### `steam_reviews_histogram`\n\n- **HTTP:** `GET /steam/reviews/histogram`\n- **What:** Get the review up/down histogram for a Steam app. Returns the positive/negative recommendation counts over time (the store review graph): weekly/monthly rollups plus recent daily buckets. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `language` (string, optional) — Steam language name or 'all'\n\n### `steam_search`\n\n- **HTTP:** `GET /steam/search`\n- **What:** Search the Steam store by title. Resolves a search term to Steam apps via the store typeahead JSON (title, appid, price, platforms, metascore). Best for title -> appid lookup; returns roughly ten results. For faceted, paginated search use /steam/search/results. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `term` (string, **required**) — Search term\n\n### `steam_search_results`\n\n- **HTTP:** `GET /steam/search/results`\n- **What:** Faceted, paginated Steam store search. Runs the Steam store search with pagination and sorting and returns the result rows (appid, title, release date, review summary, price, platforms). Supports start/count paging and sort_by. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `count` (integer, optional) — Results per page (max 100); `l` (string, optional) — Language code; `sort_by` (string, optional) — Sort order; `start` (integer, optional) — Result offset for pagination; `term` (string, **required**) — Search term\n\n### `steam_steamspy`\n\n- **HTTP:** `GET /steam/steamspy`\n- **What:** Get SteamSpy third-party ownership and playtime estimates. Returns third-party ownership, concurrent-user, playtime, and review estimates for an app from SteamSpy. These are SteamSpy estimates, not official Steam figures. Credential-free public third-party JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_tags`\n\n- **HTTP:** `GET /steam/tags`\n- **What:** Browse the Steam store by community tag and store facets. Browses the store by the community-tag taxonomy (Roguelike, Metroidvania, Cozy...) and the store filter facets, with no free-text term. Filter by one or more tag ids, a store category id, platform (os), a maximum price, specials-only, and hide-free-to-play; sort and page the browse-rank rows. Each row includes its community tag ids (resolve names via /steam/tags/list). Pagination runs the full result set (total is the real, fully-pageable match count); paging past total returns an empty page. Credential-free public Steam storefront JSON.\n- **Params:** `category1` (string, optional) — Numeric Steam store category id (e.g. 998 games, 21 dlc); `category2` (string, optional) — Additional numeric store category id (feature); `category3` (string, optional) — Additional numeric store category id (feature); `cc` (string, optional) — Store country code (ISO, selects currency); `count` (integer, optional) — Results per page (max 100); `deck_compatibility` (string, optional) — Steam Deck compatibility filter: 1 unsupported, 2 playable, 3 verified; `filter` (string, optional) — Curated preset applied within the other facets; `hidef2p` (boolean, optional) — Hide free-to-play titles; `l` (string, optional) — Language code; `maxprice` (string, optional) — Maximum price as whole cents in the cc currency, or the literal 'free'; `os` (string, optional) — Comma-separated platform filter subset of: win, mac, linux; `sort_by` (string, optional) — Sort order; `specials` (boolean, optional) — Only discounted titles; `start` (integer, optional) — Result offset for pagination; `supportedlang` (string, optional) — Only titles supporting this Steam language name; `tags` (string, optional) — Comma-separated numeric community tag ids (all must match); resolve ids via /steam/tags/list; `untags` (string, optional) — Comma-separated numeric community tag ids to EXCLUDE; `vrsupport` (string, optional) — Comma-separated VR-support filter ids (e.g. 401 seated, 402 standing, 403 roomscale)\n\n### `steam_tags_list`\n\n- **HTTP:** `GET /steam/tags/list`\n- **What:** List Steam community tag ids and names. Returns Steam's popular community tags (numeric id + localized name) so callers can map a tag name to the id that /steam/tags and /steam/category expect. Credential-free public Steam storefront JSON.\n- **Params:** `l` (string, optional) — Steam store language name for the tag labels\n\n### `steam_top_sellers`\n\n- **HTTP:** `GET /steam/top-sellers`\n- **What:** Get Steam's weekly top-sellers chart for a country. Returns the store's weekly top-sellers chart for a country, each rank carrying the full store item (name, price, weighted community tags, review summary, platforms). cc selects the country whose sales ranking and currency are returned. Credential-free public Steam store top-sellers API.\n- **Params:** `cc` (string, optional) — Country code (ISO) whose weekly sales ranking is returned; `l` (string, optional) — Steam store language name\n\n## PlayStation (10)\n\n### `playstation_browse`\n\n- **HTTP:** `GET /playstation/browse`\n- **What:** Browse the PlayStation Store all-games grid. Returns a page of the PlayStation Store \"all games\" grid with per-item price, platforms, and media, plus the available filter facets (price, genre, platform, subscription, content type, etc.) with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number\n\n### `playstation_category`\n\n- **HTTP:** `GET /playstation/category`\n- **What:** Browse a PlayStation Store category grid. Returns a page of a specific PlayStation Store category grid (by category UUID) with per-item price, platforms, and media, plus the available filter facets with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — Category UUID; `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number\n\n### `playstation_concept`\n\n- **HTTP:** `GET /playstation/concept`\n- **What:** Get PlayStation Store details for a concept (game hub). Returns normalized store metadata for a PlayStation concept: title, publisher, release date, platforms, genres, description, content rating, aggregate star rating, the default product's purchase price, media, and the full lists of purchasable editions and add-ons. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — Numeric PlayStation concept id; `l` (string, optional) — Language code\n\n### `playstation_concept_reviews`\n\n- **HTTP:** `GET /playstation/concept/reviews`\n- **What:** Get PlayStation concept reviews. Returns one page of written PlayStation Store reviews for a concept (game hub), each with its title, body, rating, helpful count, spoiler flag, the edition the reviewer owned, and reviewer identity (online id, PS Plus subscriber status, verified-purchase status, avatar). Also includes the concept's aggregate star rating (including its rating distribution). page/page_size page through the full review list (total_count reports the true upstream review count, has_next_page whether a later page has more), sort controls ordering, and rating optionally filters to one star value. Reviews are region-scoped: cc selects the store region whose reviews are returned (and the price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO); `id` (string, **required**) — Numeric PlayStation concept id; `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number; `page_size` (integer, optional) — Reviews per page; `rating` (integer, optional) — Filter to one star rating (1-5); `sort` (string, optional) — Sort order\n\n### `playstation_deals`\n\n- **HTTP:** `GET /playstation/deals`\n- **What:** Get PlayStation Store deals shelves. Returns the PlayStation Store deals landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_latest`\n\n- **HTTP:** `GET /playstation/latest`\n- **What:** Get PlayStation Store latest-release shelves. Returns the PlayStation Store latest-releases landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_page`\n\n- **HTTP:** `GET /playstation/page`\n- **What:** Get a PlayStation Store merchandising page by alias. Reads any PlayStation Store merchandising page by alias (e.g. collections, subscriptions, or a promotional alias) and returns its shelves (sections) plus the curated collection links found on the page. Each collection link carries a category_id (UUID) you can pass to /playstation/category to fetch that collection's full, paginated title grid — the credential-free way to browse themed/curated selections. Known aliases: collections, subscriptions, deals, latest. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.\n- **Params:** `alias` (string, **required**) — Merchandising page alias; `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_product`\n\n- **HTTP:** `GET /playstation/product`\n- **What:** Get PlayStation Store details for a single product. Returns normalized store metadata for a single PlayStation product/edition: title, np title id, parent concept id, product type and store classification, edition name, publisher, release date, platforms, genres, spoken/screen languages, content rating, aggregate star rating, purchase price, and media. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — PlayStation product id; `l` (string, optional) — Language code\n\n### `playstation_search`\n\n- **HTTP:** `GET /playstation/search`\n- **What:** Search the PlayStation Store. Returns a page of PlayStation Store search results (concepts and products) for a term, with pagination and per-item price, platforms, classification, and media. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number; `page_size` (integer, optional) — Results per page (max 48); `term` (string, **required**) — Search term\n\n### `playstation_suggest`\n\n- **HTTP:** `GET /playstation/suggest`\n- **What:** Get PlayStation Store search suggestions for a term. Returns typeahead-style PlayStation Store search suggestions for a partial or full term: id, name, classification, platforms, publisher, release date, price, a representative image, and a direct store URL per match. Matching is upstream-ordered and loose (it may include titles that only loosely relate to the term), not a ranked exact-substring search. limit caps how many suggestions are returned (max 20; the upstream API does not honor a higher value). cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `limit` (integer, optional) — Maximum number of suggestions to return (max 20); `term` (string, **required**) — Search term (partial or full)\n\n## Roblox (4)\n\n### `roblox_badges`\n\n- **HTTP:** `GET /roblox/badges`\n- **What:** List Roblox experience badges. Returns one cursor-paginated page of public badge metadata for a Roblox experience. Pass next_cursor back unchanged as cursor. No user-awarded badge data is returned.\n- **Params:** `cursor` (string, optional) — Opaque cursor returned by a previous response; `universe_id` (integer, **required**) — Positive Roblox universe id\n\n### `roblox_game`\n\n- **HTTP:** `GET /roblox/game`\n- **What:** Get a Roblox experience. Returns public catalog detail for one Roblox experience, including aggregate votes and its public icon. This endpoint does not return player, account, purchase, or server data.\n- **Params:** `universe_id` (integer, **required**) — Positive Roblox universe id\n\n### `roblox_rankings`\n\n- **HTTP:** `GET /roblox/rankings`\n- **What:** List Roblox game rankings. Returns a public Roblox game shelf. Allowed sort_id values: top-trending, up-and-coming, top-playing-now, fun-with-friends, top-revisited.\n- **Params:** `sort_id` (string, optional) — Ranking shelf: top-trending, up-and-coming, top-playing-now, fun-with-friends, top-revisited\n\n### `roblox_search`\n\n- **HTTP:** `GET /roblox/search`\n- **What:** Search Roblox experiences. Searches anonymous public Roblox game experiences. The opaque page_token continues the same search.\n- **Params:** `page_token` (string, optional) — Opaque page token returned by a previous search; `q` (string, **required**) — Experience search query\n\nFile v1.0.18:skill-card.md\n\n## Description:\n\nResearches public video game store data through the Crawlora API, including Steam pricing, reviews, player counts, charts, tags, achievements, PlayStation Store products and deals, and public Roblox lookup endpoints.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to answer game research questions such as current prices, review summaries, player counts, trending titles, store listings, and sale availability from public storefront data.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Crawlora API keys and game lookup parameters are sent to Crawlora.\n\nMitigation: Store the API key only in CRAWLORA_API_KEY, avoid committing it, and review whether lookup terms are appropriate to share with the API provider.\n\nRisk: The top-level description emphasizes Steam and PlayStation, while the bundled endpoint set also includes public Roblox lookups.\n\nMitigation: Review the endpoint reference before use and align user-facing descriptions with the full platform scope.\n\nRisk: Steam pricing and availability can vary by storefront region and language.\n\nMitigation: Pass supported country and language parameters when results need to match a specific storefront.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/gaming-research)\n- [Crawlora publisher profile](https://clawhub.ai/user/crawlora-org)\n- [Endpoint reference](artifact/reference/endpoints.md)\n- [Crawlora API key signup](https://crawlora.net)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands that return JSON from the Crawlora API]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; responses contain public game store data and may vary by country and language parameters.]\n\n## Skill Version(s):\n\n1.0.18 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.17: 5 files, 10739 bytes\n\nFiles: reference/endpoints.md (22157b), scripts/crawlora.sh (4715b), skill-card.md (1924b), SKILL.md (3889b), _meta.json (135b)\n\nFile v1.0.17:SKILL.md\n\n---\nname: gaming-research\ndescription: Researches video games via the Crawlora API — Steam (store pages, pricing, reviews, player counts, charts, tags, achievements) and PlayStation Store (products, categories, deals) — returning clean JSON. Use when the user wants a game's price/reviews/player count, what's trending or on sale, or a store listing's details.\n---\n\n# Gaming research\n\nLook up game store listings, pricing, reviews, and player counts across\nSteam and the PlayStation Store as normalized JSON from the Crawlora API —\nno scraping storefront pages.\n\n## When to use this skill\n\n- \"What does <game> cost / how is it rated?\"\n- \"How many people are playing <game> right now?\" (Steam player counts)\n- \"What's trending / most played / top sellers right now?\"\n- \"What's on sale?\" (Steam or PlayStation deals)\n- \"Find games in <genre/tag>\" or \"similar to <game>.\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Steam** — `/steam/search` (`term`) to find an `appid`, then\n   `/steam/app` for the store page, `/steam/reviews` (+ `/reviews/histogram`)\n   for review data, `/steam/players` for the current concurrent player\n   count, `/steam/news` for updates, `/steam/achievements` for the\n   achievement list. `/steam/charts/most-played`, `/steam/charts/concurrent`,\n   `/steam/charts/top-releases`, `/steam/top-sellers`, and `/steam/featured`\n   cover trending/what's-hot; `/steam/tags` and `/steam/category/{slug}`\n   filter by genre/tag.\n2. **PlayStation** — `/playstation/search` (`term`) to find a product `id`,\n   then `/playstation/product` for detail, `/playstation/concept` for a\n   game's overall franchise/concept page, `/playstation/category` to browse\n   a category, `/playstation/deals` for current discounts,\n   `/playstation/latest` for new releases.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every Steam and\nPlayStation endpoint this skill uses.\n\n## Examples\n\n- **Buy-decision brief:** `/steam/app` (price, tags) + `/steam/reviews/histogram`\n  (rating distribution) + `/steam/players` (is it still active) in one pass.\n- **What's hot right now:** `/steam/charts/most-played` + `/steam/top-sellers`\n  cross-checked against `/playstation/latest` for console releases.\n- **Sale-hunting:** `/steam/featured` (specials) + `/playstation/deals` for\n  the same title across both storefronts.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public store/review pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Steam pricing/availability is region-specific** — pass `cc` (country\n  code) and `l` (language) where supported to match a specific storefront.\n- Resolve names to platform ids via `.../search` before calling a detail\n  endpoint.\n\nFile v1.0.17:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"gaming-research\",\n  \"version\": \"1.0.17\",\n  \"publishedAt\": 1789640313388\n}\n\nFile v1.0.17:reference/endpoints.md\n\n# gaming-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**33 endpoints across 3 platform group(s).**\n\n## Steam (21)\n\n### `steam_achievements`\n\n- **HTTP:** `GET /steam/achievements`\n- **What:** Get global achievement completion percentages for a Steam app. Returns the global unlock percentage for each of an app's achievements, sorted most-unlocked first. Apps without global achievement stats return an empty list. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_app`\n\n- **HTTP:** `GET /steam/app`\n- **What:** Get Steam store details for an app. Returns normalized store metadata for a single Steam app (title, type, price, developers/publishers, platforms, genres, categories, release date, metacritic, recommendation and achievement counts). cc selects the store region (and price currency) and l the text language. filters is a comma-separated subset of allowed fields to shrink the payload. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cc` (string, optional) — Store country code (ISO, selects currency); `filters` (string, optional) — Comma-separated fields: basic, price_overview, developers, publishers, categories, genres, release_date, platforms, metacritic, achievements, screenshots, movies, recommendations, controller_support, dlc, short_description, supported_languages, packages, package_groups, ratings, content_descriptors, background; `l` (string, optional) — Language code\n\n### `steam_category`\n\n- **HTTP:** `GET /steam/category/{slug}`\n- **What:** Browse a store category (tag) with weighted community tags. Returns a catalog slice for a community tag / category via Steam's keyless IStoreQueryService, carrying each item's WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The slug is a numeric tag id or a tag name (case- and separator-insensitive, e.g. rogue_like); resolve ids via /steam/tags/list. Ordering is Steam's default relevance — for sorted or os/price-faceted browse use /steam/tags. Credential-free public Steam store query API.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `coming_soon_only` (boolean, optional) — Only unreleased / coming-soon titles; `count` (integer, optional) — Results per page (max 100); `free` (boolean, optional) — Only free titles; `l` (string, optional) — Steam store language name; `released_only` (boolean, optional) — Only already-released titles; `slug` (string, **required**) — Community tag id (numeric) or tag name slug; `start` (integer, optional) — Result offset for pagination\n\n### `steam_charts_concurrent`\n\n- **HTTP:** `GET /steam/charts/concurrent`\n- **What:** Get Steam's live games-by-concurrent-players leaderboard. Returns the live leaderboard of games ranked by current concurrent players (rank, appid, current concurrent, peak). By default each row is enriched with the game name and review summary; pass enrich=false for raw ranked app ids. Credential-free public Steam WebAPI JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO) for name enrichment; `enrich` (boolean, optional) — Attach game name and review summary to each rank; `l` (string, optional) — Steam store language name for name enrichment\n\n### `steam_charts_most_played`\n\n- **HTTP:** `GET /steam/charts/most-played`\n- **What:** Get Steam's weekly most-played games chart. Returns Steam's weekly most-played chart: the top games ranked by peak concurrent players over the last week (rank, appid, previous-week rank, peak players). By default each row is enriched with the game name and review summary via a batch lookup; pass enrich=false for the raw ranked app ids only. Credential-free public Steam WebAPI JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO) for name enrichment; `enrich` (boolean, optional) — Attach game name and review summary to each rank; `l` (string, optional) — Steam store language name for name enrichment\n\n### `steam_charts_top_releases`\n\n- **HTTP:** `GET /steam/charts/top-releases`\n- **What:** Get Steam's monthly best-new-releases index. Returns Steam's monthly top-releases index: one page per month, each listing that month's top-released app ids (with the month label and start date). The app-id lists are large and not name-enriched; resolve names via /steam/items. Credential-free public Steam WebAPI JSON.\n- **Params:** _none_\n\n### `steam_community_recommendations`\n\n- **HTTP:** `GET /steam/community-recommendations`\n- **What:** Get the store's community-recommended reviews feed. Returns a batch of recent, quality user reviews recommended across the whole store (author, playtime, helpful votes, and the recommended app). Filter by review kind/sort, reviewer playtime window, review language, and store region. The upstream serves a fixed batch and, unauthenticated, does not support tag filtering or deep pagination. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `playtime_max` (integer, optional) — Maximum reviewer playtime in hours (0 = no maximum); `playtime_min` (integer, optional) — Minimum reviewer playtime in hours (0 = no minimum); `review_filter` (string, optional) — Review kind / sort; `review_language` (string, optional) — Review language: 'my_languages' or a Steam language name\n\n### `steam_featured`\n\n- **HTTP:** `GET /steam/featured`\n- **What:** Get the Steam store featured capsules. Returns the storefront's featured capsules for a region (per-platform featured lists plus large spotlight capsules), including discount and price fields. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `steam_featured_categories`\n\n- **HTTP:** `GET /steam/featured-categories`\n- **What:** Get Steam top sellers, new releases, specials and coming soon. Returns the storefront merchandising buckets for a region: specials, top_sellers, new_releases, and coming_soon, each with its item list. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `steam_items`\n\n- **HTTP:** `GET /steam/items`\n- **What:** Resolve a batch of app ids to store items with weighted tags. Resolves up to 100 Steam app ids in one call to normalized store items via Steam's keyless IStoreBrowseService, each carrying its WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The batch enrichment primitive for the community-tag taxonomy. Credential-free public Steam store query API.\n- **Params:** `appids` (string, **required**) — Comma-separated numeric app ids (max 100); `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Steam store language name\n\n### `steam_news`\n\n- **HTTP:** `GET /steam/news`\n- **What:** Get recent news posts for a Steam app. Returns recent news/announcement posts for an app (title, author, contents, feed, date). Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `count` (integer, optional) — Number of posts (max 50); `maxlength` (integer, optional) — Max characters of each post body; default 300, set -1 for full content\n\n### `steam_package`\n\n- **HTTP:** `GET /steam/package`\n- **What:** Get Steam store details for a package. Returns normalized details for a Steam package (a purchasable bundle): name, the apps it contains, price, platforms, and release date. cc selects the store region and price currency. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `packageid` (string, **required**) — Numeric Steam package id\n\n### `steam_players`\n\n- **HTTP:** `GET /steam/players`\n- **What:** Get the current concurrent-player count for a Steam app. Returns the official current concurrent-players count for an app. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_reviews`\n\n- **HTTP:** `GET /steam/reviews`\n- **What:** List reviews for a Steam app. Returns a page of user reviews for an app with cursor pagination and an aggregate query_summary (score, positive/negative totals). Aggregate totals populate only on the first page (cursor=*). Pass the returned cursor back to page. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cursor` (string, optional) — Pagination cursor from the previous page; `day_range` (integer, optional) — Look-back window in days (filter=all only, max 365); `filter` (string, optional) — Sort order; `language` (string, optional) — Steam language name or 'all'; `num_per_page` (integer, optional) — Reviews per page (max 100); `purchase_type` (string, optional) — Purchase source filter; `review_type` (string, optional) — Review sentiment filter\n\n### `steam_reviews_histogram`\n\n- **HTTP:** `GET /steam/reviews/histogram`\n- **What:** Get the review up/down histogram for a Steam app. Returns the positive/negative recommendation counts over time (the store review graph): weekly/monthly rollups plus recent daily buckets. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `language` (string, optional) — Steam language name or 'all'\n\n### `steam_search`\n\n- **HTTP:** `GET /steam/search`\n- **What:** Search the Steam store by title. Resolves a search term to Steam apps via the store typeahead JSON (title, appid, price, platforms, metascore). Best for title -> appid lookup; returns roughly ten results. For faceted, paginated search use /steam/search/results. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `term` (string, **required**) — Search term\n\n### `steam_search_results`\n\n- **HTTP:** `GET /steam/search/results`\n- **What:** Faceted, paginated Steam store search. Runs the Steam store search with pagination and sorting and returns the result rows (appid, title, release date, review summary, price, platforms). Supports start/count paging and sort_by. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `count` (integer, optional) — Results per page (max 100); `l` (string, optional) — Language code; `sort_by` (string, optional) — Sort order; `start` (integer, optional) — Result offset for pagination; `term` (string, **required**) — Search term\n\n### `steam_steamspy`\n\n- **HTTP:** `GET /steam/steamspy`\n- **What:** Get SteamSpy third-party ownership and playtime estimates. Returns third-party ownership, concurrent-user, playtime, and review estimates for an app from SteamSpy. These are SteamSpy estimates, not official Steam figures. Credential-free public third-party JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_tags`\n\n- **HTTP:** `GET /steam/tags`\n- **What:** Browse the Steam store by community tag and store facets. Browses the store by the community-tag taxonomy (Roguelike, Metroidvania, Cozy...) and the store filter facets, with no free-text term. Filter by one or more tag ids, a store category id, platform (os), a maximum price, specials-only, and hide-free-to-play; sort and page the browse-rank rows. Each row includes its community tag ids (resolve names via /steam/tags/list). Pagination runs the full result set (total is the real, fully-pageable match count); paging past total returns an empty page. Credential-free public Steam storefront JSON.\n- **Params:** `category1` (string, optional) — Numeric Steam store category id (e.g. 998 games, 21 dlc); `category2` (string, optional) — Additional numeric store category id (feature); `category3` (string, optional) — Additional numeric store category id (feature); `cc` (string, optional) — Store country code (ISO, selects currency); `count` (integer, optional) — Results per page (max 100); `deck_compatibility` (string, optional) — Steam Deck compatibility filter: 1 unsupported, 2 playable, 3 verified; `filter` (string, optional) — Curated preset applied within the other facets; `hidef2p` (boolean, optional) — Hide free-to-play titles; `l` (string, optional) — Language code; `maxprice` (string, optional) — Maximum price as whole cents in the cc currency, or the literal 'free'; `os` (string, optional) — Comma-separated platform filter subset of: win, mac, linux; `sort_by` (string, optional) — Sort order; `specials` (boolean, optional) — Only discounted titles; `start` (integer, optional) — Result offset for pagination; `supportedlang` (string, optional) — Only titles supporting this Steam language name; `tags` (string, optional) — Comma-separated numeric community tag ids (all must match); resolve ids via /steam/tags/list; `untags` (string, optional) — Comma-separated numeric community tag ids to EXCLUDE; `vrsupport` (string, optional) — Comma-separated VR-support filter ids (e.g. 401 seated, 402 standing, 403 roomscale)\n\n### `steam_tags_list`\n\n- **HTTP:** `GET /steam/tags/list`\n- **What:** List Steam community tag ids and names. Returns Steam's popular community tags (numeric id + localized name) so callers can map a tag name to the id that /steam/tags and /steam/category expect. Credential-free public Steam storefront JSON.\n- **Params:** `l` (string, optional) — Steam store language name for the tag labels\n\n### `steam_top_sellers`\n\n- **HTTP:** `GET /steam/top-sellers`\n- **What:** Get Steam's weekly top-sellers chart for a country. Returns the store's weekly top-sellers chart for a country, each rank carrying the full store item (name, price, weighted community tags, review summary, platforms). cc selects the country whose sales ranking and currency are returned. Credential-free public Steam store top-sellers API.\n- **Params:** `cc` (string, optional) — Country code (ISO) whose weekly sales ranking is returned; `l` (string, optional) — Steam store language name\n\n## PlayStation (8)\n\n### `playstation_browse`\n\n- **HTTP:** `GET /playstation/browse`\n- **What:** Browse the PlayStation Store all-games grid. Returns a page of the PlayStation Store \"all games\" grid with per-item price, platforms, and media, plus the available filter facets (price, genre, platform, subscription, content type, etc.) with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number\n\n### `playstation_category`\n\n- **HTTP:** `GET /playstation/category`\n- **What:** Browse a PlayStation Store category grid. Returns a page of a specific PlayStation Store category grid (by category UUID) with per-item price, platforms, and media, plus the available filter facets with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — Category UUID; `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number\n\n### `playstation_concept`\n\n- **HTTP:** `GET /playstation/concept`\n- **What:** Get PlayStation Store details for a concept (game hub). Returns normalized store metadata for a PlayStation concept: title, publisher, release date, platforms, genres, description, content rating, aggregate star rating, the default product's purchase price, media, and the full lists of purchasable editions and add-ons. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — Numeric PlayStation concept id; `l` (string, optional) — Language code\n\n### `playstation_deals`\n\n- **HTTP:** `GET /playstation/deals`\n- **What:** Get PlayStation Store deals shelves. Returns the PlayStation Store deals landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_latest`\n\n- **HTTP:** `GET /playstation/latest`\n- **What:** Get PlayStation Store latest-release shelves. Returns the PlayStation Store latest-releases landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_page`\n\n- **HTTP:** `GET /playstation/page`\n- **What:** Get a PlayStation Store merchandising page by alias. Reads any PlayStation Store merchandising page by alias (e.g. collections, subscriptions, or a promotional alias) and returns its shelves (sections) plus the curated collection links found on the page. Each collection link carries a category_id (UUID) you can pass to /playstation/category to fetch that collection's full, paginated title grid — the credential-free way to browse themed/curated selections. Known aliases: collections, subscriptions, deals, latest. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `alias` (string, **required**) — Merchandising page alias; `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_product`\n\n- **HTTP:** `GET /playstation/product`\n- **What:** Get PlayStation Store details for a single product. Returns normalized store metadata for a single PlayStation product/edition: title, np title id, parent concept id, product type and store classification, edition name, publisher, release date, platforms, genres, spoken/screen languages, content rating, aggregate star rating, purchase price, and media. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — PlayStation product id; `l` (string, optional) — Language code\n\n### `playstation_search`\n\n- **HTTP:** `GET /playstation/search`\n- **What:** Search the PlayStation Store. Returns a page of PlayStation Store search results (concepts and products) for a term, with pagination and per-item price, platforms, classification, and media. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number; `page_size` (integer, optional) — Results per page (max 48); `term` (string, **required**) — Search term\n\n## Roblox (4)\n\n### `roblox_badges`\n\n- **HTTP:** `GET /roblox/badges`\n- **What:** List Roblox experience badges. Returns one cursor-paginated page of public badge metadata for a Roblox experience. Pass next_cursor back unchanged as cursor. No user-awarded badge data is returned.\n- **Params:** `cursor` (string, optional) — Opaque cursor returned by a previous response; `universe_id` (integer, **required**) — Positive Roblox universe id\n\n### `roblox_game`\n\n- **HTTP:** `GET /roblox/game`\n- **What:** Get a Roblox experience. Returns public catalog detail for one Roblox experience, including aggregate votes and its public icon. This endpoint does not return player, account, purchase, or server data.\n- **Params:** `universe_id` (integer, **required**) — Positive Roblox universe id\n\n### `roblox_rankings`\n\n- **HTTP:** `GET /roblox/rankings`\n- **What:** List Roblox game rankings. Returns a public Roblox game shelf. Allowed sort_id values: top-trending, up-and-coming, top-playing-now, fun-with-friends, top-revisited.\n- **Params:** `sort_id` (string, optional) — Ranking shelf: top-trending, up-and-coming, top-playing-now, fun-with-friends, top-revisited\n\n### `roblox_search`\n\n- **HTTP:** `GET /roblox/search`\n- **What:** Search Roblox experiences. Searches anonymous public Roblox game experiences. The opaque page_token continues the same search.\n- **Params:** `page_token` (string, optional) — Opaque page token returned by a previous search; `q` (string, **required**) — Experience search query\n\nFile v1.0.17:skill-card.md\n\n## Description:\n\nResearches video games via the Crawlora API: Steam store pages, pricing, reviews, player counts, charts, tags, and achievements; PlayStation Store products, categories, and deals; and public Roblox game endpoints.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to retrieve public game store, review, pricing, player-count, chart, tag, achievement, deal, and catalog data as normalized JSON through Crawlora.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Game queries and the Crawlora API key are sent to Crawlora.\n\nMitigation: Avoid private information in search terms and provide the key only through CRAWLORA_API_KEY.\n\nRisk: The artifact includes Roblox public-data endpoints although the main description highlights Steam and PlayStation.\n\nMitigation: Review endpoint coverage before deployment and tell users that Roblox public game endpoints are also available.\n\n## Reference(s):\n\n- [gaming-research endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API base](https://api.crawlora.net/api/v1)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell command examples and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY and sends game queries to Crawlora.]\n\n## Skill Version(s):\n\n1.0.17 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.16: 5 files, 11327 bytes\n\nFiles: reference/endpoints.md (22157b), scripts/crawlora.sh (5635b), skill-card.md (2227b), SKILL.md (3889b), _meta.json (135b)\n\nFile v1.0.16:SKILL.md\n\n---\nname: gaming-research\ndescription: Researches video games via the Crawlora API — Steam (store pages, pricing, reviews, player counts, charts, tags, achievements) and PlayStation Store (products, categories, deals) — returning clean JSON. Use when the user wants a game's price/reviews/player count, what's trending or on sale, or a store listing's details.\n---\n\n# Gaming research\n\nLook up game store listings, pricing, reviews, and player counts across\nSteam and the PlayStation Store as normalized JSON from the Crawlora API —\nno scraping storefront pages.\n\n## When to use this skill\n\n- \"What does <game> cost / how is it rated?\"\n- \"How many people are playing <game> right now?\" (Steam player counts)\n- \"What's trending / most played / top sellers right now?\"\n- \"What's on sale?\" (Steam or PlayStation deals)\n- \"Find games in <genre/tag>\" or \"similar to <game>.\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Steam** — `/steam/search` (`term`) to find an `appid`, then\n   `/steam/app` for the store page, `/steam/reviews` (+ `/reviews/histogram`)\n   for review data, `/steam/players` for the current concurrent player\n   count, `/steam/news` for updates, `/steam/achievements` for the\n   achievement list. `/steam/charts/most-played`, `/steam/charts/concurrent`,\n   `/steam/charts/top-releases`, `/steam/top-sellers`, and `/steam/featured`\n   cover trending/what's-hot; `/steam/tags` and `/steam/category/{slug}`\n   filter by genre/tag.\n2. **PlayStation** — `/playstation/search` (`term`) to find a product `id`,\n   then `/playstation/product` for detail, `/playstation/concept` for a\n   game's overall franchise/concept page, `/playstation/category` to browse\n   a category, `/playstation/deals` for current discounts,\n   `/playstation/latest` for new releases.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every Steam and\nPlayStation endpoint this skill uses.\n\n## Examples\n\n- **Buy-decision brief:** `/steam/app` (price, tags) + `/steam/reviews/histogram`\n  (rating distribution) + `/steam/players` (is it still active) in one pass.\n- **What's hot right now:** `/steam/charts/most-played` + `/steam/top-sellers`\n  cross-checked against `/playstation/latest` for console releases.\n- **Sale-hunting:** `/steam/featured` (specials) + `/playstation/deals` for\n  the same title across both storefronts.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public store/review pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Steam pricing/availability is region-specific** — pass `cc` (country\n  code) and `l` (language) where supported to match a specific storefront.\n- Resolve names to platform ids via `.../search` before calling a detail\n  endpoint.\n\nFile v1.0.16:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"gaming-research\",\n  \"version\": \"1.0.16\",\n  \"publishedAt\": 1789350310201\n}\n\nFile v1.0.16:reference/endpoints.md\n\n# gaming-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**33 endpoints across 3 platform group(s).**\n\n## Steam (21)\n\n### `steam_achievements`\n\n- **HTTP:** `GET /steam/achievements`\n- **What:** Get global achievement completion percentages for a Steam app. Returns the global unlock percentage for each of an app's achievements, sorted most-unlocked first. Apps without global achievement stats return an empty list. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_app`\n\n- **HTTP:** `GET /steam/app`\n- **What:** Get Steam store details for an app. Returns normalized store metadata for a single Steam app (title, type, price, developers/publishers, platforms, genres, categories, release date, metacritic, recommendation and achievement counts). cc selects the store region (and price currency) and l the text language. filters is a comma-separated subset of allowed fields to shrink the payload. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cc` (string, optional) — Store country code (ISO, selects currency); `filters` (string, optional) — Comma-separated fields: basic, price_overview, developers, publishers, categories, genres, release_date, platforms, metacritic, achievements, screenshots, movies, recommendations, controller_support, dlc, short_description, supported_languages, packages, package_groups, ratings, content_descriptors, background; `l` (string, optional) — Language code\n\n### `steam_category`\n\n- **HTTP:** `GET /steam/category/{slug}`\n- **What:** Browse a store category (tag) with weighted community tags. Returns a catalog slice for a community tag / category via Steam's keyless IStoreQueryService, carrying each item's WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The slug is a numeric tag id or a tag name (case- and separator-insensitive, e.g. rogue_like); resolve ids via /steam/tags/list. Ordering is Steam's default relevance — for sorted or os/price-faceted browse use /steam/tags. Credential-free public Steam store query API.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `coming_soon_only` (boolean, optional) — Only unreleased / coming-soon titles; `count` (integer, optional) — Results per page (max 100); `free` (boolean, optional) — Only free titles; `l` (string, optional) — Steam store language name; `released_only` (boolean, optional) — Only already-released titles; `slug` (string, **required**) — Community tag id (numeric) or tag name slug; `start` (integer, optional) — Result offset for pagination\n\n### `steam_charts_concurrent`\n\n- **HTTP:** `GET /steam/charts/concurrent`\n- **What:** Get Steam's live games-by-concurrent-players leaderboard. Returns the live leaderboard of games ranked by current concurrent players (rank, appid, current concurrent, peak). By default each row is enriched with the game name and review summary; pass enrich=false for raw ranked app ids. Credential-free public Steam WebAPI JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO) for name enrichment; `enrich` (boolean, optional) — Attach game name and review summary to each rank; `l` (string, optional) — Steam store language name for name enrichment\n\n### `steam_charts_most_played`\n\n- **HTTP:** `GET /steam/charts/most-played`\n- **What:** Get Steam's weekly most-played games chart. Returns Steam's weekly most-played chart: the top games ranked by peak concurrent players over the last week (rank, appid, previous-week rank, peak players). By default each row is enriched with the game name and review summary via a batch lookup; pass enrich=false for the raw ranked app ids only. Credential-free public Steam WebAPI JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO) for name enrichment; `enrich` (boolean, optional) — Attach game name and review summary to each rank; `l` (string, optional) — Steam store language name for name enrichment\n\n### `steam_charts_top_releases`\n\n- **HTTP:** `GET /steam/charts/top-releases`\n- **What:** Get Steam's monthly best-new-releases index. Returns Steam's monthly top-releases index: one page per month, each listing that month's top-released app ids (with the month label and start date). The app-id lists are large and not name-enriched; resolve names via /steam/items. Credential-free public Steam WebAPI JSON.\n- **Params:** _none_\n\n### `steam_community_recommendations`\n\n- **HTTP:** `GET /steam/community-recommendations`\n- **What:** Get the store's community-recommended reviews feed. Returns a batch of recent, quality user reviews recommended across the whole store (author, playtime, helpful votes, and the recommended app). Filter by review kind/sort, reviewer playtime window, review language, and store region. The upstream serves a fixed batch and, unauthenticated, does not support tag filtering or deep pagination. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `playtime_max` (integer, optional) — Maximum reviewer playtime in hours (0 = no maximum); `playtime_min` (integer, optional) — Minimum reviewer playtime in hours (0 = no minimum); `review_filter` (string, optional) — Review kind / sort; `review_language` (string, optional) — Review language: 'my_languages' or a Steam language name\n\n### `steam_featured`\n\n- **HTTP:** `GET /steam/featured`\n- **What:** Get the Steam store featured capsules. Returns the storefront's featured capsules for a region (per-platform featured lists plus large spotlight capsules), including discount and price fields. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `steam_featured_categories`\n\n- **HTTP:** `GET /steam/featured-categories`\n- **What:** Get Steam top sellers, new releases, specials and coming soon. Returns the storefront merchandising buckets for a region: specials, top_sellers, new_releases, and coming_soon, each with its item list. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `steam_items`\n\n- **HTTP:** `GET /steam/items`\n- **What:** Resolve a batch of app ids to store items with weighted tags. Resolves up to 100 Steam app ids in one call to normalized store items via Steam's keyless IStoreBrowseService, each carrying its WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The batch enrichment primitive for the community-tag taxonomy. Credential-free public Steam store query API.\n- **Params:** `appids` (string, **required**) — Comma-separated numeric app ids (max 100); `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Steam store language name\n\n### `steam_news`\n\n- **HTTP:** `GET /steam/news`\n- **What:** Get recent news posts for a Steam app. Returns recent news/announcement posts for an app (title, author, contents, feed, date). Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `count` (integer, optional) — Number of posts (max 50); `maxlength` (integer, optional) — Max characters of each post body; default 300, set -1 for full content\n\n### `steam_package`\n\n- **HTTP:** `GET /steam/package`\n- **What:** Get Steam store details for a package. Returns normalized details for a Steam package (a purchasable bundle): name, the apps it contains, price, platforms, and release date. cc selects the store region and price currency. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `packageid` (string, **required**) — Numeric Steam package id\n\n### `steam_players`\n\n- **HTTP:** `GET /steam/players`\n- **What:** Get the current concurrent-player count for a Steam app. Returns the official current concurrent-players count for an app. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_reviews`\n\n- **HTTP:** `GET /steam/reviews`\n- **What:** List reviews for a Steam app. Returns a page of user reviews for an app with cursor pagination and an aggregate query_summary (score, positive/negative totals). Aggregate totals populate only on the first page (cursor=*). Pass the returned cursor back to page. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cursor` (string, optional) — Pagination cursor from the previous page; `day_range` (integer, optional) — Look-back window in days (filter=all only, max 365); `filter` (string, optional) — Sort order; `language` (string, optional) — Steam language name or 'all'; `num_per_page` (integer, optional) — Reviews per page (max 100); `purchase_type` (string, optional) — Purchase source filter; `review_type` (string, optional) — Review sentiment filter\n\n### `steam_reviews_histogram`\n\n- **HTTP:** `GET /steam/reviews/histogram`\n- **What:** Get the review up/down histogram for a Steam app. Returns the positive/negative recommendation counts over time (the store review graph): weekly/monthly rollups plus recent daily buckets. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `language` (string, optional) — Steam language name or 'all'\n\n### `steam_search`\n\n- **HTTP:** `GET /steam/search`\n- **What:** Search the Steam store by title. Resolves a search term to Steam apps via the store typeahead JSON (title, appid, price, platforms, metascore). Best for title -> appid lookup; returns roughly ten results. For faceted, paginated search use /steam/search/results. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `term` (string, **required**) — Search term\n\n### `steam_search_results`\n\n- **HTTP:** `GET /steam/search/results`\n- **What:** Faceted, paginated Steam store search. Runs the Steam store search with pagination and sorting and returns the result rows (appid, title, release date, review summary, price, platforms). Supports start/count paging and sort_by. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `count` (integer, optional) — Results per page (max 100); `l` (string, optional) — Language code; `sort_by` (string, optional) — Sort order; `start` (integer, optional) — Result offset for pagination; `term` (string, **required**) — Search term\n\n### `steam_steamspy`\n\n- **HTTP:** `GET /steam/steamspy`\n- **What:** Get SteamSpy third-party ownership and playtime estimates. Returns third-party ownership, concurrent-user, playtime, and review estimates for an app from SteamSpy. These are SteamSpy estimates, not official Steam figures. Credential-free public third-party JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_tags`\n\n- **HTTP:** `GET /steam/tags`\n- **What:** Browse the Steam store by community tag and store facets. Browses the store by the community-tag taxonomy (Roguelike, Metroidvania, Cozy...) and the store filter facets, with no free-text term. Filter by one or more tag ids, a store category id, platform (os), a maximum price, specials-only, and hide-free-to-play; sort and page the browse-rank rows. Each row includes its community tag ids (resolve names via /steam/tags/list). Pagination runs the full result set (total is the real, fully-pageable match count); paging past total returns an empty page. Credential-free public Steam storefront JSON.\n- **Params:** `category1` (string, optional) — Numeric Steam store category id (e.g. 998 games, 21 dlc); `category2` (string, optional) — Additional numeric store category id (feature); `category3` (string, optional) — Additional numeric store category id (feature); `cc` (string, optional) — Store country code (ISO, selects currency); `count` (integer, optional) — Results per page (max 100); `deck_compatibility` (string, optional) — Steam Deck compatibility filter: 1 unsupported, 2 playable, 3 verified; `filter` (string, optional) — Curated preset applied within the other facets; `hidef2p` (boolean, optional) — Hide free-to-play titles; `l` (string, optional) — Language code; `maxprice` (string, optional) — Maximum price as whole cents in the cc currency, or the literal 'free'; `os` (string, optional) — Comma-separated platform filter subset of: win, mac, linux; `sort_by` (string, optional) — Sort order; `specials` (boolean, optional) — Only discounted titles; `start` (integer, optional) — Result offset for pagination; `supportedlang` (string, optional) — Only titles supporting this Steam language name; `tags` (string, optional) — Comma-separated numeric community tag ids (all must match); resolve ids via /steam/tags/list; `untags` (string, optional) — Comma-separated numeric community tag ids to EXCLUDE; `vrsupport` (string, optional) — Comma-separated VR-support filter ids (e.g. 401 seated, 402 standing, 403 roomscale)\n\n### `steam_tags_list`\n\n- **HTTP:** `GET /steam/tags/list`\n- **What:** List Steam community tag ids and names. Returns Steam's popular community tags (numeric id + localized name) so callers can map a tag name to the id that /steam/tags and /steam/category expect. Credential-free public Steam storefront JSON.\n- **Params:** `l` (string, optional) — Steam store language name for the tag labels\n\n### `steam_top_sellers`\n\n- **HTTP:** `GET /steam/top-sellers`\n- **What:** Get Steam's weekly top-sellers chart for a country. Returns the store's weekly top-sellers chart for a country, each rank carrying the full store item (name, price, weighted community tags, review summary, platforms). cc selects the country whose sales ranking and currency are returned. Credential-free public Steam store top-sellers API.\n- **Params:** `cc` (string, optional) — Country code (ISO) whose weekly sales ranking is returned; `l` (string, optional) — Steam store language name\n\n## PlayStation (8)\n\n### `playstation_browse`\n\n- **HTTP:** `GET /playstation/browse`\n- **What:** Browse the PlayStation Store all-games grid. Returns a page of the PlayStation Store \"all games\" grid with per-item price, platforms, and media, plus the available filter facets (price, genre, platform, subscription, content type, etc.) with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number\n\n### `playstation_category`\n\n- **HTTP:** `GET /playstation/category`\n- **What:** Browse a PlayStation Store category grid. Returns a page of a specific PlayStation Store category grid (by category UUID) with per-item price, platforms, and media, plus the available filter facets with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — Category UUID; `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number\n\n### `playstation_concept`\n\n- **HTTP:** `GET /playstation/concept`\n- **What:** Get PlayStation Store details for a concept (game hub). Returns normalized store metadata for a PlayStation concept: title, publisher, release date, platforms, genres, description, content rating, aggregate star rating, the default product's purchase price, media, and the full lists of purchasable editions and add-ons. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — Numeric PlayStation concept id; `l` (string, optional) — Language code\n\n### `playstation_deals`\n\n- **HTTP:** `GET /playstation/deals`\n- **What:** Get PlayStation Store deals shelves. Returns the PlayStation Store deals landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_latest`\n\n- **HTTP:** `GET /playstation/latest`\n- **What:** Get PlayStation Store latest-release shelves. Returns the PlayStation Store latest-releases landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_page`\n\n- **HTTP:** `GET /playstation/page`\n- **What:** Get a PlayStation Store merchandising page by alias. Reads any PlayStation Store merchandising page by alias (e.g. collections, subscriptions, or a promotional alias) and returns its shelves (sections) plus the curated collection links found on the page. Each collection link carries a category_id (UUID) you can pass to /playstation/category to fetch that collection's full, paginated title grid — the credential-free way to browse themed/curated selections. Known aliases: collections, subscriptions, deals, latest. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `alias` (string, **required**) — Merchandising page alias; `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_product`\n\n- **HTTP:** `GET /playstation/product`\n- **What:** Get PlayStation Store details for a single product. Returns normalized store metadata for a single PlayStation product/edition: title, np title id, parent concept id, product type and store classification, edition name, publisher, release date, platforms, genres, spoken/screen languages, content rating, aggregate star rating, purchase price, and media. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — PlayStation product id; `l` (string, optional) — Language code\n\n### `playstation_search`\n\n- **HTTP:** `GET /playstation/search`\n- **What:** Search the PlayStation Store. Returns a page of PlayStation Store search results (concepts and products) for a term, with pagination and per-item price, platforms, classification, and media. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number; `page_size` (integer, optional) — Results per page (max 48); `term` (string, **required**) — Search term\n\n## Roblox (4)\n\n### `roblox_badges`\n\n- **HTTP:** `GET /roblox/badges`\n- **What:** List Roblox experience badges. Returns one cursor-paginated page of public badge metadata for a Roblox experience. Pass next_cursor back unchanged as cursor. No user-awarded badge data is returned.\n- **Params:** `cursor` (string, optional) — Opaque cursor returned by a previous response; `universe_id` (integer, **required**) — Positive Roblox universe id\n\n### `roblox_game`\n\n- **HTTP:** `GET /roblox/game`\n- **What:** Get a Roblox experience. Returns public catalog detail for one Roblox experience, including aggregate votes and its public icon. This endpoint does not return player, account, purchase, or server data.\n- **Params:** `universe_id` (integer, **required**) — Positive Roblox universe id\n\n### `roblox_rankings`\n\n- **HTTP:** `GET /roblox/rankings`\n- **What:** List Roblox game rankings. Returns a public Roblox game shelf. Allowed sort_id values: top-trending, up-and-coming, top-playing-now, fun-with-friends, top-revisited.\n- **Params:** `sort_id` (string, optional) — Ranking shelf: top-trending, up-and-coming, top-playing-now, fun-with-friends, top-revisited\n\n### `roblox_search`\n\n- **HTTP:** `GET /roblox/search`\n- **What:** Search Roblox experiences. Searches anonymous public Roblox game experiences. The opaque page_token continues the same search.\n- **Params:** `page_token` (string, optional) — Opaque page token returned by a previous search; `q` (string, **required**) — Experience search query\n\nFile v1.0.16:skill-card.md\n\n## Description:\n\nResearches video games via the Crawlora API across Steam, PlayStation Store, and documented public game endpoints, returning normalized JSON for prices, reviews, player counts, charts, tags, achievements, deals, and listing details.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and external agents use this skill to research public game storefront data, compare listings, check prices and deals, inspect reviews, and retrieve current Steam player counts through Crawlora API calls.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Game lookup terms and the Crawlora API key are sent to Crawlora when the helper calls the external API.\n\nMitigation: Use only with an approved Crawlora account and avoid sending sensitive lookup terms or credentials outside the documented CRAWLORA_API_KEY environment variable.\n\nRisk: The packaged helper includes public Roblox game-data routes even though the primary description focuses on Steam and PlayStation.\n\nMitigation: Clarify the intended platform scope before deployment, or remove Roblox routes if the deployment should be limited to Steam and PlayStation data.\n\n## Reference(s):\n\n- [Endpoint Reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API Base](https://api.crawlora.net/api/v1)\n- [ClawHub Skill Page](https://clawhub.ai/crawlora-org/skills/gaming-research)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell command examples and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY and returns public game-store data from allowed Crawlora routes.]\n\n## Skill Version(s):\n\n1.0.16 (source: server evidence release.version)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.15: 5 files, 11074 bytes\n\nFiles: reference/endpoints.md (22157b), scripts/crawlora.sh (4532b), skill-card.md (2278b), SKILL.md (3889b), _meta.json (135b)\n\nFile v1.0.15:SKILL.md\n\n---\nname: gaming-research\ndescription: Researches video games via the Crawlora API — Steam (store pages, pricing, reviews, player counts, charts, tags, achievements) and PlayStation Store (products, categories, deals) — returning clean JSON. Use when the user wants a game's price/reviews/player count, what's trending or on sale, or a store listing's details.\n---\n\n# Gaming research\n\nLook up game store listings, pricing, reviews, and player counts across\nSteam and the PlayStation Store as normalized JSON from the Crawlora API —\nno scraping storefront pages.\n\n## When to use this skill\n\n- \"What does <game> cost / how is it rated?\"\n- \"How many people are playing <game> right now?\" (Steam player counts)\n- \"What's trending / most played / top sellers right now?\"\n- \"What's on sale?\" (Steam or PlayStation deals)\n- \"Find games in <genre/tag>\" or \"similar to <game>.\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Steam** — `/steam/search` (`term`) to find an `appid`, then\n   `/steam/app` for the store page, `/steam/reviews` (+ `/reviews/histogram`)\n   for review data, `/steam/players` for the current concurrent player\n   count, `/steam/news` for updates, `/steam/achievements` for the\n   achievement list. `/steam/charts/most-played`, `/steam/charts/concurrent`,\n   `/steam/charts/top-releases`, `/steam/top-sellers`, and `/steam/featured`\n   cover trending/what's-hot; `/steam/tags` and `/steam/category/{slug}`\n   filter by genre/tag.\n2. **PlayStation** — `/playstation/search` (`term`) to find a product `id`,\n   then `/playstation/product` for detail, `/playstation/concept` for a\n   game's overall franchise/concept page, `/playstation/category` to browse\n   a category, `/playstation/deals` for current discounts,\n   `/playstation/latest` for new releases.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every Steam and\nPlayStation endpoint this skill uses.\n\n## Examples\n\n- **Buy-decision brief:** `/steam/app` (price, tags) + `/steam/reviews/histogram`\n  (rating distribution) + `/steam/players` (is it still active) in one pass.\n- **What's hot right now:** `/steam/charts/most-played` + `/steam/top-sellers`\n  cross-checked against `/playstation/latest` for console releases.\n- **Sale-hunting:** `/steam/featured` (specials) + `/playstation/deals` for\n  the same title across both storefronts.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public store/review pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Steam pricing/availability is region-specific** — pass `cc` (country\n  code) and `l` (language) where supported to match a specific storefront.\n- Resolve names to platform ids via `.../search` before calling a detail\n  endpoint.\n\nFile v1.0.15:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"gaming-research\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1789043541439\n}\n\nFile v1.0.15:reference/endpoints.md\n\n# gaming-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**33 endpoints across 3 platform group(s).**\n\n## Steam (21)\n\n### `steam_achievements`\n\n- **HTTP:** `GET /steam/achievements`\n- **What:** Get global achievement completion percentages for a Steam app. Returns the global unlock percentage for each of an app's achievements, sorted most-unlocked first. Apps without global achievement stats return an empty list. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_app`\n\n- **HTTP:** `GET /steam/app`\n- **What:** Get Steam store details for an app. Returns normalized store metadata for a single Steam app (title, type, price, developers/publishers, platforms, genres, categories, release date, metacritic, recommendation and achievement counts). cc selects the store region (and price currency) and l the text language. filters is a comma-separated subset of allowed fields to shrink the payload. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cc` (string, optional) — Store country code (ISO, selects currency); `filters` (string, optional) — Comma-separated fields: basic, price_overview, developers, publishers, categories, genres, release_date, platforms, metacritic, achievements, screenshots, movies, recommendations, controller_support, dlc, short_description, supported_languages, packages, package_groups, ratings, content_descriptors, background; `l` (string, optional) — Language code\n\n### `steam_category`\n\n- **HTTP:** `GET /steam/category/{slug}`\n- **What:** Browse a store category (tag) with weighted community tags. Returns a catalog slice for a community tag / category via Steam's keyless IStoreQueryService, carrying each item's WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The slug is a numeric tag id or a tag name (case- and separator-insensitive, e.g. rogue_like); resolve ids via /steam/tags/list. Ordering is Steam's default relevance — for sorted or os/price-faceted browse use /steam/tags. Credential-free public Steam store query API.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `coming_soon_only` (boolean, optional) — Only unreleased / coming-soon titles; `count` (integer, optional) — Results per page (max 100); `free` (boolean, optional) — Only free titles; `l` (string, optional) — Steam store language name; `released_only` (boolean, optional) — Only already-released titles; `slug` (string, **required**) — Community tag id (numeric) or tag name slug; `start` (integer, optional) — Result offset for pagination\n\n### `steam_charts_concurrent`\n\n- **HTTP:** `GET /steam/charts/concurrent`\n- **What:** Get Steam's live games-by-concurrent-players leaderboard. Returns the live leaderboard of games ranked by current concurrent players (rank, appid, current concurrent, peak). By default each row is enriched with the game name and review summary; pass enrich=false for raw ranked app ids. Credential-free public Steam WebAPI JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO) for name enrichment; `enrich` (boolean, optional) — Attach game name and review summary to each rank; `l` (string, optional) — Steam store language name for name enrichment\n\n### `steam_charts_most_played`\n\n- **HTTP:** `GET /steam/charts/most-played`\n- **What:** Get Steam's weekly most-played games chart. Returns Steam's weekly most-played chart: the top games ranked by peak concurrent players over the last week (rank, appid, previous-week rank, peak players). By default each row is enriched with the game name and review summary via a batch lookup; pass enrich=false for the raw ranked app ids only. Credential-free public Steam WebAPI JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO) for name enrichment; `enrich` (boolean, optional) — Attach game name and review summary to each rank; `l` (string, optional) — Steam store language name for name enrichment\n\n### `steam_charts_top_releases`\n\n- **HTTP:** `GET /steam/charts/top-releases`\n- **What:** Get Steam's monthly best-new-releases index. Returns Steam's monthly top-releases index: one page per month, each listing that month's top-released app ids (with the month label and start date). The app-id lists are large and not name-enriched; resolve names via /steam/items. Credential-free public Steam WebAPI JSON.\n- **Params:** _none_\n\n### `steam_community_recommendations`\n\n- **HTTP:** `GET /steam/community-recommendations`\n- **What:** Get the store's community-recommended reviews feed. Returns a batch of recent, quality user reviews recommended across the whole store (author, playtime, helpful votes, and the recommended app). Filter by review kind/sort, reviewer playtime window, review language, and store region. The upstream serves a fixed batch and, unauthenticated, does not support tag filtering or deep pagination. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `playtime_max` (integer, optional) — Maximum reviewer playtime in hours (0 = no maximum); `playtime_min` (integer, optional) — Minimum reviewer playtime in hours (0 = no minimum); `review_filter` (string, optional) — Review kind / sort; `review_language` (string, optional) — Review language: 'my_languages' or a Steam language name\n\n### `steam_featured`\n\n- **HTTP:** `GET /steam/featured`\n- **What:** Get the Steam store featured capsules. Returns the storefront's featured capsules for a region (per-platform featured lists plus large spotlight capsules), including discount and price fields. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `steam_featured_categories`\n\n- **HTTP:** `GET /steam/featured-categories`\n- **What:** Get Steam top sellers, new releases, specials and coming soon. Returns the storefront merchandising buckets for a region: specials, top_sellers, new_releases, and coming_soon, each with its item list. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `steam_items`\n\n- **HTTP:** `GET /steam/items`\n- **What:** Resolve a batch of app ids to store items with weighted tags. Resolves up to 100 Steam app ids in one call to normalized store items via Steam's keyless IStoreBrowseService, each carrying its WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The batch enrichment primitive for the community-tag taxonomy. Credential-free public Steam store query API.\n- **Params:** `appids` (string, **required**) — Comma-separated numeric app ids (max 100); `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Steam store language name\n\n### `steam_news`\n\n- **HTTP:** `GET /steam/news`\n- **What:** Get recent news posts for a Steam app. Returns recent news/announcement posts for an app (title, author, contents, feed, date). Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `count` (integer, optional) — Number of posts (max 50); `maxlength` (integer, optional) — Max characters of each post body; default 300, set -1 for full content\n\n### `steam_package`\n\n- **HTTP:** `GET /steam/package`\n- **What:** Get Steam store details for a package. Returns normalized details for a Steam package (a purchasable bundle): name, the apps it contains, price, platforms, and release date. cc selects the store region and price currency. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `packageid` (string, **required**) — Numeric Steam package id\n\n### `steam_players`\n\n- **HTTP:** `GET /steam/players`\n- **What:** Get the current concurrent-player count for a Steam app. Returns the official current concurrent-players count for an app. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_reviews`\n\n- **HTTP:** `GET /steam/reviews`\n- **What:** List reviews for a Steam app. Returns a page of user reviews for an app with cursor pagination and an aggregate query_summary (score, positive/negative totals). Aggregate totals populate only on the first page (cursor=*). Pass the returned cursor back to page. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cursor` (string, optional) — Pagination cursor from the previous page; `day_range` (integer, optional) — Look-back window in days (filter=all only, max 365); `filter` (string, optional) — Sort order; `language` (string, optional) — Steam language name or 'all'; `num_per_page` (integer, optional) — Reviews per page (max 100); `purchase_type` (string, optional) — Purchase source filter; `review_type` (string, optional) — Review sentiment filter\n\n### `steam_reviews_histogram`\n\n- **HTTP:** `GET /steam/reviews/histogram`\n- **What:** Get the review up/down histogram for a Steam app. Returns the positive/negative recommendation counts over time (the store review graph): weekly/monthly rollups plus recent daily buckets. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `language` (string, optional) — Steam language name or 'all'\n\n### `steam_search`\n\n- **HTTP:** `GET /steam/search`\n- **What:** Search the Steam store by title. Resolves a search term to Steam apps via the store typeahead JSON (title, appid, price, platforms, metascore). Best for title -> appid lookup; returns roughly ten results. For faceted, paginated search use /steam/search/results. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `term` (string, **required**) — Search term\n\n### `steam_search_results`\n\n- **HTTP:** `GET /steam/search/results`\n- **What:** Faceted, paginated Steam store search. Runs the Steam store search with pagination and sorting and returns the result rows (appid, title, release date, review summary, price, platforms). Supports start/count paging and sort_by. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `count` (integer, optional) — Results per page (max 100); `l` (string, optional) — Language code; `sort_by` (string, optional) — Sort order; `start` (integer, optional) — Result offset for pagination; `term` (string, **required**) — Search term\n\n### `steam_steamspy`\n\n- **HTTP:** `GET /steam/steamspy`\n- **What:** Get SteamSpy third-party ownership and playtime estimates. Returns third-party ownership, concurrent-user, playtime, and review estimates for an app from SteamSpy. These are SteamSpy estimates, not official Steam figures. Credential-free public third-party JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_tags`\n\n- **HTTP:** `GET /steam/tags`\n- **What:** Browse the Steam store by community tag and store facets. Browses the store by the community-tag taxonomy (Roguelike, Metroidvania, Cozy...) and the store filter facets, with no free-text term. Filter by one or more tag ids, a store category id, platform (os), a maximum price, specials-only, and hide-free-to-play; sort and page the browse-rank rows. Each row includes its community tag ids (resolve names via /steam/tags/list). Pagination runs the full result set (total is the real, fully-pageable match count); paging past total returns an empty page. Credential-free public Steam storefront JSON.\n- **Params:** `category1` (string, optional) — Numeric Steam store category id (e.g. 998 games, 21 dlc); `category2` (string, optional) — Additional numeric store category id (feature); `category3` (string, optional) — Additional numeric store category id (feature); `cc` (string, optional) — Store country code (ISO, selects currency); `count` (integer, optional) — Results per page (max 100); `deck_compatibility` (string, optional) — Steam Deck compatibility filter: 1 unsupported, 2 playable, 3 verified; `filter` (string, optional) — Curated preset applied within the other facets; `hidef2p` (boolean, optional) — Hide free-to-play titles; `l` (string, optional) — Language code; `maxprice` (string, optional) — Maximum price as whole cents in the cc currency, or the literal 'free'; `os` (string, optional) — Comma-separated platform filter subset of: win, mac, linux; `sort_by` (string, optional) — Sort order; `specials` (boolean, optional) — Only discounted titles; `start` (integer, optional) — Result offset for pagination; `supportedlang` (string, optional) — Only titles supporting this Steam language name; `tags` (string, optional) — Comma-separated numeric community tag ids (all must match); resolve ids via /steam/tags/list; `untags` (string, optional) — Comma-separated numeric community tag ids to EXCLUDE; `vrsupport` (string, optional) — Comma-separated VR-support filter ids (e.g. 401 seated, 402 standing, 403 roomscale)\n\n### `steam_tags_list`\n\n- **HTTP:** `GET /steam/tags/list`\n- **What:** List Steam community tag ids and names. Returns Steam's popular community tags (numeric id + localized name) so callers can map a tag name to the id that /steam/tags and /steam/category expect. Credential-free public Steam storefront JSON.\n- **Params:** `l` (string, optional) — Steam store language name for the tag labels\n\n### `steam_top_sellers`\n\n- **HTTP:** `GET /steam/top-sellers`\n- **What:** Get Steam's weekly top-sellers chart for a country. Returns the store's weekly top-sellers chart for a country, each rank carrying the full store item (name, price, weighted community tags, review summary, platforms). cc selects the country whose sales ranking and currency are returned. Credential-free public Steam store top-sellers API.\n- **Params:** `cc` (string, optional) — Country code (ISO) whose weekly sales ranking is returned; `l` (string, optional) — Steam store language name\n\n## PlayStation (8)\n\n### `playstation_browse`\n\n- **HTTP:** `GET /playstation/browse`\n- **What:** Browse the PlayStation Store all-games grid. Returns a page of the PlayStation Store \"all games\" grid with per-item price, platforms, and media, plus the available filter facets (price, genre, platform, subscription, content type, etc.) with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number\n\n### `playstation_category`\n\n- **HTTP:** `GET /playstation/category`\n- **What:** Browse a PlayStation Store category grid. Returns a page of a specific PlayStation Store category grid (by category UUID) with per-item price, platforms, and media, plus the available filter facets with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — Category UUID; `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number\n\n### `playstation_concept`\n\n- **HTTP:** `GET /playstation/concept`\n- **What:** Get PlayStation Store details for a concept (game hub). Returns normalized store metadata for a PlayStation concept: title, publisher, release date, platforms, genres, description, content rating, aggregate star rating, the default product's purchase price, media, and the full lists of purchasable editions and add-ons. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — Numeric PlayStation concept id; `l` (string, optional) — Language code\n\n### `playstation_deals`\n\n- **HTTP:** `GET /playstation/deals`\n- **What:** Get PlayStation Store deals shelves. Returns the PlayStation Store deals landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_latest`\n\n- **HTTP:** `GET /playstation/latest`\n- **What:** Get PlayStation Store latest-release shelves. Returns the PlayStation Store latest-releases landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_page`\n\n- **HTTP:** `GET /playstation/page`\n- **What:** Get a PlayStation Store merchandising page by alias. Reads any PlayStation Store merchandising page by alias (e.g. collections, subscriptions, or a promotional alias) and returns its shelves (sections) plus the curated collection links found on the page. Each collection link carries a category_id (UUID) you can pass to /playstation/category to fetch that collection's full, paginated title grid — the credential-free way to browse themed/curated selections. Known aliases: collections, subscriptions, deals, latest. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `alias` (string, **required**) — Merchandising page alias; `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_product`\n\n- **HTTP:** `GET /playstation/product`\n- **What:** Get PlayStation Store details for a single product. Returns normalized store metadata for a single PlayStation product/edition: title, np title id, parent concept id, product type and store classification, edition name, publisher, release date, platforms, genres, spoken/screen languages, content rating, aggregate star rating, purchase price, and media. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — PlayStation product id; `l` (string, optional) — Language code\n\n### `playstation_search`\n\n- **HTTP:** `GET /playstation/search`\n- **What:** Search the PlayStation Store. Returns a page of PlayStation Store search results (concepts and products) for a term, with pagination and per-item price, platforms, classification, and media. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number; `page_size` (integer, optional) — Results per page (max 48); `term` (string, **required**) — Search term\n\n## Roblox (4)\n\n### `roblox_badges`\n\n- **HTTP:** `GET /roblox/badges`\n- **What:** List Roblox experience badges. Returns one cursor-paginated page of public badge metadata for a Roblox experience. Pass next_cursor back unchanged as cursor. No user-awarded badge data is returned.\n- **Params:** `cursor` (string, optional) — Opaque cursor returned by a previous response; `universe_id` (integer, **required**) — Positive Roblox universe id\n\n### `roblox_game`\n\n- **HTTP:** `GET /roblox/game`\n- **What:** Get a Roblox experience. Returns public catalog detail for one Roblox experience, including aggregate votes and its public icon. This endpoint does not return player, account, purchase, or server data.\n- **Params:** `universe_id` (integer, **required**) — Positive Roblox universe id\n\n### `roblox_rankings`\n\n- **HTTP:** `GET /roblox/rankings`\n- **What:** List Roblox game rankings. Returns a public Roblox game shelf. Allowed sort_id values: top-trending, up-and-coming, top-playing-now, fun-with-friends, top-revisited.\n- **Params:** `sort_id` (string, optional) — Ranking shelf: top-trending, up-and-coming, top-playing-now, fun-with-friends, top-revisited\n\n### `roblox_search`\n\n- **HTTP:** `GET /roblox/search`\n- **What:** Search Roblox experiences. Searches anonymous public Roblox game experiences. The opaque page_token continues the same search.\n- **Params:** `page_token` (string, optional) — Opaque page token returned by a previous search; `q` (string, **required**) — Experience search query\n\nFile v1.0.15:skill-card.md\n\n## Description:\n\nResearches video games via the Crawlora API, including Steam store pages, pricing, reviews, player counts, charts, tags, achievements, and PlayStation Store products, categories, and deals, returning clean JSON.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and external users use this skill to research public video game storefront data, compare prices and reviews, check player activity, find trending or discounted games, and retrieve normalized store listing details.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The helper uses a Crawlora API key and can consume Crawlora credits.\n\nMitigation: Keep the key in CRAWLORA_API_KEY, restrict use to intended game endpoints, and monitor credit usage.\n\nRisk: POST request bodies could send private text to the Crawlora API.\n\nMitigation: Avoid putting private or sensitive text in request bodies.\n\nRisk: The security review found the helper route and method surface broader than the main Steam and PlayStation description.\n\nMitigation: Review requests before execution and narrow usage to the documented game-research endpoints.\n\n## Reference(s):\n\n- [Endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API base](https://api.crawlora.net/api/v1)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/gaming-research)\n- [Crawlora publisher profile](https://clawhub.ai/user/crawlora-org)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell command examples and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY. Responses use public game-store data and can vary by country and language parameters.]\n\n## Skill Version(s):\n\n1.0.15 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.14: 5 files, 10877 bytes\n\nFiles: reference/endpoints.md (22157b), scripts/crawlora.sh (4275b), skill-card.md (2023b), SKILL.md (3889b), _meta.json (135b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: gaming-research\ndescription: Researches video games via the Crawlora API — Steam (store pages, pricing, reviews, player counts, charts, tags, achievements) and PlayStation Store (products, categories, deals) — returning clean JSON. Use when the user wants a game's price/reviews/player count, what's trending or on sale, or a store listing's details.\n---\n\n# Gaming research\n\nLook up game store listings, pricing, reviews, and player counts across\nSteam and the PlayStation Store as normalized JSON from the Crawlora API —\nno scraping storefront pages.\n\n## When to use this skill\n\n- \"What does <game> cost / how is it rated?\"\n- \"How many people are playing <game> right now?\" (Steam player counts)\n- \"What's trending / most played / top sellers right now?\"\n- \"What's on sale?\" (Steam or PlayStation deals)\n- \"Find games in <genre/tag>\" or \"similar to <game>.\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Steam** — `/steam/search` (`term`) to find an `appid`, then\n   `/steam/app` for the store page, `/steam/reviews` (+ `/reviews/histogram`)\n   for review data, `/steam/players` for the current concurrent player\n   count, `/steam/news` for updates, `/steam/achievements` for the\n   achievement list. `/steam/charts/most-played`, `/steam/charts/concurrent`,\n   `/steam/charts/top-releases`, `/steam/top-sellers`, and `/steam/featured`\n   cover trending/what's-hot; `/steam/tags` and `/steam/category/{slug}`\n   filter by genre/tag.\n2. **PlayStation** — `/playstation/search` (`term`) to find a product `id`,\n   then `/playstation/product` for detail, `/playstation/concept` for a\n   game's overall franchise/concept page, `/playstation/category` to browse\n   a category, `/playstation/deals` for current discounts,\n   `/playstation/latest` for new releases.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every Steam and\nPlayStation endpoint this skill uses.\n\n## Examples\n\n- **Buy-decision brief:** `/steam/app` (price, tags) + `/steam/reviews/histogram`\n  (rating distribution) + `/steam/players` (is it still active) in one pass.\n- **What's hot right now:** `/steam/charts/most-played` + `/steam/top-sellers`\n  cross-checked against `/playstation/latest` for console releases.\n- **Sale-hunting:** `/steam/featured` (specials) + `/playstation/deals` for\n  the same title across both storefronts.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public store/review pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Steam pricing/availability is region-specific** — pass `cc` (country\n  code) and `l` (language) where supported to match a specific storefront.\n- Resolve names to platform ids via `.../search` before calling a detail\n  endpoint.\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"gaming-research\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1789042508648\n}\n\nFile v1.0.14:reference/endpoints.md\n\n# gaming-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**33 endpoints across 3 platform group(s).**\n\n## Steam (21)\n\n### `steam_achievements`\n\n- **HTTP:** `GET /steam/achievements`\n- **What:** Get global achievement completion percentages for a Steam app. Returns the global unlock percentage for each of an app's achievements, sorted most-unlocked first. Apps without global achievement stats return an empty list. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_app`\n\n- **HTTP:** `GET /steam/app`\n- **What:** Get Steam store details for an app. Returns normalized store metadata for a single Steam app (title, type, price, developers/publishers, platforms, genres, categories, release date, metacritic, recommendation and achievement counts). cc selects the store region (and price currency) and l the text language. filters is a comma-separated subset of allowed fields to shrink the payload. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cc` (string, optional) — Store country code (ISO, selects currency); `filters` (string, optional) — Comma-separated fields: basic, price_overview, developers, publishers, categories, genres, release_date, platforms, metacritic, achievements, screenshots, movies, recommendations, controller_support, dlc, short_description, supported_languages, packages, package_groups, ratings, content_descriptors, background; `l` (string, optional) — Language code\n\n### `steam_category`\n\n- **HTTP:** `GET /steam/category/{slug}`\n- **What:** Browse a store category (tag) with weighted community tags. Returns a catalog slice for a community tag / category via Steam's keyless IStoreQueryService, carrying each item's WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The slug is a numeric tag id or a tag name (case- and separator-insensitive, e.g. rogue_like); resolve ids via /steam/tags/list. Ordering is Steam's default relevance — for sorted or os/price-faceted browse use /steam/tags. Credential-free public Steam store query API.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `coming_soon_only` (boolean, optional) — Only unreleased / coming-soon titles; `count` (integer, optional) — Results per page (max 100); `free` (boolean, optional) — Only free titles; `l` (string, optional) — Steam store language name; `released_only` (boolean, optional) — Only already-released titles; `slug` (string, **required**) — Community tag id (numeric) or tag name slug; `start` (integer, optional) — Result offset for pagination\n\n### `steam_charts_concurrent`\n\n- **HTTP:** `GET /steam/charts/concurrent`\n- **What:** Get Steam's live games-by-concurrent-players leaderboard. Returns the live leaderboard of games ranked by current concurrent players (rank, appid, current concurrent, peak). By default each row is enriched with the game name and review summary; pass enrich=false for raw ranked app ids. Credential-free public Steam WebAPI JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO) for name enrichment; `enrich` (boolean, optional) — Attach game name and review summary to each rank; `l` (string, optional) — Steam store language name for name enrichment\n\n### `steam_charts_most_played`\n\n- **HTTP:** `GET /steam/charts/most-played`\n- **What:** Get Steam's weekly most-played games chart. Returns Steam's weekly most-played chart: the top games ranked by peak concurrent players over the last week (rank, appid, previous-week rank, peak players). By default each row is enriched with the game name and review summary via a batch lookup; pass enrich=false for the raw ranked app ids only. Credential-free public Steam WebAPI JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO) for name enrichment; `enrich` (boolean, optional) — Attach game name and review summary to each rank; `l` (string, optional) — Steam store language name for name enrichment\n\n### `steam_charts_top_releases`\n\n- **HTTP:** `GET /steam/charts/top-releases`\n- **What:** Get Steam's monthly best-new-releases index. Returns Steam's monthly top-releases index: one page per month, each listing that month's top-released app ids (with the month label and start date). The app-id lists are large and not name-enriched; resolve names via /steam/items. Credential-free public Steam WebAPI JSON.\n- **Params:** _none_\n\n### `steam_community_recommendations`\n\n- **HTTP:** `GET /steam/community-recommendations`\n- **What:** Get the store's community-recommended reviews feed. Returns a batch of recent, quality user reviews recommended across the whole store (author, playtime, helpful votes, and the recommended app). Filter by review kind/sort, reviewer playtime window, review language, and store region. The upstream serves a fixed batch and, unauthenticated, does not support tag filtering or deep pagination. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `playtime_max` (integer, optional) — Maximum reviewer playtime in hours (0 = no maximum); `playtime_min` (integer, optional) — Minimum reviewer playtime in hours (0 = no minimum); `review_filter` (string, optional) — Review kind / sort; `review_language` (string, optional) — Review language: 'my_languages' or a Steam language name\n\n### `steam_featured`\n\n- **HTTP:** `GET /steam/featured`\n- **What:** Get the Steam store featured capsules. Returns the storefront's featured capsules for a region (per-platform featured lists plus large spotlight capsules), including discount and price fields. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `steam_featured_categories`\n\n- **HTTP:** `GET /steam/featured-categories`\n- **What:** Get Steam top sellers, new releases, specials and coming soon. Returns the storefront merchandising buckets for a region: specials, top_sellers, new_releases, and coming_soon, each with its item list. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `steam_items`\n\n- **HTTP:** `GET /steam/items`\n- **What:** Resolve a batch of app ids to store items with weighted tags. Resolves up to 100 Steam app ids in one call to normalized store items via Steam's keyless IStoreBrowseService, each carrying its WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The batch enrichment primitive for the community-tag taxonomy. Credential-free public Steam store query API.\n- **Params:** `appids` (string, **required**) — Comma-separated numeric app ids (max 100); `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Steam store language name\n\n### `steam_news`\n\n- **HTTP:** `GET /steam/news`\n- **What:** Get recent news posts for a Steam app. Returns recent news/announcement posts for an app (title, author, contents, feed, date). Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `count` (integer, optional) — Number of posts (max 50); `maxlength` (integer, optional) — Max characters of each post body; default 300, set -1 for full content\n\n### `steam_package`\n\n- **HTTP:** `GET /steam/package`\n- **What:** Get Steam store details for a package. Returns normalized details for a Steam package (a purchasable bundle): name, the apps it contains, price, platforms, and release date. cc selects the store region and price currency. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `packageid` (string, **required**) — Numeric Steam package id\n\n### `steam_players`\n\n- **HTTP:** `GET /steam/players`\n- **What:** Get the current concurrent-player count for a Steam app. Returns the official current concurrent-players count for an app. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_reviews`\n\n- **HTTP:** `GET /steam/reviews`\n- **What:** List reviews for a Steam app. Returns a page of user reviews for an app with cursor pagination and an aggregate query_summary (score, positive/negative totals). Aggregate totals populate only on the first page (cursor=*). Pass the returned cursor back to page. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cursor` (string, optional) — Pagination cursor from the previous page; `day_range` (integer, optional) — Look-back window in days (filter=all only, max 365); `filter` (string, optional) — Sort order; `language` (string, optional) — Steam language name or 'all'; `num_per_page` (integer, optional) — Reviews per page (max 100); `purchase_type` (string, optional) — Purchase source filter; `review_type` (string, optional) — Review sentiment filter\n\n### `steam_reviews_histogram`\n\n- **HTTP:** `GET /steam/reviews/histogram`\n- **What:** Get the review up/down histogram for a Steam app. Returns the positive/negative recommendation counts over time (the store review graph): weekly/monthly rollups plus recent daily buckets. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `language` (string, optional) — Steam language name or 'all'\n\n### `steam_search`\n\n- **HTTP:** `GET /steam/search`\n- **What:** Search the Steam store by title. Resolves a search term to Steam apps via the store typeahead JSON (title, appid, price, platforms, metascore). Best for title -> appid lookup; returns roughly ten results. For faceted, paginated search use /steam/search/results. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `term` (string, **required**) — Search term\n\n### `steam_search_results`\n\n- **HTTP:** `GET /steam/search/results`\n- **What:** Faceted, paginated Steam store search. Runs the Steam store search with pagination and sorting and returns the result rows (appid, title, release date, review summary, price, platforms). Supports start/count paging and sort_by. Credential-free public Steam storefront JSON.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `count` (integer, optional) — Results per page (max 100); `l` (string, optional) — Language code; `sort_by` (string, optional) — Sort order; `start` (integer, optional) — Result offset for pagination; `term` (string, **required**) — Search term\n\n### `steam_steamspy`\n\n- **HTTP:** `GET /steam/steamspy`\n- **What:** Get SteamSpy third-party ownership and playtime estimates. Returns third-party ownership, concurrent-user, playtime, and review estimates for an app from SteamSpy. These are SteamSpy estimates, not official Steam figures. Credential-free public third-party JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_tags`\n\n- **HTTP:** `GET /steam/tags`\n- **What:** Browse the Steam store by community tag and store facets. Browses the store by the community-tag taxonomy (Roguelike, Metroidvania, Cozy...) and the store filter facets, with no free-text term. Filter by one or more tag ids, a store category id, platform (os), a maximum price, specials-only, and hide-free-to-play; sort and page the browse-rank rows. Each row includes its community tag ids (resolve names via /steam/tags/list). Pagination runs the full result set (total is the real, fully-pageable match count); paging past total returns an empty page. Credential-free public Steam storefront JSON.\n- **Params:** `category1` (string, optional) — Numeric Steam store category id (e.g. 998 games, 21 dlc); `category2` (string, optional) — Additional numeric store category id (feature); `category3` (string, optional) — Additional numeric store category id (feature); `cc` (string, optional) — Store country code (ISO, selects currency); `count` (integer, optional) — Results per page (max 100); `deck_compatibility` (string, optional) — Steam Deck compatibility filter: 1 unsupported, 2 playable, 3 verified; `filter` (string, optional) — Curated preset applied within the other facets; `hidef2p` (boolean, optional) — Hide free-to-play titles; `l` (string, optional) — Language code; `maxprice` (string, optional) — Maximum price as whole cents in the cc currency, or the literal 'free'; `os` (string, optional) — Comma-separated platform filter subset of: win, mac, linux; `sort_by` (string, optional) — Sort order; `specials` (boolean, optional) — Only discounted titles; `start` (integer, optional) — Result offset for pagination; `supportedlang` (string, optional) — Only titles supporting this Steam language name; `tags` (string, optional) — Comma-separated numeric community tag ids (all must match); resolve ids via /steam/tags/list; `untags` (string, optional) — Comma-separated numeric community tag ids to EXCLUDE; `vrsupport` (string, optional) — Comma-separated VR-support filter ids (e.g. 401 seated, 402 standing, 403 roomscale)\n\n### `steam_tags_list`\n\n- **HTTP:** `GET /steam/tags/list`\n- **What:** List Steam community tag ids and names. Returns Steam's popular community tags (numeric id + localized name) so callers can map a tag name to the id that /steam/tags and /steam/category expect. Credential-free public Steam storefront JSON.\n- **Params:** `l` (string, optional) — Steam store language name for the tag labels\n\n### `steam_top_sellers`\n\n- **HTTP:** `GET /steam/top-sellers`\n- **What:** Get Steam's weekly top-sellers chart for a country. Returns the store's weekly top-sellers chart for a country, each rank carrying the full store item (name, price, weighted community tags, review summary, platforms). cc selects the country whose sales ranking and currency are returned. Credential-free public Steam store top-sellers API.\n- **Params:** `cc` (string, optional) — Country code (ISO) whose weekly sales ranking is returned; `l` (string, optional) — Steam store language name\n\n## PlayStation (8)\n\n### `playstation_browse`\n\n- **HTTP:** `GET /playstation/browse`\n- **What:** Browse the PlayStation Store all-games grid. Returns a page of the PlayStation Store \"all games\" grid with per-item price, platforms, and media, plus the available filter facets (price, genre, platform, subscription, content type, etc.) with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number\n\n### `playstation_category`\n\n- **HTTP:** `GET /playstation/category`\n- **What:** Browse a PlayStation Store category grid. Returns a page of a specific PlayStation Store category grid (by category UUID) with per-item price, platforms, and media, plus the available filter facets with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — Category UUID; `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number\n\n### `playstation_concept`\n\n- **HTTP:** `GET /playstation/concept`\n- **What:** Get PlayStation Store details for a concept (game hub). Returns normalized store metadata for a PlayStation concept: title, publisher, release date, platforms, genres, description, content rating, aggregate star rating, the default product's purchase price, media, and the full lists of purchasable editions and add-ons. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — Numeric PlayStation concept id; `l` (string, optional) — Language code\n\n### `playstation_deals`\n\n- **HTTP:** `GET /playstation/deals`\n- **What:** Get PlayStation Store deals shelves. Returns the PlayStation Store deals landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_latest`\n\n- **HTTP:** `GET /playstation/latest`\n- **What:** Get PlayStation Store latest-release shelves. Returns the PlayStation Store latest-releases landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_page`\n\n- **HTTP:** `GET /playstation/page`\n- **What:** Get a PlayStation Store merchandising page by alias. Reads any PlayStation Store merchandising page by alias (e.g. collections, subscriptions, or a promotional alias) and returns its shelves (sections) plus the curated collection links found on the page. Each collection link carries a category_id (UUID) you can pass to /playstation/category to fetch that collection's full, paginated title grid — the credential-free way to browse themed/curated selections. Known aliases: collections, subscriptions, deals, latest. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `alias` (string, **required**) — Merchandising page alias; `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code\n\n### `playstation_product`\n\n- **HTTP:** `GET /playstation/product`\n- **What:** Get PlayStation Store details for a single product. Returns normalized store metadata for a single PlayStation product/edition: title, np title id, parent concept id, product type and store classification, edition name, publisher, release date, platforms, genres, spoken/screen languages, content rating, aggregate star rating, purchase price, and media. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `id` (string, **required**) — PlayStation product id; `l` (string, optional) — Language code\n\n### `playstation_search`\n\n- **HTTP:** `GET /playstation/search`\n- **What:** Search the PlayStation Store. Returns a page of PlayStation Store search results (concepts and products) for a term, with pagination and per-item price, platforms, classification, and media. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency) and l the text language. Credential-free public PlayStation Store data.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `l` (string, optional) — Language code; `page` (integer, optional) — 1-based page number; `page_size` (integer, optional) — Results per page (max 48); `term` (string, **required**) — Search\n\nArchive v1.0.13: 5 files, 10840 bytes\n\nFiles: reference/endpoints.md (22157b), scripts/crawlora.sh (3950b), skill-card.md (2365b), SKILL.md (3916b), _meta.json (135b)\n\nArchive v1.0.12: 5 files, 10710 bytes\n\nFiles: reference/endpoints.md (22157b), scripts/crawlora.sh (3650b), skill-card.md (2292b), SKILL.md (3916b), _meta.json (135b)\n\nArchive v1.0.11: 5 files, 10695 bytes\n\nFiles: reference/endpoints.md (22157b), scripts/crawlora.sh (3602b), skill-card.md (2359b), SKILL.md (3916b), _meta.json (135b)\n\nArchive v1.0.10: 5 files, 9872 bytes\n\nFiles: reference/endpoints.md (22157b), scripts/crawlora.sh (2005b), skill-card.md (1892b), SKILL.md (3890b), _meta.json (135b)\n\nArchive v1.0.9: 5 files, 10022 bytes\n\nFiles: reference/endpoints.md (22157b), scripts/crawlora.sh (1870b), skill-card.md (2375b), SKILL.md (3890b), _meta.json (134b)","readmeExcerpt":"Skill: gaming-research Owner: crawlora-org Summary: Researches video games via the Crawlora API — Steam (store pages, pricing, reviews, player counts, charts, tags, achievements) and PlayStation Store (products, categories, deals) — returning clean JSON. Use when the user wants a game's price/reviews/player count, what's trending or on sale, or a store listing's details. Tags: latest:1.0.18 Version history: v1.0.18 |","codeSnippets":[],"executableExamples":[{"language":"sh","snippet":"# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'"},{"language":"sh","snippet":"# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'"},{"language":"sh","snippet":"# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'"},{"language":"sh","snippet":"# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'"},{"language":"sh","snippet":"# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: gaming-research\ndescription: Researches video games via the Crawlora API — Steam (store pages, pricing, reviews, player counts, charts, tags, achievements) and PlayStation Store (products, categories, deals) — returning clean JSON. Use when the user wants a game's price/reviews/player count, what's trending or on sale, or a store listing's details.\n---\n\n# Gaming research\n\nLook up game store listings, pricing, reviews, and player counts across\nSteam and the PlayStation Store as normalized JSON from the Crawlora API —\nno scraping storefront pages.\n\n## When to use this skill\n\n- \"What does <game> cost / how is it rated?\"\n- \"How many people are playing <game> right now?\" (Steam player counts)\n- \"What's trending / most played / top sellers right now?\"\n- \"What's on sale?\" (Steam or PlayStation deals)\n- \"Find games in <genre/tag>\" or \"similar to <game>.\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Steam** — `/steam/search` (`term`) to find an `appid`, then\n   `/steam/app` for the store page, `/steam/reviews` (+ `/reviews/histogram`)\n   for review data, `/steam/players` for the current concurrent player\n   count, `/steam/news` for updates, `/steam/achievements` for the\n   achievement list. `/steam/charts/most-played`, `/steam/charts/concurrent`,\n   `/steam/charts/top-releases`, `/steam/top-sellers`, and `/steam/featured`\n   cover trending/what's-hot; `/steam/tags` and `/steam/category/{slug}`\n   filter by genre/tag.\n2. **PlayStation** — `/playstation/search` (`term`) to find a product `id`,\n   then `/playstation/product` for detail, `/playstation/concept` for a\n   game's overall franchise/concept page, `/playstation/category` to browse\n   a category, `/playstation/deals` for current discounts,\n   `/playstation/latest` for new releases.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Steam:\nscripts/crawlora.sh /steam/search term=\"Hades\" | jq '.'\nscripts/crawlora.sh /steam/app appid=1145360 | jq '.'\nscripts/crawlora.sh /steam/players appid=1145360 | jq '.'\n\n# PlayStation:\nscripts/crawlora.sh /playstation/search term=\"Spider-Man\" | jq '.'\nscripts/crawlora.sh /playstation/deals | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every Steam and\nPlayStation endpoint this skill uses.\n\n## Examples\n\n- **Buy-decision brief:** `/steam/app` (price, tags) + `/steam/reviews/histogram`\n  (rating distribution) + `/steam/players` (is it still active) in one pass.\n-"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"gaming-research\",\n  \"version\": \"1.0.18\",\n  \"publishedAt\": 1789954453203\n}"},{"path":"reference/endpoints.md","content":"# gaming-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**35 endpoints across 3 platform group(s).**\n\n## Steam (21)\n\n### `steam_achievements`\n\n- **HTTP:** `GET /steam/achievements`\n- **What:** Get global achievement completion percentages for a Steam app. Returns the global unlock percentage for each of an app's achievements, sorted most-unlocked first. Apps without global achievement stats return an empty list. Credential-free public Steam WebAPI JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id\n\n### `steam_app`\n\n- **HTTP:** `GET /steam/app`\n- **What:** Get Steam store details for an app. Returns normalized store metadata for a single Steam app (title, type, price, developers/publishers, platforms, genres, categories, release date, metacritic, recommendation and achievement counts). cc selects the store region (and price currency) and l the text language. filters is a comma-separated subset of allowed fields to shrink the payload. Credential-free public Steam storefront JSON.\n- **Params:** `appid` (string, **required**) — Numeric Steam app id; `cc` (string, optional) — Store country code (ISO, selects currency); `filters` (string, optional) — Comma-separated fields: basic, price_overview, developers, publishers, categories, genres, release_date, platforms, metacritic, achievements, screenshots, movies, recommendations, controller_support, dlc, short_description, supported_languages, packages, package_groups, ratings, content_descriptors, background; `l` (string, optional) — Language code\n\n### `steam_category`\n\n- **HTTP:** `GET /steam/category/{slug}`\n- **What:** Browse a store category (tag) with weighted community tags. Returns a catalog slice for a community tag / category via Steam's keyless IStoreQueryService, carrying each item's WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The slug is a numeric tag id or a tag name (case- and separator-insensitive, e.g. rogue_like); resolve ids via /steam/tags/list. Ordering is Steam's default relevance — for sorted or os/price-faceted browse use /steam/tags. Credential-free public Steam store query API.\n- **Params:** `cc` (string, optional) — Store country code (ISO, selects currency); `coming_soon_only` (boolean, optional) — Only unreleased / coming-soon titles; `count` (integer, optional) — Results per page (max 100); `free` (boolean, optional) — Only free titles; `l` (string, optional) — Steam store language name; `released_only` (boolean, optional) — Only already-released titles; `slug` (strin"},{"path":"skill-card.md","content":"## Description:\n\nResearches public video game store data through the Crawlora API, including Steam pricing, reviews, player counts, charts, tags, achievements, PlayStation Store products and deals, and public Roblox lookup endpoints.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to answer game research questions such as current prices, review summaries, player counts, trending titles, store listings, and sale availability from public storefront data.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Crawlora API keys and game lookup parameters are sent to Crawlora.\n\nMitigation: Store the API key only in CRAWLORA_API_KEY, avoid committing it, and review whether lookup terms are appropriate to share with the API provider.\n\nRisk: The top-level description emphasizes Steam and PlayStation, while the bundled endpoint set also includes public Roblox lookups.\n\nMitigation: Review the endpoint reference before use and align user-facing descriptions with the full platform scope.\n\nRisk: Steam pricing and availability can vary by storefront region and language.\n\nMitigation: Pass supported country and language parameters when results need to match a specific storefront.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/gaming-research)\n- [Crawlora publisher profile](https://clawhub.ai/user/crawlora-org)\n- [Endpoint reference](artifact/reference/endpoints.md)\n- [Crawlora API key signup](https://crawlora.net)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands that return JSON from the Crawlora API]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; responses contain public game store data and may vary by country and language parameters.]\n\n## Skill Version(s):\n\n1.0.18 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1544,"uniquenessScore":44,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T17:36:06.442Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T17:36:06.442Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T20:58:00.673Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}