# SuperCarros Scraper - Dominican Republic Cars & Dealer Leads (`normdata/supercarros-scraper`) Actor

Scrape cars, motorcycles, boats and trucks from SuperCarros.com, the top car marketplace of the Dominican Republic. Get price, year, km, specs and photos, plus seller phones, WhatsApp, email and address. Filter by brand, model, province, price, year, km, fuel, body and more.

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

## Pricing

from $6.00 / 1,000 vehicles

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

![Norm Data](https://raw.githubusercontent.com/FabriAV/normdata/refs/heads/main/assets/banner_norm2.png)

## 🚗 SuperCarros Scraper - Dominican Republic Cars & Dealer Leads

Extract cars, SUVs, pickups, motorcycles, ATVs, boats, trucks and buses from **SuperCarros.com**, the biggest vehicle marketplace of the Dominican Republic, with about 30,000 listings from dealers and private sellers. For each vehicle you get the **price and currency (US$ or RD$), year, new or used, fuel, km, electric range, featured and video flags, and every full-size photo**. Turn on **vehicle details** to also get the **seller's name and type, every phone and WhatsApp number, email, salesperson, address and map location, dealer page and logo**, plus **body type, engine, colors, transmission, drive, doors, seats, payload, price in pesos, views, description and equipment**. It collects **1,000 vehicles in about 30 seconds** and can run on a schedule to send you **only new listings**.

### 🎯 Who uses it?

#### 🏪 Car dealers and importers

See what every dealer and private seller in the country is asking, by brand, model, year, km and province, to price your stock and spot cars to buy.

#### 📞 Sales and lead generation teams

Get the phones, WhatsApp, email and address of every dealer and private seller: insurers, banks, car loan and leasing companies, detailers, parts shops and shipping agents use them as leads.

#### 📊 Market and pricing analysts

Build price models for the Dominican market by brand, model, year, km, fuel and body type, compare US$ and RD$ listings with the site's peso price, and track new vs used supply.

#### 🔔 Car buyers and resellers

Get a daily list of new listings for the cars you want, with the seller's WhatsApp ready.

### ✨ What it does

- **Every vehicle type.** Cars (sedans, SUVs, pickups, vans...), motorcycles and ATVs, boats and jet skis, heavy vehicles (trucks, buses, machinery) and others.
- **Sort like on the site.** Default (featured first), cheapest, most expensive, newest or oldest year.
- **Many filters.** Brand, model, search words, body type, new or used, dealer or private seller, province, price currency, price, year, km, fuel, transmission, drive, cylinders, exterior color, equipment (sunroof, leather, reverse camera...), only electric and only with video.
- **No 1,000 cap.** The site lists at most 1,000 vehicles per search. Bigger searches are split by brand, year and more, so you get every vehicle.
- **Smart search words.** "land cruiser" or "honda civic 2018" only reads that model's listings, so it stays fast.
- **Vehicle details add-on:** opens each vehicle page for the seller's contacts, location, specs, equipment and description.
- **Or paste links.** Vehicle pages, or any search results page from the site with the filters you set there. Filters are not used with links.
- **Monitoring:** run it on a schedule with **Only new vehicles**, and each run saves only the listings you haven't received yet.

### 🏆 Why this scraper

- **Fast.** 1,000 vehicles in about 30 seconds without details.
- **Complete.** Every listing of a search, not just the first 1,000 the site shows.
- **Clean, typed data.** Prices, km, years, doors, seats and views are numbers. Phones and WhatsApp are in international format (+1809..., +1829..., +1849...). Protected emails are decoded.
- **Every contact.** Main phone and WhatsApp plus every other number on the page, the email, the dealer's salesperson and the map location.
- **Nothing to set up.** No proxy, no login.

### 📦 What data you get

| Field | Description |
| --- | --- |
| `imageUrl` | Main photo, full size. |
| `title` | Brand, model and version, as the seller wrote them. |
| `year` | Model year. |
| `price`, `currency` | Asking price and its currency: USD (US$) or DOP (RD$). |
| `condition` | Nuevo (new) or Usado (used). |
| `fuel` | Fuel, like Gasolina, Diesel, GLP, Híbrido or Eléctrico. |
| `mileage`, `mileageUnit` | Distance driven and its unit (km or mi). Empty when the seller did not say. |
| `range` | Range of electric vehicles, like "400 Km". |
| `id` | The site's listing ID. |
| `photoCount` | Number of photos. |
| `vehicleType` | Car, Motorcycle, Boat, Heavy vehicle or Other. |
| `bodyType` | *(Vehicle details)* Body type, like Jeepeta (SUV), Sedán, Camioneta (pickup) or Camión. |
| `engine` | *(Vehicle details)* Engine size, cylinders and type, like "1.5, 4 cilindros, Turbo". |
| `exteriorColor`, `interiorColor` | *(Vehicle details)* Exterior and interior color, in Spanish. |
| `transmission`, `drive` | *(Vehicle details)* Transmission and drive, like Automática and 4WD. |
| `doors`, `passengers` | *(Vehicle details)* Doors and seats. |
| `payload` | *(Vehicle details)* Load capacity, mostly for trucks. |
| `priceDop` | *(Vehicle details)* Price in Dominican pesos, as the site converts it (for comparing US$ and RD$ listings). |
| `views` | *(Vehicle details)* How many times the listing was viewed. |
| `description` | *(Vehicle details)* Seller's description. |
| `sellerName`, `sellerType`, `sellerId` | *(Vehicle details)* Seller name, type (Dealer or Private) and site ID. |
| `contactPerson` | *(Vehicle details)* Dealer's salesperson for this vehicle, when given. |
| `phone`, `whatsapp` | *(Vehicle details)* Main phone and WhatsApp, in +1 format. |
| `email` | *(Vehicle details)* Seller's email. |
| `sellerCity`, `sellerAddress`, `latitude`, `longitude` | *(Vehicle details)* Seller's city, street address and map location. |
| `featured` | Featured (paid) listing. Empty for vehicle links. |
| `hasVideo` | The listing has a video. |
| `url` | Link to the vehicle page. |
| `sellerLogoUrl`, `dealerPageUrl`, `whatsappUrl`, `videoUrl` | *(Vehicle details)* Dealer logo, dealer page with all its vehicles, WhatsApp chat link and video link. |
| `photos` | Every photo, full size. |
| `phones`, `whatsapps` | *(Vehicle details)* Every phone and WhatsApp number of the seller. |
| `features` | *(Vehicle details)* Equipment, like "Cámara de reversa" or "Apple CarPlay", in Spanish. |
| `scrapedAt` | When this row was saved. |
| `error` | Only present when a row failed. The fields that loaded are still there. |

Fields marked *Vehicle details* only appear when that add-on is on.

#### Example row (trimmed)

```json
{
  "imageUrl": "https://img.supercarros.com/AdsPhotos/1024x768/0/14840487.jpg",
  "title": "Porsche Boxster 718 GTS",
  "year": 2025,
  "price": 155000,
  "currency": "USD",
  "condition": "Usado",
  "fuel": "Gasolina",
  "mileage": 1000,
  "mileageUnit": "mi",
  "id": "1639559",
  "photoCount": 12,
  "vehicleType": "Car",
  "bodyType": "Coupé/Deportivo",
  "engine": "6 cilindros",
  "exteriorColor": "Blanco",
  "interiorColor": "Rojo",
  "transmission": "Automática",
  "drive": "Trasera",
  "doors": 2,
  "passengers": 2,
  "priceDop": 9315500,
  "views": 26,
  "description": "Unidad de la casa con garantía de fabrica vigente",
  "sellerName": "Domingo Auto Import",
  "sellerType": "Dealer",
  "sellerId": "42871",
  "contactPerson": "Michael De Los Santos",
  "phone": "+18295922013",
  "whatsapp": "+18295922013",
  "email": "domingoauto@outlook.com",
  "sellerCity": "Los Maestros, Santo Domingo D.N, Distrito Nacional",
  "sellerAddress": "Rómulo Betancourt esq. Eva Pellerano, #53. Ref.: Frente a David Frenos",
  "latitude": 18.448519,
  "longitude": -69.959523,
  "featured": false,
  "hasVideo": true,
  "url": "https://www.supercarros.com/porsche-boxster/1639559/",
  "sellerLogoUrl": "https://img.supercarros.com/CustomersLogos/100x90/0/42871.jpg",
  "dealerPageUrl": "https://www.supercarros.com/Dealers/domingoauto/",
  "whatsappUrl": "https://wa.me/18295922013",
  "videoUrl": "https://player.vimeo.com/video/1233098660",
  "photos": ["https://img.supercarros.com/AdsPhotos/1024x768/0/14840487.jpg", "https://img.supercarros.com/AdsPhotos/1024x768/0/14840488.jpg", "https://img.supercarros.com/AdsPhotos/1024x768/0/14840489.jpg"],
  "phones": ["+18295922013", "+18099901027", "+18497517015"],
  "whatsapps": ["+18295922013", "+18098517717"],
  "features": ["Alarma", "Bolsa de aire (chofer)", "Bolsa de aire (laterales)"],
  "scrapedAt": "2026-10-25T23:01:28.681Z"
}
```

### 💡 Use cases

**Every dealer and private seller contact for Toyota and Hyundai SUVs in Santiago and Santo Domingo:**

```json
{
  "vehicleTypes": ["cars"],
  "brands": ["Toyota", "Hyundai"],
  "bodyTypes": ["Jeepeta"],
  "provinces": ["Santiago", "Distrito Nacional", "Santo Domingo Este"],
  "includeDetails": true
}
```

**Used diesel 4x4 pickups from 2019, under 40,000 US dollars:**

```json
{
  "condition": "used",
  "bodyTypes": ["Camioneta"],
  "fuels": ["diesel"],
  "drives": ["4WD"],
  "minYear": 2019,
  "currency": "USD",
  "maxPrice": 40000
}
```

**Private sellers only, with their phones and WhatsApp:**

```json
{
  "vehicleTypes": ["cars"],
  "sellerType": "private",
  "includeDetails": true,
  "maxItems": 500
}
```

**Cars priced in pesos under RD$ 900,000, cheapest first:**

```json
{
  "currency": "DOP",
  "maxPrice": 900000,
  "sortBy": "price-asc"
}
```

**New listings every day (schedule this run):**

```json
{
  "onlyNew": true,
  "monitorName": "daily-listings"
}
```

**Links (filters are not used):**

```json
{
  "startUrls": [
    { "url": "https://www.supercarros.com/carros/jeepeta/santiago/toyota/" },
    { "url": "https://www.supercarros.com/motores/" },
    { "url": "https://www.supercarros.com/isuzu-dmax/1614631/" }
  ],
  "includeDetails": true
}
```

### ⚙️ How the input is organised

| Section | What it's for |
| --- | --- |
| **Maximum results** | Always first, caps the whole run. Empty means no limit. |
| **What to scrape** | Vehicle types, sort by, brands, models, search words and vehicle details (seller phones, WhatsApp, email, address, specs). |
| **Filters** | Body type, condition, seller, provinces, price currency, minimum price, maximum price, from year, to year, minimum mileage, maximum mileage, fuel, transmission, drive, cylinders, exterior color, equipment, only electric and only with video. |
| **Monitoring** | Only new vehicles and monitor name. |
| **Links** | Links instead of the fields above. Filters are ignored with links. |

### 💰 Pricing

Pay-per-event: a one-time **$0.003** when the run starts, plus a price per vehicle saved to your dataset. The price depends on your Apify plan tier:

| Your Apify plan | Price per vehicle |
| --- | --- |
| Free | $0.008 |
| Bronze | $0.0072 |
| Silver | $0.0065 |
| Gold / Platinum / Diamond | $0.006 |

**Vehicle details add-on:** when **Vehicle details** is on, each vehicle saved with its page details adds one more charge:

| Your Apify plan | Vehicle details, per vehicle |
| --- | --- |
| Free | $0.014 |
| Bronze | $0.013 |
| Silver | $0.012 |
| Gold / Platinum / Diamond | $0.011 |

Approximate total cost:

| Vehicles collected | Free | Bronze | Silver | Gold+ |
| --- | --- | --- | --- | --- |
| 1,000 | $8.00 | $7.20 | $6.50 | $6.00 |
| 1,000 with details | $22.00 | $20.20 | $18.50 | $17.00 |
| 30,000 (the whole site) | $240.00 | $216.00 | $195.00 | $180.00 |

Vehicle pages that could not be read pay only the base price, and vehicles left out by filters are free. New Apify accounts start with $5 in free credit. On the Free plan, a run saves up to 10 vehicles.

### 🚀 Run it

1. Create a free Apify account with $5 in credit.
2. Open the SuperCarros Scraper.
3. Pick vehicle types, add filters (or keep it empty for everything), then click **Start**.
4. Export the results as CSV, Excel, JSON or XML from the Dataset tab.

### 🤖 Use with AI agents (MCP)

Connect the [Apify MCP server](https://mcp.apify.com) to Claude, ChatGPT, Cursor or any MCP client, then ask in plain words, for example: *"Get every used Toyota Hilux under 35,000 US dollars on SuperCarros in Santiago, with the seller's WhatsApp"*. The agent runs this Actor and reads the results.

### 🔧 Troubleshooting

- **Few or no results.** Body type, transmission, drive and color use the site's Spanish names (pick them from the lists). Brands and models are matched without accents or case. Price filters use the price currency (US dollars when empty) and only keep vehicles priced in it. Loosen a filter if nothing matches.
- **Vehicle details are slower.** The site allows about 100 pages a minute, and each vehicle page is one of them: about 1,000 vehicles in 12 minutes.
- **Search words that are not a brand or model are slower.** Words like "sport" or "full" are checked against every vehicle of the chosen types. Add a brand, model or vehicle type to keep it quick.
- **Some fields are empty.** They are empty on the site too: many new vehicles have no km ("N/D"), only electric vehicles have a range, payload is mostly for trucks, and private sellers have no dealer page, logo or map.
- **A few more or fewer vehicles than the site's count.** Listings are added and sold while the run reads the site.

### ❓ FAQ

**How many vehicles are there?** About 30,000 as of October 2026, almost all cars, plus about 240 motorcycles, 1,000+ heavy vehicles and a few boats and others.

**Are prices in dollars or pesos?** Each listing is in the seller's currency (`currency` is USD or DOP). With vehicle details, `priceDop` gives every price in pesos as the site converts it.

**Do I need a proxy?** No.

### 🛡️ Limits & responsible use

This Actor collects vehicle listings that SuperCarros publishes on its website, at a moderate pace. Use the data in line with the site's terms and the Dominican Republic's data protection law (Law 172-13). Seller phones and emails belong to dealers and private people: follow anti-spam rules and only contact them about their listing.

### 📧 Contact

Questions, bugs or a field you need: norm.data.scrapers@gmail.com

### 🧪 Local development

```bash
bun install
bun scripts/gen-schemas.mjs
sh test/run.sh first '{"maxItems":10}'
```

# Actor input Schema

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

Stop after this many vehicles in total. Leave empty for no limit. The Apify Free plan is always capped at 10.

## `vehicleTypes` (type: `array`):

Empty = every type.

## `sortBy` (type: `string`):

The order the site lists them in. Searches over 1,000 results are read in parts, so the order holds inside each part.

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

Only these brands, like "Toyota", "Hyundai" or "Mercedes". Empty = every brand.

## `models` (type: `array`):

Only these models, like "Corolla", "CR-V" or "Toyota Hilux". Works with or without brands. Empty = every model.

## `searchTerms` (type: `array`):

Keep only vehicles whose title has every word of one of these, like "hilux 4x4" or "sport hybrid".

## `includeDetails` (type: `boolean`):

Also read each vehicle page for the seller name and type, every phone and WhatsApp number, email, contact person, address and map location, dealer page, plus body, engine, colors, transmission, drive, doors, seats, price in pesos, views, description, equipment and video. Charged per vehicle as an add-on.

## `bodyTypes` (type: `array`):

Keep only these body types.

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

New or used. Empty = both.

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

Dealers or private sellers. Empty = both.

## `provinces` (type: `array`):

Only vehicles in these provinces or areas. Empty = the whole country.

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

Only vehicles priced in this currency. The price filters below use it too (US dollars when empty).

## `minPrice` (type: `integer`):

In the price currency above.

## `maxPrice` (type: `integer`):

In the price currency above.

## `minYear` (type: `integer`):

Model year, like 2018.

## `maxYear` (type: `integer`):

Model year, like 2024.

## `minMileage` (type: `integer`):

Distance driven, as the seller wrote it (km or miles).

## `maxMileage` (type: `integer`):

Distance driven, as the seller wrote it (km or miles). New vehicles with no mileage are included.

## `fuels` (type: `array`):

Keep only these fuels.

## `transmissions` (type: `array`):

Keep only these transmissions.

## `drives` (type: `array`):

Keep only these drive types.

## `cylinders` (type: `array`):

Keep only engines with this many cylinders.

## `colors` (type: `array`):

Keep only these colors.

## `equipment` (type: `array`):

Keep only vehicles with all of these.

## `onlyElectric` (type: `boolean`):

Keep only electric vehicles (the site's Eléctricos section).

## `onlyWithVideo` (type: `boolean`):

Keep only listings that have a video.

## `onlyNew` (type: `boolean`):

Skip vehicles saved by earlier runs with the same monitor name.

## `monitorName` (type: `string`):

Runs with the same name share their history. Use a different name for each schedule.

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

Vehicle pages (https://www.supercarros.com/toyota-corolla/1640451/) or search results pages with any filters you set on the site, like https://www.supercarros.com/carros/jeepeta/santiago/toyota/.

## Actor input object example

```json
{
  "maxItems": 10,
  "vehicleTypes": [
    "cars"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "maxItems": 10,
    "vehicleTypes": [
        "cars"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("normdata/supercarros-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 = {
    "maxItems": 10,
    "vehicleTypes": ["cars"],
}

# Run the Actor and wait for it to finish
run = client.actor("normdata/supercarros-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 '{
  "maxItems": 10,
  "vehicleTypes": [
    "cars"
  ]
}' |
apify call normdata/supercarros-scraper --silent --output-dataset

```

## MCP server setup

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