{
  "openapi": "3.0.1",
  "info": {
    "title": "Yahoo Auctions Sold/Completed + Seller Intel",
    "description": "Know what Japanese buyers actually paid. Scrapes 180 days of sold Yahoo! Auctions Japan listings with bids, bidders, watchers and views, then computes price comps (median, trimmed mean, P25-P75, trend) and per-seller GMV and velocity. No login needed.",
    "version": "0.0",
    "x-build-id": "6ph1yso0rdQznAqis"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sigma-dev~yahoo-auctions-sold-completed-seller-intel/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sigma-dev-yahoo-auctions-sold-completed-seller-intel",
        "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/sigma-dev~yahoo-auctions-sold-completed-seller-intel/runs": {
      "post": {
        "operationId": "runs-sync-sigma-dev-yahoo-auctions-sold-completed-seller-intel",
        "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/sigma-dev~yahoo-auctions-sold-completed-seller-intel/run-sync": {
      "post": {
        "operationId": "run-sync-sigma-dev-yahoo-auctions-sold-completed-seller-intel",
        "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": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Japanese or English keywords to look up in Yahoo! Auctions sold history. Each term becomes its own query and its own price-comps record. Japanese terms return far more results, since that is how items are listed.",
            "items": {
              "type": "string"
            }
          },
          "categoryIds": {
            "title": "Category IDs",
            "type": "array",
            "description": "Yahoo category IDs (the `auccat` value in a Yahoo URL), e.g. 23336 for watches. Used alone to sweep a whole category's sold history, or combined with search terms to restrict those terms to these categories.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sellerIds": {
            "title": "Seller IDs",
            "type": "array",
            "description": "Yahoo seller IDs. Each one returns that seller's complete 180-day sold history — the richest input for seller intelligence. Find an ID in any seller profile URL: auctions.yahoo.co.jp/seller/<ID>.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Yahoo sold-search URLs to crawl directly, for filters this input does not expose. Parameters Yahoo's robots.txt disallows (n, select, aucminprice, aucmaxprice, thumb, …) are stripped automatically and the URL rebuilt.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "anyKeywords": {
            "title": "Match any of these words",
            "type": "string",
            "description": "Space-separated words; a listing matches if it contains at least one of them. Maps to Yahoo's `vo` parameter."
          },
          "excludeKeywords": {
            "title": "Exclude these words",
            "type": "string",
            "description": "Space-separated words to exclude. Maps to Yahoo's `ve` parameter. Useful for stripping out ジャンク (junk), 修理 (repair) and レプリカ (replica) so comps reflect sellable stock."
          },
          "marketplace": {
            "title": "Marketplace",
            "enum": [
              "auctions",
              "fleamarket",
              "both"
            ],
            "type": "string",
            "description": "Yahoo returns Auctions and Flea Market (フリマ) sales in one response. Auction rows carry bids, bidders and watcher counts; flea-market rows are fixed-price and carry none. Auction share varies by keyword — around 44 of 50 rows for ロレックス, but only about 2 of 50 for ポケモンカード, so choosing 'both' can retrieve far more for flea-heavy terms.",
            "default": "auctions"
          },
          "soldWithinDays": {
            "title": "Sold within the last N days",
            "minimum": 1,
            "maximum": 180,
            "type": "integer",
            "description": "Only keep sales that ended within this many days. Yahoo retains 180 days of sold history, which is the maximum. Results come back newest-first, so a smaller window also means a much shorter crawl.",
            "default": 180
          },
          "minPrice": {
            "title": "Minimum sold price",
            "minimum": 1,
            "type": "integer",
            "description": "Ignore sales below this final price, in yen. Filtering out 1-yen junk lots materially improves the median and trend figures."
          },
          "maxPrice": {
            "title": "Maximum sold price",
            "minimum": 1,
            "type": "integer",
            "description": "Ignore sales above this final price, in yen. Leave empty for no ceiling."
          },
          "maxItems": {
            "title": "Maximum sold items",
            "minimum": 1,
            "type": "integer",
            "description": "Total cap on sold items across the whole run. Each Yahoo request returns 50 rows, so 200 items is about 4 requests. Raise it for a deeper sweep; note that deeper history is what makes the price-trend figure computable.",
            "default": 200
          },
          "maxItemsPerQuery": {
            "title": "Maximum sold items per query",
            "minimum": 1,
            "type": "integer",
            "description": "Per-term cap, so one broad keyword cannot consume the entire run budget when several terms are supplied.",
            "default": 200
          },
          "autoSlicePriceBands": {
            "title": "Split large queries into price bands",
            "type": "boolean",
            "description": "Yahoo stops serving results past about 10,000 rows per query, silently truncating anything broader. When enabled, an over-cap query is automatically split into narrower price bands so the full result set is retrievable. Leave on unless you want strictly the newest sales.",
            "default": true
          },
          "includeSellerIntel": {
            "title": "Collect seller intelligence",
            "type": "boolean",
            "description": "Build a per-seller report (GMV, median price, velocity, category mix, relist rate) in the `sellers` dataset. Costs one extra request per unique seller to read their active-listing count.",
            "default": true
          },
          "maxSellerProfiles": {
            "title": "Maximum seller profiles",
            "minimum": 0,
            "type": "integer",
            "description": "Cap on seller profile requests, to bound run cost on keywords with many distinct sellers. Sellers beyond the cap still receive list-derived metrics, just no active-listing count.",
            "default": 25
          },
          "computeComps": {
            "title": "Compute price comps",
            "type": "boolean",
            "description": "Write a per-query statistics record (median, p25/p75, trimmed mean, GMV, bid competition, and the 30-day vs 31-90-day price trend) to the `comps` dataset.",
            "default": true
          },
          "incrementalMode": {
            "title": "Incremental mode",
            "type": "boolean",
            "description": "Remember which sales were already seen and skip them on later runs, so a scheduled run returns only what is new. State is kept in a named key-value store that persists between runs (the run's own default store cannot be used, as it is created fresh each run).",
            "default": false
          },
          "stateStoreName": {
            "title": "State store name",
            "type": "string",
            "description": "Named key-value store holding incremental state. Only used when incremental mode is on. Give each scheduled watch list its own name so their histories stay separate.",
            "default": "yahoo-auctions-sold-state"
          },
          "maxConcurrency": {
            "title": "Maximum concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Parallel requests. Yahoo's sold pages are static HTML, so 10 is comfortable; raise it carefully, as aggressive crawling invites blocking.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Yahoo blocks some datacenter IP ranges. The default is Apify Proxy's automatic (datacenter) mode, which every plan can use and is usually sufficient. If your plan includes proxy country selection, setting the country to Japan improves results — a Japanese exit IP keeps prices and shipping in their domestic form. If your plan includes residential proxies, the Actor can escalate to them automatically when blocked.",
            "default": {
              "useApifyProxy": true
            }
          },
          "escalateToResidentialOnBlock": {
            "title": "Escalate to residential proxy if blocked",
            "type": "boolean",
            "description": "If the first proxy tier returns no data and shows block signals, retry the outstanding requests on Japanese residential proxies. Residential traffic costs more, so it is only used when the cheaper tier actually fails.",
            "default": true
          },
          "writeNamedDatasets": {
            "title": "Also write aggregates to named datasets",
            "type": "boolean",
            "description": "Mirror the price comps and seller intel into persistent named datasets (comps, sellers) in addition to the key-value store. Off by default: named datasets accumulate across runs and can be refused on some plans. The key-value store copy is always written either way.",
            "default": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}