{
  "openapi": "3.0.1",
  "info": {
    "title": "Buycycle.com — Used Bike Finder",
    "description": "Search Buycycle — Europe's largest used bike marketplace. Filter by brand, size, price, year, and condition. Get curated highlights, deal scores, and new-listing alerts.\nWant more bike marketplaces rolled into the same Actor? Email hello@inovaflow.io and we'll add them.",
    "version": "1.2",
    "x-build-id": "pHlm5QVwR9QXTWsoN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/inovaflow~buycycle-hunter-pw/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-inovaflow-buycycle-hunter-pw",
        "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/inovaflow~buycycle-hunter-pw/runs": {
      "post": {
        "operationId": "runs-sync-inovaflow-buycycle-hunter-pw",
        "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/inovaflow~buycycle-hunter-pw/run-sync": {
      "post": {
        "operationId": "run-sync-inovaflow-buycycle-hunter-pw",
        "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": {
          "model": {
            "title": "Search keyword",
            "type": "string",
            "description": "Free-text keyword to search buycycle.com. Leave blank to browse by filters only."
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "relevance",
              "new",
              "lowest-price",
              "highest-price"
            ],
            "type": "string",
            "description": "Order listings before collection. Default lowest-price.",
            "default": "lowest-price"
          },
          "country": {
            "title": "Buycycle marketplace country",
            "enum": [
              "de",
              "at",
              "be",
              "bg",
              "ch",
              "cy",
              "cz",
              "dk",
              "ee",
              "es",
              "fi",
              "fr",
              "gr",
              "hr",
              "hu",
              "ie",
              "it",
              "lt",
              "lu",
              "lv",
              "nl",
              "no",
              "pl",
              "pt",
              "ro",
              "se",
              "si",
              "sk",
              "us"
            ],
            "type": "string",
            "description": "Marketplace country. Sets currency, seller pool, and proxy region. Default Germany (de).",
            "default": "de"
          },
          "locationScope": {
            "title": "Seller location scope",
            "enum": [
              "continent",
              "country"
            ],
            "type": "string",
            "description": "Limit results by seller location relative to the chosen country. Leave empty for worldwide."
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Filter to specific bike brands. Leave empty for all brands.",
            "items": {
              "type": "string",
              "enum": [
                "specialized",
                "trek",
                "scott",
                "giant",
                "cannondale",
                "orbea",
                "bianchi",
                "bmc",
                "canyon",
                "cube",
                "pinarello",
                "wilier",
                "colnago",
                "merida",
                "ridley",
                "cervélo",
                "lapierre",
                "focus",
                "ktm",
                "megamo",
                "mondraker",
                "santa cruz",
                "bh",
                "factor",
                "look",
                "3t",
                "basso",
                "ghost",
                "stevens",
                "argon 18",
                "haibike",
                "rose",
                "liv",
                "mmr",
                "cinelli",
                "de rosa",
                "bottecchia",
                "commencal",
                "berria",
                "olympia",
                "felt",
                "yt industries",
                "pivot",
                "rockrider",
                "rocky mountain",
                "peugeot",
                "whistle",
                "van rysel",
                "propain",
                "transition",
                "corratec",
                "bulls",
                "fuji",
                "bergamont",
                "guerciotti",
                "conway",
                "kona",
                "radon",
                "gt",
                "yeti",
                "kross",
                "cipollini",
                "moustache",
                "superior",
                "kuota",
                "eddy merckx",
                "marin",
                "time",
                "sunn",
                "simplon",
                "sensa",
                "koga",
                "open",
                "fondriest",
                "torpado",
                "norco",
                "atala",
                "vitus",
                "lombardo",
                "isaac",
                "enve",
                "niner",
                "ibis",
                "riese & müller",
                "massi",
                "fantic",
                "mendiz",
                "origine",
                "scor",
                "aurum",
                "b'twin",
                "r raymon",
                "custom",
                "rotwild",
                "nukeproof",
                "decathlon",
                "raleigh",
                "storck",
                "brompton",
                "stromer",
                "litespeed",
                "other brands"
              ]
            },
            "default": []
          },
          "frameSizes": {
            "title": "Frame size",
            "type": "array",
            "description": "Filter by frame size (seat-tube length). Leave empty for all sizes.",
            "items": {
              "type": "string",
              "enum": [
                "xxxs",
                "xxs",
                "xs",
                "s",
                "m",
                "l",
                "xl",
                "xxl",
                "one-size-bike"
              ],
              "enumTitles": [
                "XXXS (<45 cm)",
                "XXS (45–47 cm)",
                "XS (48–49 cm)",
                "S (50–52 cm)",
                "M (53–55 cm)",
                "L (56–58 cm)",
                "XL (59–62 cm)",
                "XXL (>63 cm)",
                "One-size bike"
              ]
            },
            "default": []
          },
          "priceMin": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Lower price bound in the marketplace currency (incl. buyer protection fee). Leave empty for no minimum."
          },
          "priceMax": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Upper price bound in the marketplace currency (incl. buyer protection fee). Leave empty for no maximum."
          },
          "yearMin": {
            "title": "Earliest model year",
            "minimum": 2000,
            "type": "integer",
            "description": "Only include bikes from this model year or newer. Leave empty for no lower year limit."
          },
          "yearMax": {
            "title": "Latest model year",
            "minimum": 2000,
            "type": "integer",
            "description": "Only include bikes from this model year or older. Leave empty for no upper year limit."
          },
          "conditions": {
            "title": "Bike condition",
            "type": "array",
            "description": "Filter by buycycle condition grade (Fair → Brand new with guarantee). Leave empty for all conditions.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "Fair",
                "Good",
                "Very Good",
                "New",
                "Brand new with guarantee"
              ]
            },
            "default": []
          },
          "frameMaterials": {
            "title": "Frame material",
            "type": "array",
            "description": "Filter by frame material. Leave empty for all materials.",
            "items": {
              "type": "string",
              "enum": [
                "carbon",
                "aluminum",
                "steel",
                "titanium"
              ]
            },
            "default": []
          },
          "brakeTypes": {
            "title": "Brake type",
            "type": "array",
            "description": "Filter by brake type. Leave empty for all brake types.",
            "items": {
              "type": "string",
              "enum": [
                "disc",
                "rim",
                "drum",
                "coaster",
                "other"
              ]
            },
            "default": []
          },
          "shifts": {
            "title": "Shifting type",
            "type": "array",
            "description": "Filter by shifting type. Electronic = Di2/eTap/EPS; Mechanical = cable. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "electronic",
                "mechanical",
                "other"
              ]
            },
            "default": []
          },
          "isFrameset": {
            "title": "Frameset or complete bike",
            "enum": [
              "frameset",
              "complete"
            ],
            "type": "string",
            "description": "Leave empty to include both. Pick a value to limit to one type."
          },
          "isMotor": {
            "title": "E-bike or non-electric",
            "enum": [
              "ebike",
              "non-ebike"
            ],
            "type": "string",
            "description": "Leave empty to include both. Pick a value to limit to one type."
          },
          "sellerType": {
            "title": "Sold by",
            "type": "array",
            "description": "Filter by seller type (private individual or shop/dealer). Leave empty for both.",
            "items": {
              "type": "string",
              "enum": [
                "private",
                "commercial"
              ],
              "enumTitles": [
                "Private seller",
                "Shop / dealer"
              ]
            },
            "default": []
          },
          "highDemandOnly": {
            "title": "High-demand listings only",
            "type": "boolean",
            "description": "Return only listings with buycycle's 'High demand' badge. Default off.",
            "default": false
          },
          "maxPages": {
            "title": "Max pages to crawl",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Safety cap on pagination; ~50 bikes per page. Default 2 (max 50).",
            "default": 2
          },
          "returnOnly": {
            "title": "Highlights filter",
            "enum": [
              "all",
              "new_only",
              "with_discount",
              "cheapest_per_model",
              "best_value",
              "ignore_overpriced",
              "popular"
            ],
            "type": "string",
            "description": "Curates the main Output dataset. Full crawl always saved to Storage → 'full-results'. Default all.",
            "default": "all"
          },
          "minDiscountPct": {
            "title": "Minimum discount %",
            "minimum": 0,
            "maximum": 90,
            "type": "integer",
            "description": "Active when Highlights filter = 'Discounted bikes'. Minimum discount off MSRP. Default 20%.",
            "default": 20
          },
          "minWishlistCount": {
            "title": "Minimum wishlist count",
            "minimum": 0,
            "type": "integer",
            "description": "Active when Highlights filter = 'Popular'. Minimum number of wishlists. Default 20.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}