{
  "openapi": "3.0.1",
  "info": {
    "title": "Japan Electronics Store Prices by JAN - TSUKUMO & XPRICE",
    "description": "Selling prices at Japanese electronics retailers TSUKUMO and XPRICE with points, price minus points, stock and shipping, keyed by JAN and model number to compare stores. JANs, keywords, search pages or product URLs. robots.txt-compliant, facts only. Unofficial; not affiliated with the stores.",
    "version": "0.1",
    "x-build-id": "qKj3r9OjGCWHMNe0G"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpopendata~japan-electronics-retail-prices/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpopendata-japan-electronics-retail-prices",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/jpopendata~japan-electronics-retail-prices/runs": {
      "post": {
        "operationId": "runs-sync-jpopendata-japan-electronics-retail-prices",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/jpopendata~japan-electronics-retail-prices/run-sync": {
      "post": {
        "operationId": "run-sync-jpopendata-japan-electronics-retail-prices",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "jans": {
            "title": "JAN codes (barcodes)",
            "type": "array",
            "description": "JAN / EAN barcodes, one per line, e.g. 4573681625917 (13 digits; 8-digit short JANs and 12-digit UPCs work too; spaces, hyphens and full-width digits are fine). Each JAN is looked up at TSUKUMO, where the product page address is the barcode itself (one request per JAN). A JAN the store does not sell gives no record and costs nothing. A code with a wrong check digit is skipped with a warning.",
            "default": [
              "4573681625917"
            ],
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords or model numbers",
            "type": "array",
            "description": "Searches at TSUKUMO, one per line, e.g. RTX 5070, SDDDC3-128G or 83US0008JP. A model number gives the most precise results. The top 'Max results per search' products of each search are returned (discontinued items hidden, like on the site). A JAN typed here is looked up directly as a JAN.",
            "default": [
              "RTX 5070"
            ],
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "Product page URLs",
            "type": "array",
            "description": "Product pages, one per line: TSUKUMO https://shop.tsukumo.co.jp/goods/4573681625917/ or XPRICE https://www.xprice.co.jp/d.php?id=202000012630001&status=1 (copy the address bar; keep status=, it marks new vs outlet items). This is the way to read XPRICE. Each URL = one request = one record. A TSUKUMO search page pasted here is read as a list.",
            "default": [
              "https://www.xprice.co.jp/d.php?id=202000012630001&status=1"
            ],
            "items": {
              "type": "string"
            }
          },
          "listingUrls": {
            "title": "TSUKUMO search or category page URLs",
            "type": "array",
            "description": "TSUKUMO result lists, one per line, e.g. https://shop.tsukumo.co.jp/search/c20:2010:2010900/ (USB memory category) or a search address such as https://shop.tsukumo.co.jp/search?keyword=RTX+5070 — set maker or stock filters and the sort order on the site first: they are kept. Read in the list's order, 48 rows per request, up to 'Max results per search' products per list. XPRICE lists are not supported.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "stores": {
            "title": "Stores",
            "type": "array",
            "description": "Which stores to use, one per line: tsukumo (TSUKUMO / ツクモ) and/or xprice (XPRICE / エクスプライス). Default: both. JAN and keyword lookups need tsukumo; product URLs of a store left out are skipped.",
            "default": [
              "tsukumo",
              "xprice"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerSearch": {
            "title": "Max results per search or list",
            "type": "integer",
            "description": "How many products to return per keyword search and per pasted list (1..1000; values outside are clamped). With 'Open product pages' on, each product costs one extra request (about 1.5 s); with it off, one request returns up to 48 products.",
            "default": 5
          },
          "openProductPages": {
            "title": "Open product pages (points, category, condition, release date)",
            "type": "boolean",
            "description": "On (default): open each search/list result's product page to add points, price minus points, category, condition and release date. Off: fast list-only mode — price, stock, shipping badge, maker, JAN and model number straight from the result list (points stay empty). JAN lookups and product URLs always open the product page.",
            "default": true
          },
          "maxRequests": {
            "title": "Max requests (0 = automatic)",
            "type": "integer",
            "description": "Hard budget of requests to the stores for the whole run. 0 (default) sizes it automatically from your inputs and limits. A number (1..20000) is a strict cap: requests are serial, at least 1.5 s apart (1,000 requests take about 25 minutes), and if the budget runs out the run still succeeds with the records found so far and complete=false in RUN_SUMMARY.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Both stores answer Apify datacenter IPs directly, so no proxy is used by default. If you set one, the run keeps a single sticky session (one IP) and never rotates.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}