{
  "openapi": "3.0.1",
  "info": {
    "title": "Kakaku.com Japan Lowest Prices — Shops, Rank, Rating",
    "description": "Type a product keyword and get what it costs on Kakaku.com, Japan's largest price-comparison site. You get the lowest listed price, how many shops sell it, its popularity rank and review score, plus the typical price across matching products. $0.02 per keyword, no results = no charge. Unofficial.",
    "version": "0.1",
    "x-build-id": "u6KcRZvaVUHkwvuxe"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpmarketdata~kakaku-japan-price-checker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpmarketdata-kakaku-japan-price-checker",
        "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/jpmarketdata~kakaku-japan-price-checker/runs": {
      "post": {
        "operationId": "runs-sync-jpmarketdata-kakaku-japan-price-checker",
        "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/jpmarketdata~kakaku-japan-price-checker/run-sync": {
      "post": {
        "operationId": "run-sync-jpmarketdata-kakaku-japan-price-checker",
        "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": {
          "keywords": {
            "title": "Product keywords",
            "type": "array",
            "description": "The model number as printed on the box (`LUMIX TZ99`, `ILCE-7M4`) or the Japanese product name (`カメラ`). Each returns one summary row and is charged $0.02; one that finds nothing is not charged. Give keywords, ranking pages or both; at least one is required. About 80 keywords fit a run's default limits (300-second time limit, $3.00 Maximum cost per run); extras are skipped, not charged.",
            "items": {
              "type": "string"
            }
          },
          "rankingUrls": {
            "title": "Weekly ranking pages",
            "type": "array",
            "description": "Optional, and usable on its own without any keyword: Kakaku.com's weekly best-seller lists, e.g. `https://kakaku.com/camera/digital-camera/ranking_0050/`. Each address returns one row of the ranked products with their rank, maker, lowest price and review score, and is charged $0.02, the same as a keyword. Only addresses of that exact form are read; anything else is skipped with a note in the log.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category code",
            "type": "string",
            "description": "Optional. Narrows the search to one Kakaku.com category, which changes the hit count, the price band table and which products are measured. Examples: `0003_0001` digital cameras, `0003` cameras, `0005` phones, `0001` computers. Leave empty to search the whole site. These codes are not the numbers you see in a `ranking_NNNN` address.",
            "default": ""
          },
          "pagesPerKeyword": {
            "title": "Result pages per keyword",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many result pages to read per keyword. One page holds up to 40 products in popularity order and costs one request, so more pages means the price, shop-count and review numbers are measured over more products and the run takes longer. It does not change what a keyword costs; with individual product rows turned on it does change how many rows you get (+$0.002 each).",
            "default": 1
          },
          "sortBy": {
            "title": "Result order",
            "enum": [
              "standard",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "Which order the site returns matches in, and therefore which products are measured. Popularity is the site's own order and the only one that works on a model keyword: cheapest-first on `LUMIX TZ99` returns 40 cases, filters and straps and not one camera. Use the price orders together with a category code.",
            "default": "standard"
          },
          "priceMin": {
            "title": "Lowest price to include (yen)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Drops everything below this yen price from the search, so the hit count, the price band table and the measured products all shrink to that band. Leave empty for no lower limit."
          },
          "priceMax": {
            "title": "Highest price to include (yen)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Drops everything above this yen price from the search, so the hit count, the price band table and the measured products all shrink to that band. Leave empty for no upper limit."
          },
          "includeTopProductRank": {
            "title": "Add the top match's rank",
            "type": "boolean",
            "description": "On by default. Reads the product page of the most popular match and adds where it sits in Kakaku.com's weekly best-seller list (`rank`, `rankOf` — e.g. 1 of 2,246; empty when the product is not ranked). Costs one extra request per keyword and does not change what you are charged. Turn it off for the shortest possible run.",
            "default": true
          },
          "includeIndividualItems": {
            "title": "Include individual products",
            "type": "boolean",
            "description": "Off by default: a run costs a flat $0.02 per keyword summary. Turn it on to also get one row per product read — name, maker, lowest price, how many shops sell it, review score, release date and link — at +$0.002 per row. Shop-only listings are never returned as rows, only counted.",
            "default": false
          },
          "convertToUsd": {
            "title": "Convert prices to US$",
            "type": "boolean",
            "description": "Adds US$ figures next to the yen ones using today's exchange rate (open.er-api.com). A failed rate lookup never fails the run — you simply get the yen numbers on their own.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}