{
  "openapi": "3.0.1",
  "info": {
    "title": "Bobaedream Used Cars Scraper (Korea, new listing & price alert)",
    "description": "Scrape Bobaedream (보배드림) cyber-store, Korea's dealer used-car listings, domestic and imported: price in won, mileage, year, fuel, dealer and region per car, newest first, labelled new, price_drop, price_rise or unchanged since your last run.",
    "version": "0.1",
    "x-build-id": "kLgG7NPGeSbobmP40"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/superslowsloth~bobaedream-used-cars/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-superslowsloth-bobaedream-used-cars",
        "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/superslowsloth~bobaedream-used-cars/runs": {
      "post": {
        "operationId": "runs-sync-superslowsloth-bobaedream-used-cars",
        "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/superslowsloth~bobaedream-used-cars/run-sync": {
      "post": {
        "operationId": "run-sync-superslowsloth-bobaedream-used-cars",
        "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": {
          "market": {
            "title": "Market",
            "enum": [
              "domestic",
              "imported",
              "all"
            ],
            "type": "string",
            "description": "Which Bobaedream cyber-store to read: domestic Korean cars (국산차), imported cars (수입차) or both together. Measured 2026-10-27: about 420 domestic and 1,900 imported cars are for sale at any time; the store's date-ordered lists also keep its whole history of sold and expired cars back to 2021 (7,551 domestic and 20,843 imported rows), which are dropped by default. Ignored for Search URLs, which carry their own market.",
            "default": "domestic"
          },
          "makers": {
            "title": "Makers",
            "type": "array",
            "description": "Optional. Only these makers, one per line, in English or Korean: Hyundai, Kia, Genesis, Toyota, Mercedes-Benz, BMW, Porsche, Ferrari, 현대, 벤츠, ... Each maker is its own search sharing the Max listings budget, in order. A name that is not in Bobaedream's maker list for the chosen market is skipped and logged. Leave empty for every maker.",
            "items": {
              "type": "string"
            }
          },
          "fuels": {
            "title": "Fuels",
            "type": "array",
            "description": "Optional. Only these fuels, one per line, from: gasoline, diesel, lpg, gasoline_lpg, gasoline_cng, gasoline_hybrid, lpg_hybrid, diesel_hybrid, cng, electric, hydrogen, other. Several fuels are OR-ed. Leave empty for all fuels.",
            "items": {
              "type": "string"
            }
          },
          "yearMin": {
            "title": "Year from",
            "minimum": 1950,
            "maximum": 2100,
            "type": "integer",
            "description": "Optional. Lowest car year (연식) as Bobaedream's own year filter counts it, e.g. 2020. Leave empty for no lower bound."
          },
          "yearMax": {
            "title": "Year to",
            "minimum": 1950,
            "maximum": 2100,
            "type": "integer",
            "description": "Optional. Highest car year (연식) as Bobaedream's own year filter counts it, e.g. 2024. Leave empty for no upper bound."
          },
          "priceMin": {
            "title": "Price from (만원)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Lowest asking price in 만원 (units of 10,000 won): 1000 is 10,000,000 won. Bobaedream's price filter drops every listing with no price on file, which includes most imported cars listed as 상담 (ask the dealer): a 0 to 999,999 range keeps 5,691 of 20,843 imported rows."
          },
          "priceMax": {
            "title": "Price to (만원)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Highest asking price in 만원 (units of 10,000 won): 3000 is 30,000,000 won. Bobaedream's price filter drops every listing with no price on file, which includes most imported cars listed as 상담 (ask the dealer): a 0 to 999,999 range keeps 5,691 of 20,843 imported rows."
          },
          "mileageMin": {
            "title": "Mileage from (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Lowest odometer reading in km. Leave empty for no lower bound."
          },
          "mileageMax": {
            "title": "Mileage to (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Highest odometer reading in km, e.g. 100000. Leave empty for no upper bound."
          },
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Optional. Bobaedream cyber-store list URLs copied from your browser after you set any filters on the site (model, grade, region, colour, options, body type), e.g. https://www.bobaedream.co.kr/cyber/CyberCar.php?gubun=I&maker_no=21. Must be a /cyber/CyberCar.php list; a page=3 parameter is kept and the run starts there. Single-car pages and other sites are skipped and logged. When you give URLs and leave every filter above empty and the market on domestic, only the URLs run.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "newest",
              "price_asc",
              "price_desc",
              "year_newest",
              "year_oldest",
              "mileage_asc",
              "mileage_desc"
            ],
            "type": "string",
            "description": "Newest registration first is the default and the right order for a new-listing feed; it is the only order that also holds sold and expired cars (as history, dropped unless 'Include sold'), and the only one registered dates and 'Registered since' work with. Every other order lists only the cars still for sale: 424 domestic and 1,878 imported on 2026-10-27, in 7 and 27 pages, so reading them is the cheapest way to take the whole current inventory. A search URL that already carries an order parameter keeps its own.",
            "default": "newest"
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 1,
            "maximum": 30000,
            "type": "integer",
            "description": "Stop after reading this many listings in total, shared across every search, in order. Bobaedream shows 70 listings per page, so up to 70 costs one page request. For a feed this is the window watched: 'the newest 100'. With 'Only changes' on, listings read but unchanged since the last run are skipped and not charged, and the run still stops here. Sold and expired listings dropped by default do not count.",
            "default": 100
          },
          "registeredSince": {
            "title": "Registered since",
            "type": "string",
            "description": "Optional, YYYY-MM-DD in Korean time. Skip listings the dealer registered before this date; the run stops at the first older listing, so a daily feed with this set reads only the pages it needs. Needs the newest-registered-first sort. Bobaedream prints the date without a year; the actor counts the year down the list from page 1, so it is exact on a walk that starts there and absent (registered_date null, registered_month_day kept) on any other walk."
          },
          "includeSold": {
            "title": "Include sold listings",
            "type": "boolean",
            "description": "The date-ordered lists are mostly history: of 7,551 domestic rows, 7,127 are no longer for sale (sold 팔림, expired 만료, under contract 계약), back to 2021. Sold and expired rows are dropped by default, not charged and not remembered; a newest-first walk also ends once three pages in a row hold nothing left to read. Turn on to get them with status sold or expired. Rows under contract (계약), ask-the-dealer (상담) and lease/rent are always kept. Has no effect on the price, year and mileage sorts, which hold only cars for sale.",
            "default": false
          },
          "changesOnly": {
            "title": "Only changes since last run",
            "type": "boolean",
            "description": "Output (and pay for) only listings that are new since the previous run of the same search, or whose price went down or up. The first run of a search has nothing to compare with, so it labels every listing new and outputs all of them; the memory is kept per search in a named key-value store on your account (bobaedream-used-cars-watch). Leave off to get every listing, each still labelled new / price_drop / price_rise / unchanged.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify datacenter proxy by default. Measured 2026-10-27: bobaedream.co.kr answered Apify datacenter exits from inside the platform with HTTP 200 and the full page on 10 of 10 requests. Switch to RESIDENTIAL only if runs start reporting refusals.",
            "default": {
              "useApifyProxy": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}