{
  "openapi": "3.0.1",
  "info": {
    "title": "Isetan Mitsukoshi - Products, Prices, Stock & Reviews",
    "description": "Scrape the Isetan Mitsukoshi department store online shop (mistore.jp). Search by keyword or department, or paste search, department, brand and product links. Returns id, title, brand, category, JPY price, sale window, stock, colours and images, plus specifications, variants and customer reviews.",
    "version": "1.0",
    "x-build-id": "7uAzTmQQjpnz7OybJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~mistore-jp-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-mistore-jp-scraper",
        "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/abotapi~mistore-jp-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-mistore-jp-scraper",
        "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/abotapi~mistore-jp-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-mistore-jp-scraper",
        "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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "Choose 'search' for keywords and departments with filters, or 'url' to scrape pasted links: a search, department or brand listing link is covered in full, and a product link or bare product id returns that one product with full detail.",
            "default": "search"
          },
          "queries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Only used when mode = search, ignored in URL mode. One or more keywords to search, for example バッグ (bag), コート (coat) or ワイン (wine). English keywords work too, but the catalogue is Japanese, so Japanese keywords return far more.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Departments",
            "type": "array",
            "description": "Only used when mode = search, ignored in URL mode. Browse a whole department instead of, or as well as, a keyword. Use a name from this list: womens, mens, baby_kids, bags, shoes, home_kitchen_art, food, events. The store files bags and shoes under each audience rather than as one store-wide department, so 'bags' browses the women's, men's and kids' bag departments and 'shoes' browses the women's, men's, kids' and baby shoe departments; each is covered in full. A store category code such as 28_011500 also works if you want a narrower sub-department: open the department on the site, refine it, and copy the cgid value out of the address bar. A code the store does not recognise is not an error on this site - it quietly returns the whole catalogue - so check that the department you copied really is the one you wanted.",
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "Store links or product ids",
            "type": "array",
            "description": "Only used when mode = url, ignored in search mode. Mix freely: product pages under /shopping/product/<id>.html , keyword searches under /shopping/search , department listings under /shopping/productlist , brand listings under /shopping/brand/list , or a bare product id such as 900000000000000003062447 .",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "recommended",
              "newest",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "The store's own result ordering. 'Recommended' is the store default.",
            "default": "recommended"
          },
          "badges": {
            "title": "Only products with these badges",
            "type": "array",
            "description": "Optional. Keep only products carrying the store's own badges. Selecting more than one returns products carrying any of them, which is how the store's own refinement behaves.",
            "items": {
              "type": "string",
              "enum": [
                "sale",
                "new_arrival",
                "point_bonus",
                "limited_time",
                "store_exclusive",
                "online_exclusive",
                "message_card"
              ],
              "enumTitles": [
                "On sale",
                "New arrival",
                "Bonus points eligible",
                "Limited time offer",
                "Store exclusive",
                "Online exclusive",
                "Message card available"
              ]
            },
            "default": []
          },
          "colors": {
            "title": "Colour families",
            "type": "array",
            "description": "Optional. Keep only products available in these colour families, using the store's own colour grouping.",
            "items": {
              "type": "string",
              "enum": [
                "white",
                "black",
                "beige",
                "green",
                "blue",
                "purple",
                "grey",
                "brown",
                "yellow",
                "pink",
                "orange",
                "red",
                "silver",
                "gold",
                "other"
              ],
              "enumTitles": [
                "White",
                "Black",
                "Beige",
                "Green",
                "Blue",
                "Purple",
                "Grey",
                "Brown",
                "Yellow",
                "Pink",
                "Orange",
                "Red",
                "Silver",
                "Gold",
                "Other"
              ]
            },
            "default": []
          },
          "brandCodes": {
            "title": "Brand codes",
            "type": "array",
            "description": "Optional. Keep only products from these brands, using the store's own brand codes. To get one: open a brand page on the site and copy the brand value out of the address bar, for example 002383 for ANTEPRIMA. Several codes can be given at once.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "Minimum price (JPY)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only keep products priced at or above this many yen. Sent to the store as its own price refinement, so it narrows the results at the source rather than filtering afterwards."
          },
          "maxPrice": {
            "title": "Maximum price (JPY)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only keep products priced at or below this many yen. Sent to the store as its own price refinement."
          },
          "includeOutOfStock": {
            "title": "Include out of stock products",
            "type": "boolean",
            "description": "Off by default, matching the store, which hides out of stock products. Turn on to include them: the store's own catalogue roughly doubles in size when they are shown.",
            "default": false
          },
          "fetchDetails": {
            "title": "Fetch full product details",
            "type": "boolean",
            "description": "Collect each product's full record: description, specification list, size and colour variants with per variant price, barcode and stock count, all gallery images, shipping and delivery terms, gift wrapping availability, payment methods, allergen panel and badge marks. Turn off for a faster, cheaper run that returns the listing fields only (id, title, brand, link, price band, sale flags, stock, colour options, image).",
            "default": true
          },
          "fetchReviews": {
            "title": "Fetch customer reviews",
            "type": "boolean",
            "description": "Off by default because it costs one extra request per product. Turn on to also collect each product's average rating, review count, rating breakdown and individual reviews (author, date, rating, title, text, helpful votes). Reviews are sparse on this catalogue, so most products come back with an empty reviews list and a null rating rather than invented zeros.",
            "default": false
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Cap on how many individual reviews are returned for one product. Only used when Fetch customer reviews is on. The rating and review count are always the store's own totals and are not affected by this cap.",
            "default": 20
          },
          "maxItems": {
            "title": "Max products",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of products to return across the whole run. This is the run's cap and what you are billed for. Use 0 for unlimited.",
            "default": 20
          },
          "maxPages": {
            "title": "Max result pages per keyword, department or link",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of result pages to take per keyword, department or pasted listing link. 0 = unlimited, which returns everything the store has for it. Each result page holds 60 products.",
            "default": 0
          },
          "resumeFromRunId": {
            "title": "Resume from a previous run",
            "type": "string",
            "description": "Paste a previous run ID or dataset ID to continue a large catalogue pull without returning or being charged for products already collected there. Use this after an interrupted run. For recurring monitoring of the same search, use Incremental mode below instead."
          },
          "incrementalMode": {
            "title": "Incremental changes for scheduled runs",
            "type": "boolean",
            "description": "Turn this on for daily or recurring monitoring. The first run returns all matching products as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED products. Turn on Emit unchanged or Emit expired only when you also want those products returned, and billed. State is kept separately for each combination of mode, keywords, departments, links, filters and enrichment settings; use State key when you want to name or deliberately share a monitoring campaign.",
            "default": false
          },
          "stateKey": {
            "title": "State key (optional, incremental mode only)",
            "type": "string",
            "description": "Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically, so two different searches never mix state with each other."
          },
          "emitUnchanged": {
            "title": "Emit unchanged products (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you specifically want the full snapshot every run.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired products (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return products that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search, not when Max products capped it and not when Resume was used. This returns, and bills, extra synthetic rows, so leave it off unless you need expiry tracking.",
            "default": false
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy with a Japanese exit is required for reliable results and is the default. The default pool is metered per use; select a cheaper pool in the Connection section only if your plan includes one.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyCountry": "JP"
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page per item export; other connectors get a best effort write or digest. Leave empty to skip; this never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}