# FC-Moto Offers & Variation Scraper (`scraping_crew/fc-moto-offers-variation-scraper`) Actor

Scrape FC-Moto (fc-moto.com) motorcycle gear by brand — helmets, clothing, boots, parts and accessories — with prices in any of 56 currencies and the VAT of your delivery country, plus variants, EANs, part numbers, stock status, categories and images.

- **URL**: https://apify.com/scraping_crew/fc-moto-offers-variation-scraper.md
- **Developed by:** [Scraping Crew](https://apify.com/scraping_crew) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does FC-Moto Product Scraper do?

**FC-Moto Product Scraper** collects the catalog of [FC-Moto](https://www.fc-moto.com), the European online store for motorcycle gear, clothing and parts. Pick the brands you care about (Alpinestars, Dainese, AGV, Schuberth, Sena, …) and get every product variant with its **price for your delivery country and currency**, discount price, stock status, EAN barcodes, manufacturer part numbers, categories, images and full specifications.

Prices are calculated exactly the way FC-Moto shows them at checkout: with the VAT of the delivery country you select (or 0% outside the EU) and converted into any of **56 currencies**. Run it on the [Apify platform](https://apify.com) to get API access, scheduling, integrations, proxy rotation and run monitoring out of the box.

Try it: keep the example brand list, choose your country and currency, and click **Start**.

### Features

- 🏍️ Any brand sold on FC-Moto: helmets, jackets, boots, gloves, parts, intercoms and accessories
- 🌍 Prices for any of the 200+ countries FC-Moto delivers to: local EU VAT, Australian GST, or 0% VAT for the rest of the world
- 💱 56 currencies: EUR, USD, GBP, CHF, PLN, SEK, RON, AUD, JPY and many more
- 🏷️ Current price plus original price whenever a product is on sale
- 🧬 Every color and size combination as its own record
- 📦 Stock status for each variant
- 🔢 EAN barcodes and manufacturer part numbers, ready for product matching. (If available)
- 🗂️ Category breadcrumbs, images and a full specification table (If available)
- 📝 Optional full product descriptions (paid add-on)
- 🎯 `maxItems` control for quick test runs
- 📊 Export as JSON, CSV, Excel, or via API
- 🤖 Ready for AI, n8n, Zapier, Make and RAG workflows

### Why use FC-Moto Product Scraper?

- **Price monitoring** – track FC-Moto prices and discounts for the brands you sell or buy.
- **Competitor analysis** – compare FC-Moto against your own shop in your own country, VAT and currency.
- **Product matching** – EANs and part numbers make it easy to match FC-Moto products to your catalog.
- **Catalog enrichment** – fill your shop or comparison site with specs, images and descriptions.
- **Market research** – see brand assortments, stock levels and sale share at a glance.

### How to use FC-Moto Product Scraper

1. Open the Actor and go to the **Input** tab.
2. Edit **Brands**: keep the example list or enter your own brand names (not case-sensitive).
3. Choose the **Delivery country** and **Currency** the prices should be calculated for.
4. (Optional) Enable **Include product descriptions** if you need the full text (extra cost).
5. (Optional) Set **Max items** for a quick test (default `10`; `0` = unlimited on paid plans).
6. Click **Start**. When the run finishes, open the **Dataset** tab to preview and export.

### Input

| Field | Type | Description |
|---|---|---|
| `brands` | array | Brand names to scrape. Empty = the built-in example list. |
| `maxItems` | integer | Stop after N product variants (default `10`, `0` = unlimited). |
| `country` | string | Delivery country (ISO code, e.g. `DE`, `FR`, `US`) — any of the 202 countries FC-Moto delivers to. Sets the VAT included in prices. Default `DE`. |
| `currency` | string | Output currency (e.g. `EUR`, `USD`, `GBP`). Default `EUR`. |
| `includeDescription` | boolean | Add the full product description to each item (charged per item). Default `false`. |
| `concurrency` | string | Parallel downloads: `1`, `2`, `4`, `6` or `8`. Default `8`. |
| `proxyConfiguration` | object | Proxy settings (Apify Proxy recommended). |

Example input:

```json
{
    "brands": ["Alpinestars", "Dainese", "AGV"],
    "maxItems": 500,
    "country": "FR",
    "currency": "EUR",
    "includeDescription": false,
    "concurrency": "8"
}
```

### Output

Each dataset item is one product variant (one color + size). Example:

```json
{
    "sku": "1c17d6f945b55ec69948ae9a01f9c428",
    "name": "AGV Streetmodular Mono Matt Silver Helmet silver matt M (57/58)",
    "productUrl": "https://www.fc-moto.com/en-us/p/agv-streetmodular-mono-matt-silver-helmet-m-57-58-AG-18296001-014-M",
    "brand": "AGV",
    "images": ["https://www.fc-moto.com/thumbnail/.../figure-1_400x400.jpg"],
    "eans": ["8051019895394"],
    "partNums": ["18296001-014-M"],
    "price": 1318.78,
    "oldPrice": 1648.48,
    "currency": "RON",
    "country": "RO",
    "vatPercent": 21,
    "availability": "OutOfStock",
    "category": ["SALE %", "Motorcycle helmets sale", "Flip-up helmets sale"],
    "specsTable": [
        { "key": "Protection class (certification)", "value": "ECE" },
        { "key": "Material", "value": "Thermoplastic" }
    ],
    "description": "Only present when product descriptions are enabled..."
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data table

| Field | Description |
|---|---|
| `name` | Variant title including color and size |
| `brand` | Brand name |
| `price` | Current price in the selected currency, incl. the delivery country's VAT |
| `oldPrice` | Original price when the product is on sale (or null) |
| `currency` / `country` / `vatPercent` | Currency, delivery country and VAT % the prices were calculated for |
| `availability` | Stock status (`InStock` / `OutOfStock`) |
| `category` | Category breadcrumb path |
| `productUrl` | Product page link |
| `sku` | Variant identifier |
| `eans` / `partNums` | EAN barcodes and manufacturer part numbers |
| `images` | Product image links |
| `specsTable` | Key/value specifications (color, size, material, gender, season, …) |
| `description` | Full product description (only with the description add-on) |

### Pricing / Cost estimation

How much does it cost to scrape FC-Moto? The scraper is lightweight and fast, so the platform cost per thousand products is low; cost grows with the number of brands and variants you collect. Use **Max items** to cap a run.

**Product descriptions are an optional add-on** charged per item that contains a description (see the **Pricing** tab of the Actor). Leave **Include product descriptions** off and you are never charged for it.

### Free User Limitations

Runs started on a **free plan are hard-limited to 10 items per run**. Setting `maxItems` higher than 10 (or to `0` for unlimited) has no effect on a free plan — the run still stops at 10 items and a warning is written to the log. Values below 10 are respected as usual.

Upgrade to any **paid plan** to lift the cap: `maxItems` then controls the run exactly, and `0` scrapes every variant of the selected brands. All other features — every country, every currency and the description add-on — are available on the free plan as well.

### Tips or Advanced options

- **Prices for your market**: the delivery country decides the VAT (e.g. `FR` = 20%, `HU` = 27%, `US` / `GB` / `CH` = 0%). The currency is independent, so you can get e.g. US-delivery prices in EUR.
- **Accuracy**: converted prices match FC-Moto's shop exactly or within 1–2 cents in most cases; for a few products the difference can reach about 10 cents because of the shop's rounding.
- **Expect many rows per product**: every color and size is its own record, so a brand with 1,000 products can return several thousand items. Some catalog products currently have no orderable variant and produce no rows.
- **Brand spelling**: brand names are matched exactly (case does not matter). If a brand returns nothing, check how it is written on FC-Moto (e.g. `fly racing`, `pando moto`, `100%`).
- **Errors or slow runs?** Lower **Concurrency** to `2` or `4`.
- Schedule the Actor to keep a price dataset fresh.

### FAQ, disclaimers, and support

**Is scraping FC-Moto legal?** Scraping publicly available data is generally legal, but you are responsible for complying with FC-Moto's Terms of Service and applicable laws. This Actor collects only public product data — no personal information.

**Are the prices exactly what I pay at checkout?** They include the VAT for the selected delivery country and FC-Moto's currency conversion. Shipping costs, vouchers and customs duties are not included.

**Something looks off?** Open an issue on the Actor's **Issues** tab and we'll take a look. Custom scraping solutions are available on request.

**Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by FC-Moto or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

### SEO Keywords

FC-Moto scraper, fc-moto.com scraper, FC-Moto price tracker, scrape FC-Moto, motorcycle gear scraper, motorcycle helmet prices, Alpinestars price monitoring, Dainese price data, AGV helmet prices, motorcycle parts price comparison, moto clothing catalog data, EAN product matching, motorcycle accessories dataset, VAT price calculator by country, multi-currency price scraper, e-commerce scraper, Apify Actor, competitor price monitoring, motorbike gear market research

# Actor input Schema

## `brands` (type: `array`):

Brand names to scrape (not case-sensitive), e.g. "Alpinestars", "Dainese", "AGV". Every product of each brand is collected. The prefilled list is just an example — replace it with any brands sold on FC-Moto. Leave empty to use the example list.

## `maxItems` (type: `integer`):

Stop the run after this many product variants have been scraped. Set to 0 for unlimited. Free plans are always limited to 10 items per run.

## `country` (type: `string`):

Prices are calculated with the VAT FC-Moto charges for delivery to this country. Only countries FC-Moto delivers to are listed. EU countries use their local VAT rate, Australia 10% GST, every other country 0% VAT.

## `currency` (type: `string`):

Currency of all output prices, converted with FC-Moto's own exchange rates. Converted prices usually match the shop exactly or within 1–2 cents (rarely up to 10 cents).

## `includeDescription` (type: `boolean`):

Add the full product description to every item. This is an add-on charged per item that carries a description (see the Pricing tab).

## `concurrency` (type: `string`):

How many pages are downloaded in parallel. Higher is faster; lower is gentler if you see errors.

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

Proxy servers used by the scraper to avoid blocking.

## Actor input object example

```json
{
  "brands": [
    "acerbis",
    "alpine",
    "alpinestars",
    "cardo",
    "dainese",
    "eleveit srl"
  ],
  "maxItems": 1000,
  "country": "DE",
  "currency": "EUR",
  "includeDescription": false,
  "concurrency": "8",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Structured product variant records (prices, stock status, identifiers, images, specifications) collected during the run.

# 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 = {
    "brands": [
        "acerbis",
        "alpine",
        "alpinestars",
        "cardo",
        "dainese",
        "eleveit srl"
    ],
    "maxItems": 1000,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraping_crew/fc-moto-offers-variation-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 = {
    "brands": [
        "acerbis",
        "alpine",
        "alpinestars",
        "cardo",
        "dainese",
        "eleveit srl",
    ],
    "maxItems": 1000,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scraping_crew/fc-moto-offers-variation-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 '{
  "brands": [
    "acerbis",
    "alpine",
    "alpinestars",
    "cardo",
    "dainese",
    "eleveit srl"
  ],
  "maxItems": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scraping_crew/fc-moto-offers-variation-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraping_crew/fc-moto-offers-variation-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/q95H4SzChGhLivcmm/builds/YvnLretyrWcnx6ejf/openapi.json
