{
  "openapi": "3.0.1",
  "info": {
    "title": "Buyee Scraper: Yahoo Auctions & Mercari Japan Data",
    "description": "Scrape Buyee.jp product listings from Yahoo Auctions Japan and Mercari Japan by item URL, item ID, or search query - price, bids, seller rating, shipping estimate, condition, category, images, and description.",
    "version": "0.3",
    "x-build-id": "02dwV8gozAngkJuvf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~buyee-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-buyee-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/getascraper~buyee-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-buyee-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/getascraper~buyee-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-buyee-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": {
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Free-text search terms (e.g. \"pokemon card\"). This is the fastest path for most users - pair it with the Search filters section below to narrow results instead of scraping everything and filtering afterwards.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Item URLs, IDs, or search/category URLs (power users)",
            "type": "array",
            "description": "For one-off lookups: Buyee item URLs (buyee.jp/item/jdirectitems/auction/... or buyee.jp/mercari/item/...), raw Yahoo Auctions Japan item URLs (page.auctions.yahoo.co.jp/jp/auction/...), bare Yahoo Auction IDs (e.g. r1236578744), bare Mercari item IDs (e.g. m10844932381), or a raw Buyee search/category URL you built yourself. The Search filters section does not apply to entries here - they are fetched exactly as given.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "platformScope": {
            "title": "Platform scope",
            "enum": [
              "both",
              "yahoo_auction",
              "mercari"
            ],
            "type": "string",
            "description": "Which marketplace(s) to search. \"Both\" issues a separate search against Yahoo Auctions/JDirectItems and against Mercari for every search query, so real Mercari results are always included (Buyee's own general search page never surfaces Mercari listings).",
            "default": "both"
          },
          "priceMin": {
            "title": "Minimum price (YEN)",
            "minimum": 0,
            "type": "integer",
            "description": "Real server-side filter, verified live against buyee.jp: Yahoo Auction search uses aucminprice, Mercari search uses price_min. Leave blank for no minimum."
          },
          "priceMax": {
            "title": "Maximum price (YEN)",
            "minimum": 0,
            "type": "integer",
            "description": "Real server-side filter, verified live against buyee.jp: Yahoo Auction search uses aucmaxprice, Mercari search uses price_max. Leave blank for no maximum."
          },
          "condition": {
            "title": "Item condition",
            "type": "array",
            "description": "Real server-side filter, verified live against both platforms' own search filter UI (Yahoo Auction's item_status, Mercari's condition). You can select more than one for Yahoo Auction (comma-joined, confirmed multi-value); for Mercari only the first selection you pick is sent, since multi-value condition was never verified against Mercari's endpoint - see AGENTS.md.",
            "items": {
              "type": "string",
              "enum": [
                "new_unused",
                "like_new",
                "good",
                "fair",
                "poor",
                "overall_poor"
              ],
              "enumTitles": [
                "Unused / New",
                "Like new / Close to unused",
                "Good (no noticeable scratches or stains)",
                "Fair (slight scratches or stains)",
                "Poor (visible scratches or stains)",
                "Overall poor condition"
              ]
            },
            "default": []
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "price_low_to_high",
              "price_high_to_low",
              "ending_soonest"
            ],
            "type": "string",
            "description": "Real server-side filter (sort + order query params), verified live - but Yahoo Auction / JDirectItems results only. No verified sort param exists for Mercari search, so Mercari results always come back in Buyee's own default order regardless of this setting.",
            "default": "relevance"
          },
          "buyItNowOnly": {
            "title": "Buy It Now only",
            "type": "boolean",
            "description": "Real server-side filter (buynow=1), verified live. Yahoo Auction / JDirectItems only - Mercari listings are already fixed-price, so this has no effect on Mercari results.",
            "default": false
          },
          "hasBidsOnly": {
            "title": "Has bids only",
            "type": "boolean",
            "description": "Client-side post-filter (no verified \"has bids\" query param exists on buyee.jp). Only takes effect when \"Scrape full item details\" is on below - lightweight search-list results are never filtered by bid count, since bid count isn't part of the lightweight record. Yahoo Auction only; Mercari has no bidding concept.",
            "default": false
          },
          "scrapeItemDetails": {
            "title": "Scrape full item details",
            "type": "boolean",
            "description": "When a search query is given, follow every result to its own item page for the full field set (price, seller rating, shipping, description, real bid count). When off (the default), only the fields visible on the results list are returned - faster and cheaper, but the record will NOT include brand, condition, description, seller, or bid-count fields at all (they are omitted, not blank), and \"Has bids only\" above has no effect. This is a cost/richness tradeoff: turning it on means one extra page navigation per result.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of items to return across all start URLs and search queries.",
            "default": 50
          },
          "categoryId": {
            "title": "Category ID (advanced)",
            "type": "string",
            "description": "Optional raw platform-native category id to scope a search query to one category, e.g. 25464 for Yahoo Auction's \"Toys & Games\" or 1328 for Mercari's \"Games, Toys & Goods\". Yahoo Auction and Mercari use two different, incompatible id spaces - see AGENTS.md for the full verified id tables for both. Left free-text rather than a dropdown because a single enum can't cleanly represent both platforms' category trees in one field.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Buyee's item and search pages use AWS WAF Bot Control. Direct egress is the lowest-cost tested route and is the default. Select Apify's datacenter pool only if your network receives a block. Residential routing is intentionally rejected because its measured transfer cost can exceed the PPE price.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}