{
  "openapi": "3.0.1",
  "info": {
    "title": "Mercari Japan Scraper & New Listing Monitor - Prices in JPY",
    "description": "For resellers, sourcing and price research: Mercari Japan listings by keyword or search URL, newest first, with title, price in JPY as a number, on sale or sold, condition, brand, photo, link and listing time. Search sold items to see what things sold for. Monitoring returns only new listings.",
    "version": "0.1",
    "x-build-id": "TVnm4DsNybysMX4nB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~mercari-japan-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-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/neverempty~mercari-japan-scraper/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-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/neverempty~mercari-japan-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-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",
            "type": "array",
            "description": "One search per line, e.g. ポケモンカード or nintendo switch. Japanese keywords match the most listings. The filters below (status, condition, price, sort) apply to every keyword. The same keyword twice (ignoring upper/lower case and full-width characters) is searched once. If you leave both this field and Search URLs empty with monitoring off, the example keyword ポケモンカード is searched; with monitoring on, a keyword or URL is required.",
            "items": {
              "type": "string"
            }
          },
          "keyword": {
            "title": "Single keyword (optional)",
            "type": "string",
            "description": "One more keyword, in addition to the list above. The field has the same name as in other Mercari scrapers, so an existing input can be pasted as it is."
          },
          "startUrls": {
            "title": "Search URLs (optional)",
            "type": "array",
            "description": "Mercari Japan search result URLs, e.g. https://jp.mercari.com/search?keyword=switch&status=on_sale&price_min=3000. The filters in the URL are used (keyword, exclude_keyword, price_min, price_max, status, item_condition_id, category_id, brand_id, shipping_payer_id, sort, order) and the filters below are not applied to it. A URL with any other filter, and item, profile or category pages, come back as a free row with the reason, because ignoring a filter would return a wider search than the URL shows.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeyword": {
            "title": "Exclude words",
            "type": "string",
            "description": "Listings containing this word are left out by Mercari's own search (for example ジャンク for junk items). Applies to the keywords above."
          },
          "status": {
            "title": "Listing status",
            "uniqueItems": true,
            "type": "array",
            "description": "on_sale = still for sale, trading = bought and being completed, sold_out = sold. Leave the default to get only listings still for sale; choose sold_out to see what things sold for. An empty list returns all statuses.",
            "items": {
              "type": "string",
              "enum": [
                "on_sale",
                "sold_out",
                "trading"
              ],
              "enumTitles": [
                "On sale",
                "Sold out",
                "Trading (sold, not yet completed)"
              ]
            },
            "default": [
              "on_sale"
            ]
          },
          "condition": {
            "title": "Item condition",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only these conditions, as the seller set them. Empty = every condition.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "like_new",
                "good",
                "fair",
                "poor",
                "bad"
              ],
              "enumTitles": [
                "New, unused (新品、未使用)",
                "Like new (未使用に近い)",
                "No noticeable scratches or stains (目立った傷や汚れなし)",
                "Some scratches or stains (やや傷や汚れあり)",
                "Scratches or stains (傷や汚れあり)",
                "Poor overall condition (全体的に状態が悪い)"
              ]
            }
          },
          "priceMin": {
            "title": "Minimum price (JPY)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or above this many yen. Empty or 0 = no minimum."
          },
          "priceMax": {
            "title": "Maximum price (JPY)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or below this many yen. Empty or 0 = no maximum."
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "created_time",
              "score",
              "price"
            ],
            "type": "string",
            "description": "created_time is Mercari's \"newest first\" order. Mercari also moves a listing up this order when the seller updates it (for example lowers the price), so every row has both createdAt and updatedAt. Monitoring mode always uses newest first.",
            "default": "created_time"
          },
          "order": {
            "title": "Sort direction",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "desc = newest or highest price first; asc = oldest or lowest price first.",
            "default": "desc"
          },
          "limit": {
            "title": "Maximum listings per search",
            "minimum": 1,
            "type": "integer",
            "description": "How many listings to return for each keyword or URL (Mercari serves 120 per results page). Up to 10,000 per search; a larger value is read as 10,000. With monitoring on, this limit applies only to the first run of a search; later runs return every new listing they find, reading at most 20 results pages (2,400 listings) per search.",
            "default": 100
          },
          "monitoringMode": {
            "title": "Monitoring mode: return only new listings since the last run",
            "type": "boolean",
            "description": "Off = every run returns the current results. On = the Actor remembers, for each search (keyword plus filters), when it last checked and which listings it returned. The first run of a search returns up to the limit (newest first) and remembers the other listings on the results pages it read. Later runs return only listings created since the previous check (with a 15-minute overlap) that were not returned before, reading newest first until a results page is older than that or already seen, at most 20 pages per search. Busy searches read more pages per check (on 2026-09-17, ポケモンカード with no filter changed by about one page every 1.5 minutes). Older listings that a seller edits move up Mercari's order but are not returned again. **In monitoring mode every results page read costs $0.30 per 1,000 pages, whether or not it has new listings**, plus the price of each listing row returned. Example: 5 keywords checked every 15 minutes, one page each = 14,400 pages a month = $4.32. Do not put the same search in two schedules that can run at the same time.",
            "default": false
          },
          "resetMonitoringState": {
            "title": "Forget what was returned for these searches",
            "type": "boolean",
            "description": "Clears what was remembered for the searches in this input only, so this run is a first run for them again. Turn it off again after one run: left on in a schedule, every run is a first run.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}