{
  "openapi": "3.0.1",
  "info": {
    "title": "Ohouse Scraper (오늘의집) - Furniture & Interior Products, Rankings",
    "description": "Pick a mode and get Ohouse (오늘의집, ohou.se) store products as flat rows: realtime or all-time best rankings, category lists, keyword search results or product pages, with price, discount, rating, reviews, scraps, delivery and sold-out status, plus rank and price change since your last run.",
    "version": "0.1",
    "x-build-id": "ftZEaD6tjEbexha2K"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/magenta_courser~ohouse-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-magenta_courser-ohouse-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/magenta_courser~ohouse-scraper/runs": {
      "post": {
        "operationId": "runs-sync-magenta_courser-ohouse-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/magenta_courser~ohouse-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-magenta_courser-ohouse-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",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "ranking",
              "search",
              "category",
              "products"
            ],
            "type": "string",
            "description": "What to scrape. ranking = Ohouse best-seller ranking (top 100), search = store search results for \"keywords\", category = product list of \"categories\", products = product pages from \"productUrls\". If empty: products when productUrls is set, otherwise search when keywords is set, otherwise ranking."
          },
          "rankingType": {
            "title": "Ranking type (ranking mode)",
            "enum": [
              "realtime",
              "allTime"
            ],
            "type": "string",
            "description": "Ranking mode only. realtime = 실시간 베스트, the site-wide ranking Ohouse refreshes during the day (no category filter). allTime = 역대 베스트, available site-wide and per category (set \"categories\"). Default: realtime, or allTime when categories are set. Both lists have 100 products."
          },
          "keywords": {
            "title": "Keywords (search mode)",
            "type": "array",
            "description": "Search mode. Store search keywords, one per line, as a Korean shopper types them, e.g. 소파 (sofa), 책상 (desk), 암막커튼 (blackout curtain). A pasted Ohouse search URL also works (its query is used). Only the organic product results are returned; recommendation carousels are skipped.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories (category / ranking mode)",
            "type": "array",
            "description": "Category mode, or all-time ranking per category. Category ID (e.g. 10000000), category URL (https://ohou.se/store/category?category_id=10000000) or a top-level name: 가구 furniture, 패브릭 fabric, 가전·디지털 appliances, 주방용품 kitchen, 식품 food, 데코·식물 deco, 조명 lighting, 수납·정리 storage, 생활용품 household, 생필품 essentials, 유아·아동 kids, 반려동물 pets, 캠핑·레저 camping, 공구·DIY tools, 인테리어시공 remodeling, 렌탈·구독 rental, 장보기 groceries, 크리스마스 christmas. For sub-categories copy the category_id from the Ohouse URL.",
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "Product URLs (products mode)",
            "type": "array",
            "description": "Products mode. Ohouse product URLs or IDs, one per line, e.g. https://store.ohou.se/goods/767440, https://ohou.se/productions/767440/selling or 767440. Adds category path, delivery fee, free-delivery threshold, Q&A count and sale status.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort order (search / category mode)",
            "enum": [
              "popular",
              "weekly_buy",
              "review",
              "min_cost",
              "max_cost",
              "recent",
              "card"
            ],
            "type": "string",
            "description": "Search and category mode: the order of the list, as on the website. weekly_buy (판매순) is the category best-seller list.",
            "default": "popular"
          },
          "maxItems": {
            "title": "Max products per list",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Products 1 to maxItems of each list (each keyword, category or ranking). Rankings have 100 products. You pay per saved product row, so this is also your row count per list.",
            "default": 100
          },
          "compareWithLastRun": {
            "title": "Compare with last run",
            "type": "boolean",
            "description": "Add previousRank, rankChange (positive = moved up), isNewEntry, previousPrice, priceChange and reviewCountChange, compared with the last completed run of the same list (or the same product in products mode). Kept in a named key-value store in your account, so scheduled runs line up automatically.",
            "default": true
          },
          "outputMode": {
            "title": "Output",
            "enum": [
              "all",
              "changesOnly"
            ],
            "type": "string",
            "description": "changesOnly saves (and charges) only products that are new in the list or whose rank, price, review count or sold-out status changed since the last completed run. The first run has nothing to compare with and saves everything. Needs \"Compare with last run\".",
            "default": "all"
          },
          "historyStoreName": {
            "title": "History store name",
            "type": "string",
            "description": "Named key-value store that keeps the last ranks and prices. Use a different name for each separate tracking project.",
            "default": "ohouse-history"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Default: Apify datacenter proxy, which worked without blocks in our tests. If requests get blocked, switch to Apify residential, country KR (South Korea).",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxRequests": {
            "title": "Max requests per run",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Upper limit on HTTP requests for the whole run, retries included. Default: 2 per planned page + 5. When it is used up the run stops and keeps what it saved."
          },
          "maxRunMinutes": {
            "title": "Max run time (minutes)",
            "minimum": 1,
            "maximum": 1440,
            "type": "integer",
            "description": "The run stops sending new requests after this many minutes (default 60) and keeps what it saved. It also stops after 10 blocked requests in a row."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}