# Mtbdatabase Scraper (`nerdnd/mtbdatabase-scraper`) Actor

mtbdatabase.com scraper that collects bycicle specs(name, prices, sizes, etc.) on the product pages.

- **URL**: https://apify.com/nerdnd/mtbdatabase-scraper.md
- **Developed by:** [nerdnd](https://apify.com/nerdnd) (community)
- **Categories:** Travel
- **Stats:** 5 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$20.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### What does Mtbdatabase Scraper do?

Mtbdatabase Scraper will enable you to collect bycicle specs(name, prices, sizes, etc.) on the product pages.

Mtbdatabase Scraper can scrape:

- year
- name
- brand
- price
- family
- category
- sizes
- frame
- fork
- shock
- motor
- battery
- hubs
- wheels
- wheel\_size
- spokes
- tires
- chain
- crank
- bottom\_bracket
- derailleur\_front
- derailleur\_rear
- shifters
- brakeset
- handlebar
- saddle
- seatpost
- stem
- grips
- headset
- manufacturer\_url
- loaded\_url
- image\_url

### Why scrape [Mtbdatabase](https://mtbdatabase.com)?

[Mtbdatabase](https://mtbdatabase.com) is a crucial resource in the cycling industry, particularly for mountain biking enthusiasts and professionals. Here are the reasons why MTB Database stands out as an important site

1. Comprehensive Database of Mountain Bikes

   MTB Database offers an extensive and detailed collection of mountain bikes from various brands and models. This makes it an invaluable resource for riders looking to research and compare different bikes based on specifications, performance, and user reviews.

2. Detailed Specifications and Reviews

   The site provides thorough specifications for each bike, including frame materials, suspension types, component details, and geometry. In addition to technical specs, MTB Database features user reviews and ratings, giving potential buyers insights into real-world performance and reliability.

3. Up-to-Date Information

   MTB Database is regularly updated with the latest releases and information from leading mountain bike manufacturers. This ensures that users have access to the most current and accurate data, helping them stay informed about new trends and innovations in the mountain biking world.

4. User-Friendly Interface

   The website is designed with a user-friendly interface that makes it easy to navigate and find relevant information. Advanced search and filter options allow users to quickly narrow down their choices based on specific criteria, such as brand, model year, and technical features.

5. Community Engagement

   MTB Database fosters a strong community of mountain biking enthusiasts. Users can share their experiences, ask questions, and provide feedback on different bikes. This community-driven aspect enhances the site’s value by offering diverse perspectives and firsthand accounts.

6. Educational Content

   In addition to bike listings, MTB Database offers educational content such as buying guides, maintenance tips, and industry news. This helps both new and experienced riders make informed decisions and stay knowledgeable about all aspects of mountain biking.

7. Trusted Resource for Buyers and Sellers

   For those looking to buy or sell mountain bikes, MTB Database serves as a trusted resource. Buyers can rely on the detailed information and reviews to make confident purchasing decisions, while sellers can use the platform to reach a targeted audience of mountain biking enthusiasts.

8. Enhances Market Transparency

   By providing detailed information and user reviews, MTB Database enhances transparency in the mountain biking market. Th

In summary, MTB Database is an essential site for anyone involved in mountain biking. Its comprehensive database, detailed specifications, user reviews, and educational content make it a go-to resource for researching, comparing, and choosing the best mountain bikes available.

### How to scrape [Mtbdatabase](https://mtbdatabase.com)

It's easy to scrape \[target website name with link] with Mtbdatabase Scraper. Just follow these few steps and you'll get your data in a few minutes.

1. Click on Try for free.
2. Enter start urls(it should be product detail pages) you want to scrape.
3. Click on Run.
4. When Mtbdatabase Scraper has finished, preview or download your data from the Dataset tab.

### Results

```json
[
    {
        "image_url": "https://cdn.mtbdatabase.com/wp-content/uploads/2021/08/15032618/2022-Trek-Marlin-6.jpg.webp",
        "manufacturer_url": "https://www.trekbikes.com/us/en_US/bikes/mountain-bikes/cross-country-mountain-bikes/marlin/marlin-6/p/35066/",
        "id": "956eaa8a5acd2ea175ec23b6fdba9505080c4d0d",
        "family": "Marlin",
        "name": "Marlin 6",
        "price": "$779.00",
        "category": "Cross Country",
        "sizes": "13.5\", 15.5\", 17.5\", 18.5\", 19.5\", 21.5\", 23\"",
        "year": "2022",
        "brand": "Trek",
        "loaded_url": "https://mtbdatabase.com/bikes/2022/trek/marlin/2022-trek-marlin-6/",
        "frame": "Alpha Silver Aluminum, internal routing, chainstay disc brake mount, rack and kickstand mount, 135x5mm QR",
        "fork": "SunTour XCT, Size: XS, SR Suntour XCT 30, coil spring, preload, hydraulic lockout, 42mm offset for 27.5'' wheel, 100mm QR, 80mm travel; Size: S, SR Suntour XCT 30, coil spring, preload, hydraulic lockout, 42mm offset for 27.5'' wheel, 100mm QR, 100mm travel; Size: M, ML, L, XL, XXL, SR Suntour XCT 30, coil spring, preload, hydraulic lockout, 46mm offset for 29'' wheel, 100mm QR, 100mm travelSR SuntourSR SuntourSR Suntour",
        "hubs": "Formula DC-22, alloy, 6-bolt, Shimano 8/9/10 freehub, 135x5mm QRFormulaShimano",
        "wheels": "Bontrager Connection, double-wall, 32-hole, 20mm width, schrader valveBontrager",
        "wheel_size": "\n29\" 27.5\" ",
        "spokes": "14g stainless steel",
        "tires": "Size: XS, S, Bontrager XR2 Comp, wire bead, 30 tpi, 27.5x2.20''; Size: M, ML, L, XL, XXL, Bontrager XR2 Comp, wire bead, 30 tpi, 29x2.20''BontragerBontrager",
        "chain": "KMC, KMC X10, 10 speedKMCKMC",
        "crank": "Prowheel C10Y-NW, 30T steel narrow-wide ring, 170mm lengthProwheel",
        "bottom_bracket": "VP BC73, 73mm, threaded cartridge",
        "derailleur_rear": "Shimano Deore, Shimano Deore M5120, long cageShimanoShimano",
        "shifters": "Shimano Deore, Shimano Deore M4100, 10 speedShimanoShimano",
        "brakeset": "Tektro, Size: XS, S, Tektro HD-M276 hydraulic disc, short reach lever; Size: M, ML, L, XL, XXL, Tektro HD-M275 hydraulic discTektroTektroTektro",
        "handlebar": "Size: XS, Bontrager alloy, 31.8mm, 5mm rise, 690mm width; Size: S, M, ML, L, XL, XXL, Bontrager alloy, 31.8mm, 5mm rise, 720mm widthBontragerBontrager",
        "saddle": "Bontrager Arvada, steel rails, 138mm widthBontrager",
        "seatpost": "Size: XS, S, M, Bontrager alloy, 31.6mm, 12mm offset, 330mm length; Size: ML, L, XL, XXL, Bontrager alloy, 31.6mm, 12mm offset, 400mm lengthBontragerBontrager",
        "stem": "Size: XS, Bontrager alloy, 31.8mm, Blendr compatible, 7 degree, 50mm length; Size: S, Bontrager alloy, 31.8mm, Blendr compatible, 7 degree, 60mm length; Size: M, Bontrager alloy, 31.8mm, Blendr compatible, 7 degree, 70mm length; Size: ML, L, Bontrager alloy, 31.8mm, Blendr compatible, 7 degree, 80mm length; Size: XL, XXL, Bontrager alloy, 31.8mm, Blendr compatible, 7 degree, 90mm lengthBontragerBontragerBontragerBontragerBontrager",
        "grips": "Bontrager XR Endurance Comp, lock-onBontrager",
        "headset": "Semi-integrated, 1-1/8''"
    },
    {
        "image_url": "https://cdn.mtbdatabase.com/wp-content/uploads/2019/12/22070503/2020-Giant-Reign-E-2-Pro.jpg.webp",
        "id": "f9012d7d4a3d561f665b5cace81daf242db2f5dc",
        "family": "Reign E+ Pro",
        "name": "Reign E+ 2 Pro",
        "price": "$5,500.00",
        "category": "E-Mountain",
        "sizes": "S, M, L, XL",
        "year": "2020",
        "brand": "Giant",
        "loaded_url": "https://mtbdatabase.com/bikes/2020/giant/reign-e-pro/2020-giant-reign-e-2-pro/",
        "frame": "ALUXX SL-grade aluminum, 160mm Maestro suspension system, 'Boost' 148x12QR, Giant EnergyPak Plus range extender compatible",
        "fork": "Fox 36 Float Rhythm 27.5, 170mm, Grip Damper, Sweep adjust, Boost 110x15QR, e-Bike optimizedFox",
        "shock": "Fox Float DPX2 Performance, EVOL Large Volume sleeve, 2-position lever, 205x62.5mm Trunnion mount, custom tunedFox",
        "hubs": "Giant eTracker Boost, Sealed cartridge bearing, 6-bolt, Front: 110x15Rear: 148x12mm Thru-axleFront: Rear: ",
        "wheels": "Giant AM 27.5+, Tubeless ready, 35mm inner width",
        "wheel_size": "\n27.5\" ",
        "spokes": "Sapim E-Lite [r] Race [f]Sapim",
        "tires": "Maxxis Minion DHF 27.5x2.6\" foldable, Tubeless, EXO+, 3c MaxxTerra[F]Maxxis High Roller II 27.5x2.6\" foldable, Tubeless, DoubleDown, 2x120tpi, 3C MaxxTerra Compound [R]MaxxisMaxxis",
        "chain": "SRAM NX Eagle PowerLock, 12-speedSRAM",
        "crank": "SRAM X-Sync Eagle 36T 104BCD chainringPraxis e-Cadet+ custom forged crankarm set (Q-factor=168, S/M:160, L/XL:165)SRAM",
        "derailleur_front": "MRP 1X custom \"V3\" co-moulded TR chain guide",
        "derailleur_rear": "SRAM GX Eagle 12-speedSRAM",
        "shifters": "SRAM GX Eagle 12-speedSRAM",
        "brakeset": "SRAM Guide RE, 4-piston, hydraulic disc, 200mmSRAM",
        "handlebar": "Giant Contact Trail, 35x800mm",
        "saddle": "Giant Contact, Neutral",
        "seatpost": "Giant Contact Switch, dropper, 30,9mm (S:100/M:125/L:150/XL:170)",
        "stem": "Giant Contact SL 35"
    }
]
```

### Is it legal to scrape [Mtbdatabase](https://mtbdatabase.com)?

Note that personal data is protected by GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. We also recommend that you read our blog post: [is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

# Actor input Schema

## `startUrls` (type: `array`):

Detail page URLs to start with

## `proxyConfiguration` (type: `object`):

Specifies proxy servers that will be used by the scraper in order to hide its origin.

## Actor input object example

```json
{
  "startUrls": [
    "https://mtbdatabase.com/bikes/2022/trek/marlin/2022-trek-marlin-6/",
    "https://mtbdatabase.com/bikes/2020/giant/reign-e-pro/2020-giant-reign-e-2-pro/"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "https://mtbdatabase.com/bikes/2022/trek/marlin/2022-trek-marlin-6/",
        "https://mtbdatabase.com/bikes/2020/giant/reign-e-pro/2020-giant-reign-e-2-pro/"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("nerdnd/mtbdatabase-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [
        "https://mtbdatabase.com/bikes/2022/trek/marlin/2022-trek-marlin-6/",
        "https://mtbdatabase.com/bikes/2020/giant/reign-e-pro/2020-giant-reign-e-2-pro/",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("nerdnd/mtbdatabase-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://mtbdatabase.com/bikes/2022/trek/marlin/2022-trek-marlin-6/",
    "https://mtbdatabase.com/bikes/2020/giant/reign-e-pro/2020-giant-reign-e-2-pro/"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call nerdnd/mtbdatabase-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nerdnd/mtbdatabase-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hdx2ZB41Kjb6As8GP/builds/RvU9XfxQimYVYKNoE/openapi.json
