{
  "openapi": "3.0.1",
  "info": {
    "title": "Buycycle Scraper",
    "description": "[💰 $0.09 / 1K] Extract used bike listings from buycycle.com, Europe's largest used bike marketplace — brand, model, price, MSRP, discount, frame size, year, groupset, condition, e-bike status, seller type, and photos. Search by keyword or filters, or paste a URL.",
    "version": "1.0",
    "x-build-id": "NdkM4Zz3n366uIBXW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~buycycle-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-buycycle-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/solidcode~buycycle-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-buycycle-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/solidcode~buycycle-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-buycycle-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": {
          "startUrls": {
            "title": "Buycycle URLs",
            "type": "array",
            "description": "Paste one or more buycycle.com shop, search, or individual bike URLs — for example https://buycycle.com/en-de/shop/main-types/bikes or https://buycycle.com/en-de/product/canyon-aeroad-cf-slx. Leave empty to build a search with the filters below instead. A URL wins on any filter it already carries; every other setting you choose still applies on top of it.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Free-text searches, for example \"Canyon Aeroad\" or \"Specialized Tarmac\". Each keyword is collected separately. Leave empty to browse by filters only. Ignored when URLs are provided.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "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": "Which buycycle storefront to search. This sets the currency and the pool of sellers that ship to you."
          },
          "mainTypes": {
            "title": "What to look for",
            "uniqueItems": true,
            "type": "array",
            "description": "Buycycle sells complete bikes as well as gear for other sports. Leave empty for complete bikes only.",
            "items": {
              "type": "string",
              "enum": [
                "bikes",
                "cycling-gear",
                "running",
                "winter-sports",
                "outdoor",
                "ball-sports",
                "water-sports",
                "racket-sports",
                "other"
              ],
              "enumTitles": [
                "Bikes",
                "Cycling gear & parts",
                "Running",
                "Winter sports",
                "Outdoor",
                "Ball sports",
                "Water sports",
                "Racket sports",
                "Other"
              ]
            }
          },
          "bikeTypes": {
            "title": "Bike type",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include these kinds of bikes. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "road-gravel",
                "mountainbike",
                "urban-touring",
                "youth"
              ],
              "enumTitles": [
                "Road & gravel",
                "Mountain bike",
                "Urban & touring",
                "Youth"
              ]
            }
          },
          "categories": {
            "title": "Category",
            "uniqueItems": true,
            "type": "array",
            "description": "A finer breakdown than bike type, for example gravel, trail, or triathlon. Leave empty for all categories.",
            "items": {
              "type": "string",
              "enum": [
                "road",
                "gravel",
                "triathlon",
                "cyclocross",
                "mtb",
                "trail",
                "enduro",
                "downhill",
                "crosscountry",
                "city",
                "trekking",
                "urban",
                "dutch-bike",
                "folding",
                "cargo-transport",
                "vintage",
                "bmx",
                "other-urban",
                "other-youth",
                "other"
              ],
              "enumTitles": [
                "Road",
                "Gravel",
                "Triathlon",
                "Cyclocross",
                "Mountain bike",
                "Trail",
                "Enduro",
                "Downhill",
                "Cross country",
                "City",
                "Trekking",
                "Urban",
                "Dutch bike",
                "Folding",
                "Cargo & transport",
                "Vintage",
                "BMX",
                "Other urban",
                "Other youth",
                "Other"
              ]
            }
          },
          "brands": {
            "title": "Brands",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include these brands, for example \"canyon\", \"specialized\", or \"trek\". Add one brand per entry, in lowercase with dashes instead of spaces. Leave empty for all brands.",
            "items": {
              "type": "string"
            }
          },
          "families": {
            "title": "Model families",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include these model lines, for example \"aeroad\" or \"tarmac\". Works best together with the matching brand. Leave empty for all models.",
            "items": {
              "type": "string"
            }
          },
          "frameSizes": {
            "title": "Frame size",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include bikes in these frame sizes. Leave empty for all sizes.",
            "items": {
              "type": "string",
              "enum": [
                "xxxs",
                "xxs",
                "xs",
                "s",
                "m",
                "l",
                "xl",
                "xxl",
                "one-size-bike",
                "youth"
              ],
              "enumTitles": [
                "XXXS",
                "XXS",
                "XS",
                "S",
                "M",
                "L",
                "XL",
                "XXL",
                "One size",
                "Youth"
              ]
            }
          },
          "conditions": {
            "title": "Condition",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include bikes in these conditions. Leave empty for all conditions.",
            "items": {
              "type": "string",
              "enum": [
                "fair",
                "good",
                "very-good",
                "new",
                "brand-new-with-guarantee"
              ],
              "enumTitles": [
                "Fair",
                "Good",
                "Very good",
                "New",
                "Brand new with warranty"
              ]
            }
          },
          "frameMaterials": {
            "title": "Frame material",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include bikes with these frame materials. Leave empty for all materials.",
            "items": {
              "type": "string",
              "enum": [
                "carbon",
                "aluminum",
                "steel",
                "titanium",
                "magnesium"
              ],
              "enumTitles": [
                "Carbon",
                "Aluminium",
                "Steel",
                "Titanium",
                "Magnesium"
              ]
            }
          },
          "brakeTypes": {
            "title": "Brake type",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include bikes with these brakes. Leave empty for all brake types.",
            "items": {
              "type": "string",
              "enum": [
                "disc",
                "rim",
                "drum",
                "coaster",
                "other"
              ],
              "enumTitles": [
                "Disc brakes",
                "Rim brakes",
                "Drum brakes",
                "Coaster brakes",
                "Other"
              ]
            }
          },
          "shifts": {
            "title": "Shifting",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include bikes with this shifting type. Electronic covers Di2, eTap, and EPS; mechanical is cable-operated.",
            "items": {
              "type": "string",
              "enum": [
                "electronic",
                "mechanical",
                "other"
              ],
              "enumTitles": [
                "Electronic",
                "Mechanical",
                "Other"
              ]
            }
          },
          "colors": {
            "title": "Colour",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include bikes in these colours. Leave empty for all colours.",
            "items": {
              "type": "string",
              "enum": [
                "000000",
                "FFFFFF",
                "D1D5DB",
                "3B82F6",
                "EF4444",
                "80BE70",
                "F59E0B",
                "9A2DF0"
              ],
              "enumTitles": [
                "Black",
                "White",
                "Light grey",
                "Blue",
                "Red",
                "Green",
                "Orange",
                "Purple"
              ]
            }
          },
          "gender": {
            "title": "Intended rider",
            "enum": [
              "any",
              "unisex",
              "men",
              "women",
              "kids"
            ],
            "type": "string",
            "description": "Only include items made for this rider category. Note: buycycle applies this to gear and apparel only — combining it with \"Bikes\" returns no results."
          },
          "eBike": {
            "title": "E-bike",
            "enum": [
              "any",
              "ebike",
              "non-ebike"
            ],
            "type": "string",
            "description": "Limit results to electric bikes, or exclude them entirely."
          },
          "frameset": {
            "title": "Complete bike or frameset",
            "enum": [
              "any",
              "complete",
              "frameset"
            ],
            "type": "string",
            "description": "Limit results to complete bikes, or to framesets sold without components."
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "any",
              "private",
              "commercial"
            ],
            "type": "string",
            "description": "Limit results to private individuals or to professional shops and dealers."
          },
          "highDemandOnly": {
            "title": "High demand only",
            "type": "boolean",
            "description": "Only return listings carrying buycycle's \"High demand\" badge."
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Lowest price to include, in the marketplace currency. This is the item price, before the buyer protection fee is added."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Highest price to include, in the marketplace currency. This is the item price, before the buyer protection fee is added."
          },
          "minYear": {
            "title": "Earliest model year",
            "minimum": 2013,
            "maximum": 2027,
            "type": "integer",
            "description": "Only include bikes from this model year or newer."
          },
          "maxYear": {
            "title": "Latest model year",
            "minimum": 2013,
            "maximum": 2027,
            "type": "integer",
            "description": "Only include bikes from this model year or older."
          },
          "postcode": {
            "title": "Postcode",
            "type": "string",
            "description": "Find bikes near a postcode, for example \"10117\". Must be a postcode in the marketplace country selected above. Use together with the search radius below."
          },
          "radiusKm": {
            "title": "Search radius (km)",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "How far from the postcode to search, in kilometres. Only applies when a postcode is set. Buycycle supports 10, 25, 50, 100, 150, 200, 250, and 300 km — other values are rounded up to the nearest supported one, and 300 km is the widest available."
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "relevance",
              "new",
              "lowest-price",
              "highest-price"
            ],
            "type": "string",
            "description": "Order the listings before they are collected. Useful with a result limit — for example, sort by lowest price to capture the cheapest bikes first. Applies to pasted URLs too, unless the URL already sets its own order."
          },
          "includeFullSpecs": {
            "title": "Include full specifications",
            "type": "boolean",
            "description": "Fetch the complete specification for every listing. Adds condition, frame material, brake type, shifting, colour, wheel size, suspension, seller city and country, model family, buycycle's price rating, and the seller's description. Turn this off for a much faster, cheaper run that returns only the basics (title, brand, price, MSRP, year, frame size, groupset, photos) — the fields listed above will be empty."
          },
          "maxResults": {
            "title": "Max results per search",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of results to return. Note: buycycle's search returns at most 10,000 results per unique filter combination, even when more items match (the full bike catalogue is ~49,000). To collect more, split your run across narrower filters — for example by brand, category, country, or price range. Set to 0 for as many as the site will return (up to that 10,000 cap). Results arrive in pages and the last page is always returned in full, so you may receive slightly more than this number."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}