{
  "openapi": "3.0.1",
  "info": {
    "title": "Mercari Japan Scraper — Listings & Sold Prices",
    "description": "Scrape Mercari Japan listings and sold prices by keyword or jp.mercari.com URL. Returns JPY price, status, seller, photos, timestamps, plus optional median sold-comp stats. HTTP-only and MCP-ready. $0.005/listing, $0.02/sold-comp report.",
    "version": "0.1",
    "x-build-id": "zow02z3T7eqBzvaff"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~mercari-japan-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-mercari-japan-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/khadinakbar~mercari-japan-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-mercari-japan-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/khadinakbar~mercari-japan-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-mercari-japan-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": {
          "keywords": {
            "title": "Search keywords",
            "maxItems": 50,
            "type": "array",
            "description": "Product, brand, or model phrases to search on Mercari Japan, for example 'nintendo switch' or 'ナイキ ダンク'. Each keyword is searched separately, up to 50 per run. Use this for market dumps and sold comps. NOT a Mercari US query and not a Buyee URL.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Mercari Japan URLs",
            "maxItems": 50,
            "type": "array",
            "description": "jp.mercari.com search or item URLs, for example https://jp.mercari.com/search?keyword=watch&status=sold_out or https://jp.mercari.com/item/m30214061125. Search query params for keyword, status, category_id, brand_id, and price are honored. Maximum 50 URLs. Do not paste mercari.com US links.",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "title": "Listing status",
            "enum": [
              "all",
              "on_sale",
              "sold_out",
              "trading"
            ],
            "type": "string",
            "description": "Which Mercari listing states to return. sold_out is the sold-price / comps filter. on_sale is currently listed asking prices. all mixes both. Default all. This is not Mercari Shops inventory outside the public item search.",
            "default": "all"
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "created_time",
              "score",
              "price",
              "likes"
            ],
            "type": "string",
            "description": "How Mercari orders search results before pagination. created_time (default) is newest first when order is desc. score is Mercari relevance. Use created_time for sold-comp freshness. This is not a custom ranking formula.",
            "default": "created_time"
          },
          "order": {
            "title": "Sort direction",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Sort direction for the selected sort field. desc (default) is newest or highest first. Pair price+asc for cheapest listings. Ignored for item-URL lookups.",
            "default": "desc"
          },
          "priceMin": {
            "title": "Min price (JPY)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings priced at or above this yen amount, for example 1000. Leave empty for no lower bound. This is Mercari's listed JPY price, not a USD conversion and not a shipping-inclusive total."
          },
          "priceMax": {
            "title": "Max price (JPY)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings priced at or below this yen amount, for example 15000. Leave empty for no upper bound. Combined with priceMin this is a JPY band, not a percent discount filter."
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum listing rows to save across every keyword and URL. Default 50. Prefill 3 keeps the quality test under five minutes. Sold-comp report rows are extra and do not consume this cap. Hard ceiling 500.",
            "default": 50
          },
          "includeSoldStats": {
            "title": "Include sold-comp report",
            "type": "boolean",
            "description": "When true, add one marketStats row per keyword with median/p25/p75/min/max JPY and approximate days-to-sell from sold_out listings. Charges $0.02 extra when a report is saved. Default false. Prefill true for the sold-price sample. This is a sample statistic, not a Mercari official index.",
            "default": false
          },
          "soldStatsSampleSize": {
            "title": "Sold-comp sample size",
            "minimum": 5,
            "maximum": 100,
            "type": "integer",
            "description": "How many sold_out prices to sample when building the optional sold-comp report. Default 30. Used only when includeSoldStats is true. Does not raise maxItems.",
            "default": 30
          },
          "fetchItemDetails": {
            "title": "Fetch item details",
            "type": "boolean",
            "description": "When true, call Mercari item detail for each listing to add description, seller name, likes, and shipping payer. Slower; still charged as listing-scraped only. Default false. Item URLs always fetch detail. This is not a comments scrape.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify proxy used if direct Mercari requests are blocked. Direct-first, then this proxy. Default Apify proxy on. Prefer RESIDENTIAL if you see HTTP 403. This is not a Mercari account login.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}