# Steam Japan Game Price Watchlist (`jpmarketdata/steam-japan-game-price-watchlist`) Actor

Watch current Japanese Steam game and DLC price facts by app ID. Preserve source JPY price integers and formatted labels, discounts, free-license flags, release labels and platforms. Up to20 apps; no reviews, accounts, search or personalized checkout quotes.

- **URL**: https://apify.com/jpmarketdata/steam-japan-game-price-watchlist.md
- **Developed by:** [h ichi](https://apify.com/jpmarketdata) (community)
- **Categories:** Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 app price facts delivereds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Steam Japan Game Price Watchlist

Import current Japanese Steam game and DLC price observations for a known app-ID watchlist. Rows preserve original price integers, formatted JPY labels, discounts, free-license flags, platforms and release labels. Scheduled runs support a caller-owned price history; no history is fetched or retained by this Actor.

**Price**: $0.001 per delivered game or DLC observation.

### Input

appIds:1–20 positive integer IDs<=4294967295, defaults\[1091500,1245620,570]. maxItems:1–20(default20). Duplicates once in input order. Exact selected source appid and source type game/dlc required. Country JP and language japanese are fixed source requests. No game-name search, arbitrary URLs, account, cookie, API key, country comparison or checkout input. Remaining event allowance limits selected prefix before HTTP.

### Output

One steam_japan_app_price row per validated selected app. Raw initialPriceRaw/finalPriceRaw are unchanged price_overview integers, not JPY amounts. Use original initialFormatted/finalFormatted for source display; no division/rounding is applied. Example raw902000 with source label¥9,020 illustrates why rawinteger must not be called902000JPY. currency must be JPY when source overview exists. If is_free=true and overview absent, priceStatus=source-free and all price/currency/discount/format fields are null; no invented0JPY quote. isFree means free base license, not DLC/items/subscriptions or total ownership cost. Nonfree absent price overview is a free visible failure. Platforms/comingSoon are original bools; releaseDateLabel remains source localized text, not normalized date. No personalized checkout, fees, tax, region-eligibility, exact discount-end or executable purchase assurance.

### Limits

USD0.001 app-price-delivered per unique successfully delivered row, no startup/page/error fee. Stage all selected app facts before delivery, require useful paid JPY overview or explicit free-license flag, recheck allowance before one atomic charged push and exact charged_count parity. Numeric SUMMARY/RUN-SUMMARY covers deliveredRows/uniqueRows/chargedEvents. HTTP/auth/429/404/false success/unknowntype/identity/price/malformed/robots/oversize/timeout errors fail visibly before staged charge.21requests inclrobots,90seconds,256MB,2MiB perresponse/24MiBtotal/4MiBstaged. Fixed store.steampowered.com/api/appdetails only, actual-UA robots first, pinned public DNS, no proxy/cookies/auth, no redirect widening/retries,>=1s perhost plus actual-UA crawl delay. Per-run bounds do not promise unlimited aggregate throughput. Named overview and JSON/CSV preserve flat original facts.

### Privacy

Exclude user reviews/profiles, Steam IDs, accounts/wishlists/private inventory, developers/publishers and contact fields, copyrighted descriptions/screenshots/media. Emit only allowlisted short app metadata and source numerical/bool facts; canonical EMAIL/PHONE/URL guards reject contact-bearing strings before billing. Public no-key appdetails is not represented as an officially documented/authenticated WebAPI grant. Applicable Steam Subscriber Agreement restricts automation and commercial/reproduction use; Steam Web API terms describe application-specific/key-linked personal-use data licensing, which does not establish a grant for this undocumented Store endpoint. No permission/legal-clearance claim. Existing DR0007 bounds this owner-authorized limited facts experiment. Actual warning/sanction/legal notice triggers reassessment.

# Actor input Schema

## `appIds` (type: `array`):

1–20 positive integer Steam app IDs. Exact source identity, game/dlc type and JPY paid-price or explicit is_free status are required. Defaults1091500,1245620,570. Duplicates once in input order.

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

1–20 unique selected rows and fees, default20. Remaining event allowance limits the input prefix before HTTP.

## Actor input object example

```json
{
  "appIds": [
    1091500,
    1245620,
    570
  ],
  "maxItems": 20
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("jpmarketdata/steam-japan-game-price-watchlist").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("jpmarketdata/steam-japan-game-price-watchlist").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call jpmarketdata/steam-japan-game-price-watchlist --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jpmarketdata/steam-japan-game-price-watchlist"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/sethUaZbOQ5deJBcq/builds/jUUeefMyxNCklJWsT/openapi.json
