# Standvirtual Scraper (`ribtools/standvirtual-scraper`) Actor

Scrape Standvirtual.com car and motorcycle listings: type vehicles (Peugeot 208) with filters for district, city, year, price and mileage, or paste any search, ad or dealer URL. Add-ons: ad details, dealer phones. Proxies included.

- **URL**: https://apify.com/ribtools/standvirtual-scraper.md
- **Developed by:** [RibTools](https://apify.com/ribtools) (community)
- **Categories:** Automation, E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 vehicle data 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

## Standvirtual Scraper

Extract car and motorcycle listings from **Standvirtual**, one of Portugal's largest vehicle marketplaces — specs, price, Standvirtual's own market-price rating, location and dealer — plus optional ad details and dealer phone numbers.

### What is Standvirtual Scraper?

**Standvirtual Scraper** is a powerful data extraction tool that automatically collects vehicle listings from [Standvirtual](https://www.standvirtual.com/), one of Portugal's largest marketplaces for used and new cars and motorcycles. Simply type the vehicles you want (such as `Peugeot 208`) or provide Standvirtual URLs, and get structured data including make, model, version, year, mileage, fuel, power, price (with or without VAT), the site's below/in/above-market price rating, price drops, location and seller — with optional add-ons for the full ad description, every photo and map coordinates, and the dealer's contact profile with phone numbers.

This scraper handles pagination, anti-bot protection, and data normalization automatically, delivering clean, structured datasets ready for analysis or integration into your systems.

### What can this Actor do?

- **Extract comprehensive vehicle data** — make, model, version, year, mileage, fuel, gearbox, power, engine size, body type, color, doors, seats, equipment and every listing attribute
- **Market-price insight** — Standvirtual's own price rating (BELOW / IN / ABOVE market), price drops and the previous price
- **Search by typing vehicles** — a make, a model or both (`Peugeot 208`, `VW Golf`, `volkswagen`), matched against Standvirtual's own catalog, with filters for vehicle type, condition, district or island, city, first-registration year, seller type, price and mileage
- **Handle multiple entry points** — category searches with any filters, single ad URLs, and dealer pages
- **Automatic pagination** — crawls through all search result pages (32 vehicles per page)
- **Ad details add-on** — full description, all photos, original publication and update dates, map coordinates, negotiable flag
- **Seller data add-on** — dealer phone numbers, address, postal code, coordinates, website, number of active ads and member-since year
- **No duplicates** — each vehicle is returned (and charged) once per run, even when listings move between pages
- **Premium proxies included** — high-quality proxies built in at no additional cost
- **Structured output** — JSON, CSV, Excel formats available
- **API integration** — real-time data access through Apify API
- **Scheduled runs** — automated daily/weekly data collection

### What data can Standvirtual Scraper extract?

| Field | Description | Example |
| ----- | ----------- | ------- |
| **ID** | Standvirtual ad identifier | 8097688959 |
| **Title** | Ad title | MG MG4 64 kWh Comfort |
| **Category** | Cars or motorcycles | carros, motos |
| **Make / Model / Version** | Vehicle identity | MG, MG4, 64 kWh Comfort |
| **Price** | Displayed price in euros, VAT flag, net price | 23750 |
| **Price Evaluation** | Standvirtual's market rating | BELOW, IN, ABOVE |
| **Price Drop** | Drop percentage and previous price | 4.76, 6300 |
| **Year / Month** | First registration | 2023, 5 |
| **Mileage** | Kilometers driven | 24077 |
| **Fuel / Gearbox / Power** | Powertrain | Elétrico, Automática, 204 |
| **Body Type / Color / Doors / Seats** | Body | Utilitário, Vermelho, 5, 5 |
| **Features** | Equipment and offer flags | apple_carplay, android_auto, accept_funding |
| **Attributes** | Every listing parameter | autonomy: 435 km, inspection_valid_until: 2027-05-31 |
| **Location** | City and district | Lourosa, Aveiro |
| **Seller** | Type, dealer name and Standvirtual page | dealer, Rocha Automóveis |
| **Details** (add-on) | Description, photos, dates, coordinates | See below |
| **Seller profile** (add-on) | Dealer phones, address, website, active ads | See below |

### How to scrape Standvirtual

#### Step-by-step tutorial:

1. **Type vehicles** — Add one make, model or both per line in *Search vehicles*, as you would in Standvirtual's search box
2. **Or paste URLs** — Add Standvirtual search, ad or dealer URLs in *Standvirtual URLs* (see below). You can use both; each vehicle and each URL is its own search
3. **Set filters** (optional) — Vehicle type, condition, district or island, city, first-registration year, seller type, price and mileage. They apply to typed vehicles only; a URL keeps the filters it carries
4. **Enable add-ons** (optional) — Ad details and/or seller data
5. **Run the scraper** — Click "Start" and monitor progress in real-time
6. **Download results** — Export data in JSON, CSV, or Excel format

Proxies are included automatically — no setup required.

#### Search by vehicle

Typed text is matched against Standvirtual's own catalog, so spelling does not have to be exact. The status message of the run shows what each line resolved to.

- `Peugeot 208` — the model 208 (Peugeot)
- `VW Golf` — the model Golf (Volkswagen)
- `volkswagen` — every model of the make VW
- `Renault Clio` — the model Clio (Renault)

Typed vehicles search cars by default; set *Vehicle type* to Motorcycles for motorcycles (for example `Honda Africa Twin`). *District or island* narrows the search to one of the 18 districts or the islands of Madeira and the Azores, and *City* searches the city and 50 km around it; a city Standvirtual does not know is skipped and named in the status message. A vehicle Standvirtual does not know is skipped the same way, never returning unrelated results. *Max results per search* caps each vehicle separately.

#### Compatible URL examples:

- **Cars search**: `https://www.standvirtual.com/carros`
- **Filtered search (brand, model, price)**: `https://www.standvirtual.com/carros/bmw/serie-3?search[filter_float_price:to]=20000`
- **Filtered search (year, region, fuel, sort)**: `https://www.standvirtual.com/carros/mercedes-benz/desde-2018/lisboa?search[filter_enum_fuel_type]=diesel&search[order]=filter_float_price:asc`
- **Keyword search**: `https://www.standvirtual.com/carros/q-golf%20gti`
- **Motorcycles search**: `https://www.standvirtual.com/motos/honda`
- **Single ad**: `https://www.standvirtual.com/carros/anuncio/mg-mg4-ver-64-kwh-comfort-ID8Q14Or.html`
- **Dealer page (whole inventory)**: `https://estorilmotor.standvirtual.com`

**Important**: Only URLs matching these patterns will work. Other categories (trucks, vans, motorhomes, machinery, parts) are not supported and are skipped.

### How much does it cost to scrape Standvirtual?

Standvirtual Scraper uses **pay-per-result (PPR)** pricing — you only pay for successfully extracted vehicles.

#### Is scraping Standvirtual free?

The scraper follows Apify's PPR model with the following structure:

- **Base extraction**: one charge per scraped vehicle (specs, price, market rating, location, seller)
- **Ad details add-on**: one additional charge per vehicle when the details add-on is enabled and the ad returns data
- **Seller data add-on**: one additional charge per vehicle, but only when at least one dealer phone number is returned — private sellers and dealers without a published phone are never charged for this add-on

Pricing is optimized for efficiency, using minimal compute units while maintaining high success rates. Contact support for volume discounts on large-scale projects.

### Input configuration

The scraper accepts the following inputs:

Fields are listed in the order of the input form. A run needs at least one vehicle or one URL.

- **Search vehicles** (`vehicles`) — One make, model or both per line, e.g. `Peugeot 208`, `VW Golf`, `Renault Clio`. Each line is its own search
- **Standvirtual URLs** (`startUrls`) — Search, ad or dealer URLs (see the examples above). Plain strings or `{"url": ...}` objects
- **Max results per search** (`maxRequests`) — Cap on vehicles for each vehicle and each URL separately. Default 10. Pages of 32 vehicles are fetched until the cap is reached or the site's results end
- **Vehicle type** (`vehicleType`) — Cars or motorcycles
- **Condition** (`condition`) — Used and new, used, or new
- **District or island** (`district`) and **City** (`city`) — A Portuguese district, or an island of Madeira or the Azores, and a city or town (searched with 50 km around it). A city Standvirtual does not know, or one shared by several places when no district is picked, is skipped and named in the status message
- **Year from / to** (`yearFrom`, `yearTo`) — First-registration year range
- **Seller type** (`sellerType`) — Dealers (stands) and private sellers, dealers only, or private sellers only
- **Price from / to** (`priceFrom`, `priceTo`) — Asking price in euros; "to" is 1 or more
- **Mileage from / to** (`kmFrom`, `kmTo`) — Kilometers driven; "to" is 1 km or more (for 0 km vehicles, set Condition to New)
- **Fetch ad details** (`detailsAddon`) and **Fetch seller data** (`sellerDataAddon`) — Optional add-ons, described below

The filters apply to typed vehicles only. Pasted URLs keep the filters they carry.

**Proxies included**: high-quality residential proxies are built into the Actor at no additional cost — no proxy configuration is required.

#### Fetch ad details (add-on)

Open each ad to add the full description (phone numbers, emails and VINs typed into it are hidden), every photo, publication and update dates, map coordinates and whether the price is negotiable. Charged per vehicle with details.

#### Fetch seller data (add-on)

Add the seller profile: dealer phone numbers, address, postal code, map coordinates, website, number of active ads and member-since year. Phone numbers and names are returned for dealers only; private sellers return the seller type and nothing personal. You are charged only when a phone number is returned.

### Output example

```json
{
  "type": "vehicle",
  "id": 8097688959,
  "url": "https://www.standvirtual.com/carros/anuncio/mg-mg4-ver-64-kwh-comfort-ID8Q14Or.html",
  "search": "MG MG4",
  "title": "MG MG4 64 kWh Comfort",
  "category": "carros",
  "price": 23750,
  "currency": "EUR",
  "make": "MG",
  "model": "MG4",
  "price_is_gross": true,
  "net_price": null,
  "price_evaluation": "IN",
  "price_drop_pct": null,
  "lowest_price": null,
  "model_family": null,
  "version": "64 kWh Comfort",
  "year": 2023,
  "month": 5,
  "km": 24077,
  "fuel": "Elétrico",
  "gearbox": "Automática",
  "engine_cc": null,
  "power_hp": 204,
  "body_type": "Utilitário",
  "color": "Vermelho",
  "doors": 5,
  "seats": 5,
  "drivetrain": "Tracção traseira",
  "condition": "Usado",
  "origin": null,
  "features": [
    "led_rear_lights",
    "child_seat_fixation",
    "vehicle_charging_cable",
    "android_auto",
    "led_daytime_running_lights",
    "quick_charging_function",
    "hands_free_system",
    "antilock_brake_system"
  ],
  "attributes": {
    "make": "MG",
    "model": "MG4",
    "version": "64 kWh Comfort",
    "first_registration_year": "2023",
    "mileage": "24077 km",
    "fuel_type": "Elétrico",
    "engine_power": "204 cv",
    "autonomy": "435 km",
    "inspection_valid_until": "2027-05-31",
    "vendors_warranty_valid_until_date": "18 Meses"
  },
  "city": "Lourosa",
  "region": "Aveiro",
  "seller_type": "dealer",
  "seller_id": "166645",
  "seller_name": "Rocha Automóveis",
  "seller_url": "https://rochaautomoveis.standvirtual.com",
  "badges": [
    "WARRANTY"
  ],
  "is_promoted": false,
  "is_highlighted": false,
  "thumbnail": "https://ireland.apollo.olxcdn.com/v1/files/4xlnlsoxxupd1-STDVTLPT/image;s=640x480",
  "listed_at": "2026-09-23T21:27:11Z",
  "bumped_at": "2026-10-05T21:24:00Z",
  "details": {
    "description": "Sinta a emoção de conduzir um MG4 64 kWh Comfort, um elétrico que transforma cada viagem numa experiência vibrante. Com 204 CV, a resposta é imediata e suave, g…",
    "photos": [
      "https://ireland.apollo.olxcdn.com/v1/files/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbiI6IjR4bG5sc294eHVwZDEtU1REVlRMUFQiLCJ3IjpbeyJmbiI6IjZtZ2p3bHA3a2dkYjItU1REVlRMUFQiLCJzIjoiMTYiLCJhIjoiMCIsInAiOiIxMCwtMTAifV19.x-k_DkL6jeOT0EuTSCCNIH-Ktzn6odWPE51-jMhbPic/image",
      "https://ireland.apollo.olxcdn.com/v1/files/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbiI6IjZtcmcwejhlNG0yNDMtU1REVlRMUFQiLCJ3IjpbeyJmbiI6IjZtZ2p3bHA3a2dkYjItU1REVlRMUFQiLCJzIjoiMTYiLCJhIjoiMCIsInAiOiIxMCwtMTAifV19.LOByylQPomDhGkjDFwZR-WtluTWFeXob7sk238BINkQ/image"
    ],
    "published_at": "2026-09-23T21:24:44Z",
    "updated_at": "2026-09-23T21:25:28.967291Z",
    "latitude": 40.947403,
    "longitude": -8.564344,
    "subregion": "santamariadafeira",
    "is_negotiable": false
  },
  "seller": {
    "id": "166645",
    "uuid": "4d3dcf65-19e0-4e23-aa1d-4d5a832be325",
    "type": "dealer",
    "name": "Rocha Automóveis",
    "business_name": "Rocha Automóveis",
    "phones": [
      "256259002"
    ],
    "website": "http://www.rochaautomoveis.pt/?utm_source=standvirtual&utm_medium=site_link&utm_campaign=standvirtual",
    "profile_url": "https://rochaautomoveis.standvirtual.com",
    "active_ads": 317,
    "address": null,
    "postal_code": "4450-120",
    "city": "Matosinhos e Leça da Palmeira",
    "latitude": 41.17886014,
    "longitude": -8.68370245,
    "member_since": "2009"
  }
}
```

`features` and `attributes` are shortened here; real items carry every equipment flag and every listing parameter. For single ad URLs, the search-only fields (`price_evaluation`, `price_drop_pct`, `lowest_price`, `badges`, `is_promoted`, `is_highlighted`, `listed_at`, `bumped_at`) are empty. Phone numbers and email addresses that sellers type into the description are replaced with `[phone hidden]` and `[email hidden]` (the Standvirtual ad page hides typed phone numbers too), and a VIN typed there with `[id hidden]`.

You can download the dataset extracted by **Standvirtual Scraper** in various formats such as **JSON, HTML, CSV, or Excel**. The data is automatically cleaned and normalized for immediate use in analysis tools, databases, or business applications.

### Use cases and applications

- **Used-car market research** — track prices, mileage and supply by make, model, year and district across Portugal
- **Pricing and valuation** — benchmark against Standvirtual's own below/in/above-market rating and price drops
- **Dealer lead generation** — build lists of dealers with phone numbers, addresses and inventory size
- **Inventory monitoring** — follow a dealer's whole stock or a filtered search on a schedule

### Integrations and API access

Standvirtual Scraper seamlessly integrates with popular platforms:

- **Zapier** — Automate data workflows and notifications (via [Apify Zapier integration](https://docs.apify.com/platform/integrations/zapier))
- **Make (Integromat)** — Create complex automation scenarios (via [Apify Make integration](https://www.make.com/en/integrations/apify))
- **Google Sheets** — Direct data export for analysis
- **REST API** — Programmatic access to extracted data ([instructions here](https://docs.apify.com/academy/api/run-actor-and-retrieve-data-via-api))
- **Python/Node.js SDKs** — Easy integration into applications ([instructions here](https://docs.apify.com/academy/api/run-actor-and-retrieve-data-via-api#javascript-and-python-client))

### FAQ and Support

#### Do I need to configure a proxy?

No. Standvirtual runs bot-protection services that can block direct requests, so the Actor includes high-quality proxies automatically at no additional cost. There's nothing to configure.

#### Why are there no phone numbers for private sellers?

To respect the privacy of private individuals under the EU's GDPR, the seller data add-on returns phone numbers for dealers (professional sellers) only. Private sellers come back with the seller type only, no name and no phone number, and are not charged for the add-on. The VIN is not extracted either, and a VIN typed into the description is hidden.

#### What does the price evaluation mean?

It is Standvirtual's own rating of the asking price against similar vehicles: `BELOW`, `IN` or `ABOVE` market. It appears on search results for cars; motorcycles and vehicles without a rating return `null`.

#### Can I filter by specific brands or models?

Yes. Type the make or model in *Search vehicles* (for example `Peugeot 208` or `volkswagen`); it is matched against Standvirtual's own catalog, and the filters (vehicle type, condition, district or island, city, first-registration year, seller type, price, mileage) narrow it down. Or use Standvirtual's search filters in your browser and copy the filtered URL into *Standvirtual URLs*; the URL keeps every filter it carries.

#### How often is the data updated?

Standvirtual updates listings in real-time. For fresh data, schedule regular scraper runs or use our API for on-demand extraction.

#### What if some URLs don't work?

The scraper only supports specific URL patterns from Standvirtual. Ensure your URLs match the compatible formats listed above. URLs outside these patterns will be automatically blocked.

#### Do you offer custom solutions?

Absolutely! We can customize the scraper for specific requirements, additional data points, or integration with your existing systems. Contact us through the Issues tab for enterprise solutions.

#### Need help or have feedback?

- **Report issues**: Use the Issues tab for bug reports and feature requests
- **Custom development**: Contact us for tailored solutions and enterprise integrations

### Em português

**Standvirtual Scraper** extrai anúncios de carros e motos do [Standvirtual](https://www.standvirtual.com/): marca, modelo, versão, ano, quilómetros, combustível, potência, preço (com ou sem IVA), a avaliação de preço do próprio Standvirtual (abaixo / dentro / acima do mercado), descidas de preço, localização e vendedor. Proxies incluídos, sem configuração.

**Escreva veículos em vez de endereços:** no campo *Search vehicles* basta escrever a marca, o modelo ou ambos (por exemplo `Peugeot 208`, `VW Golf`, `volkswagen`); o texto é comparado com o catálogo do Standvirtual e os filtros (tipo de veículo, estado, distrito ou ilha, cidade, ano de primeiro registo, vendedor, preço, quilómetros) restringem os resultados.

**URLs aceites:** pesquisas de `/carros` ou `/motos` com quaisquer filtros (marca, modelo, ano, distrito, preço, palavra-chave, ordenação), anúncios individuais (`/carros/anuncio/...-ID8Q0nfl.html`) e páginas de stands (`https://estorilmotor.standvirtual.com`, todo o stock do stand).

**Add-ons opcionais:**

- **Detalhes do anúncio** — descrição completa (telefones, emails e números VIN escritos na descrição ficam ocultos), todas as fotos, datas de publicação e atualização, coordenadas e se o preço é negociável. Cobrado por veículo com detalhes.
- **Dados do vendedor** — telefones do stand, morada, código postal, coordenadas, website, número de anúncios ativos e ano de registo. Telefones apenas de profissionais (stands), por respeito ao RGPD: vendedores particulares devolvem nome e tipo, sem telefone, e não são cobrados. Cobrado apenas quando é devolvido pelo menos um telefone.

Cada veículo é devolvido (e cobrado) uma só vez por execução. O VIN não é extraído; um VIN escrito na descrição é substituído por `[id hidden]`. Para anúncios individuais, os campos exclusivos da pesquisa (`price_evaluation`, `price_drop_pct`, `lowest_price`, `badges`, `is_promoted`, `is_highlighted`, `listed_at`, `bumped_at`) ficam vazios.

# Changelog

This Actor's version history is a separate document: https://apify.com/ribtools/standvirtual-scraper/changelog.md

# Actor input Schema

## `vehicles` (type: `array`):

Type it the way you would in Standvirtual's search box: a make (`VW`), a model (`208`) or both (`Renault Clio`). One per line, each becomes its own search. Spelling is matched against Standvirtual's own catalog, so `volkswagen` finds VW. Leave empty if you only paste URLs below.

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

Standvirtual URLs copied from your browser. Search URLs for cars (`/carros`) or motorcycles (`/motos`) with any filters applied (brand, model, year, region, price, keyword, sort), e.g. `https://www.standvirtual.com/carros/bmw/serie-3?search[filter_float_price:to]=20000`. Single ad URLs (`/carros/anuncio/...-ID8Q0nfl.html`) and dealer pages (`https://estorilmotor.standvirtual.com`) also work.

## `maxRequests` (type: `integer`):

Maximum number of vehicles for each vehicle and each URL above. Each result is a charged event. Default 10.

## `vehicleType` (type: `string`):

Cars or motorcycles. Applies to the vehicles typed above.

## `condition` (type: `string`):

Used, new, or both.

## `district` (type: `string`):

Portuguese district, or an island of Madeira or the Azores. Leave empty to search the whole country.

## `city` (type: `string`):

A city or town, for example `Odivelas`. Searches it and 50 km around it, Standvirtual's default radius; the name is checked against Standvirtual's own location list, and an unknown name, or one shared by several places when no district is picked, is skipped and named in the status message. If you also pick a district, the city must be in it.

## `yearFrom` (type: `integer`):

Oldest first-registration year to include.

## `yearTo` (type: `integer`):

Newest first-registration year to include. Leave empty for no upper limit.

## `sellerType` (type: `string`):

Dealers (stands), private sellers, or both.

## `priceFrom` (type: `integer`):

Lowest asking price to include, in euros.

## `priceTo` (type: `integer`):

Highest asking price to include, in euros: 1 or more (no vehicle is listed at 0).

## `kmFrom` (type: `integer`):

Lowest mileage to include.

## `kmTo` (type: `integer`):

Highest mileage to include: 1 km or more. For 0 km vehicles, set Condition to New instead.

## `detailsAddon` (type: `boolean`):

Open each ad to add the full description, every photo, publication and update dates, map coordinates and whether the price is negotiable. Charged per vehicle with details.

## `sellerDataAddon` (type: `boolean`):

Add the seller profile: dealer phone numbers, address, postal code, map coordinates, website, number of active ads and member-since year. Phone numbers and names are returned for dealers only; private sellers return the seller type and nothing personal. You are charged only when a phone number is returned.

## Actor input object example

```json
{
  "vehicles": [
    "Peugeot 208",
    "Renault Clio"
  ],
  "startUrls": [
    "https://www.standvirtual.com/carros/bmw/serie-3?search[filter_float_price:to]=20000"
  ],
  "maxRequests": 10,
  "vehicleType": "car",
  "condition": "all",
  "sellerType": "all",
  "detailsAddon": false,
  "sellerDataAddon": false
}
```

# Actor output Schema

## `items` (type: `string`):

All scraped vehicles.

# 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 = {
    "vehicles": [
        "Peugeot 208",
        "Renault Clio"
    ],
    "maxRequests": 10,
    "detailsAddon": false,
    "sellerDataAddon": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("ribtools/standvirtual-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 = {
    "vehicles": [
        "Peugeot 208",
        "Renault Clio",
    ],
    "maxRequests": 10,
    "detailsAddon": False,
    "sellerDataAddon": False,
}

# Run the Actor and wait for it to finish
run = client.actor("ribtools/standvirtual-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 '{
  "vehicles": [
    "Peugeot 208",
    "Renault Clio"
  ],
  "maxRequests": 10,
  "detailsAddon": false,
  "sellerDataAddon": false
}' |
apify call ribtools/standvirtual-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ribtools/standvirtual-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/MlRIcWi0AS6f2hRqb/builds/QUJhZac0H7Cw0NzCl/openapi.json
