{
  "openapi": "3.0.1",
  "info": {
    "title": "Japan Used Camera & Lens — Dealer Price vs Sold Price",
    "description": "Type a camera or lens model and get what it sold for at auction in Japan (sold comps) next to what dealer Fujiya Camera asks, by condition rank. Returns sold median on Yahoo! Auctions and Mercari, dealer median per condition, gap in %. $0.02 per model, no gap = no charge. Unofficial.",
    "version": "0.1",
    "x-build-id": "V9eWw7KDjlFIpXfas"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpmarketdata~japan-camera-gear-sold-comps/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpmarketdata-japan-camera-gear-sold-comps",
        "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/jpmarketdata~japan-camera-gear-sold-comps/runs": {
      "post": {
        "operationId": "runs-sync-jpmarketdata-japan-camera-gear-sold-comps",
        "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/jpmarketdata~japan-camera-gear-sold-comps/run-sync": {
      "post": {
        "operationId": "run-sync-jpmarketdata-japan-camera-gear-sold-comps",
        "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",
        "required": [
          "models"
        ],
        "properties": {
          "models": {
            "title": "Camera / lens models",
            "type": "array",
            "description": "One or more model names — the model number is the search key on every site, so no name matching is involved (Nikon Z6, Canon RF 24-70mm F2.8, SIGMA 35mm F1.4 DG DN, Leica M6). Latin script works everywhere; Japanese also works. Each model costs $0.02.",
            "default": [
              "Canon EOS R6"
            ],
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "title": "Sources to price",
            "type": "array",
            "description": "Choose Fujiya dealer asking prices, Yahoo auction sold prices, Mercari or PayPay asking prices. With dealer and sold sources selected, $0.02 per model is charged only when a spread can be computed; a deliberately one-sided lookup is charged when that side delivers. Optional individual rows cost $0.002 each.",
            "items": {
              "type": "string",
              "enum": [
                "fujiya",
                "yahoo_auction",
                "mercari",
                "paypay_flea"
              ],
              "enumTitles": [
                "Fujiya Camera — dealer ask by condition rank (フジヤカメラ中古)",
                "Yahoo! Auctions — sold / winning bids (ヤフオク落札)",
                "Mercari Japan — sold out and/or on sale (メルカリ)",
                "PayPay Flea Market — consumer ask (PayPayフリマ)"
              ]
            },
            "default": [
              "fujiya",
              "yahoo_auction",
              "mercari"
            ]
          },
          "conditionRanks": {
            "title": "Dealer condition ranks to price",
            "type": "array",
            "description": "Which of the dealer's condition ranks to price. Each rank costs 1-2 extra requests, so narrowing this speeds up multi-model runs. Codes: 1000=未使用/未開封品 (unused), 1001=A, 1002=AB+, 1003=AB, 1004=AB-, 1005=B, 1006=現状品 (as-is), 1007=コレクション (collection). Leave empty for the whole ladder.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "mercariStatus": {
            "title": "Mercari listing status",
            "enum": [
              "sold_out",
              "on_sale",
              "both"
            ],
            "type": "string",
            "description": "Choose source-labelled sold-out prices, current asking prices or both as separate blocks. This changes which sold-side comparison is possible. Base pricing stays $0.02 per model when the selected comparison is available; both can add more optional individual rows at $0.002 each.",
            "default": "sold_out"
          },
          "includeNewReference": {
            "title": "Include the new-price ceiling",
            "type": "boolean",
            "description": "Also measure the dealer's new/outlet price for the same model, so the used discount against new (usedVsNewDiscountPct) can be reported. Costs 1-2 extra requests per model.",
            "default": false
          },
          "priceMinJpy": {
            "title": "Minimum price (JPY, optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Exclude auction and flea-market listings below this yen price before calculating sold and consumer asking prices. This removes cheap accessories sharing the model name. Empty sets no lower bound. Dealer prices and condition counts are unchanged: they come from the shop’s own filters."
          },
          "priceMaxJpy": {
            "title": "Maximum price (JPY, optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop auction/flea-market listings priced above this before computing the sold and consumer-ask statistics. Useful to cut bundles, full kits and lot sales out of a model."
          },
          "maxListingsPerSource": {
            "title": "Max listings sampled per source",
            "minimum": 30,
            "maximum": 300,
            "type": "integer",
            "description": "How many listings to sample per source before computing the statistics. The dealer rank counts and rank medians are read from the site's own filtered result sets and are NOT affected by this. Yahoo returns 50 per request, Mercari 120, PayPay 100, Fujiya 50, and requests are throttled to one per 1.5 s.",
            "default": 60
          },
          "includeIndividualListings": {
            "title": "Include individual listings",
            "type": "boolean",
            "description": "Off by default: a run costs a flat $0.02 per model, whatever the number of sources. Enable to also get every sampled listing from every source (title, price, condition rank, URL, price basis) at +$0.002 per listing.",
            "default": false
          },
          "convertToUsd": {
            "title": "Convert prices to USD",
            "type": "boolean",
            "description": "Adds USD statistics next to JPY using the current exchange rate (open.er-api.com, looked up once per run).",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}