# Inter Cars Scraper (`maximedupre/intercars`) Actor

Collect public Inter Cars product data from IC24.UK searches or links. Get part numbers, prices, stock, specs, images, and source-listed alternatives for parts research and catalog work.

- **URL**: https://apify.com/maximedupre/intercars.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** E-commerce, Business, Automation
- **Stats:** 2 total users, 2 monthly users, 99.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 products

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

### 🚗 Collect Inter Cars parts for catalog research

Parts buyers, catalog teams, and researchers can collect public IC24.UK products with Inter Cars Scraper. Get part numbers, prices, stock, specs, images, and source-listed alternatives in a dataset to compare parts and review catalog details.

- Collect product details with **[Intercars Parts](https://apify.com/maximedupre/intercars/examples/intercars-parts)**.
- Find brand-specific products with **[Intercars Bosch Parts](https://apify.com/maximedupre/intercars/examples/intercars-bosch-parts)**.
- Check available products with **[Intercars Parts in Stock](https://apify.com/maximedupre/intercars/examples/intercars-parts-in-stock)**.
- Read technical details with **[Intercars Product Specifications](https://apify.com/maximedupre/intercars/examples/intercars-product-specifications)**.
- Review source-listed part codes with **[Intercars Part Cross Reference](https://apify.com/maximedupre/intercars/examples/intercars-part-cross-reference)**.

#### 📦 Product details from IC24.UK

Each row is one successfully read product. It has a source link and name, plus other details when the source provides them. Stock quantities keep the source's exact value or bound. Alternatives and cross-reference codes are source-listed, not an independent fitment check.

The first eligible occurrence of a product is saved. Later matches from another term or link are ignored and do not change the saved row.

#### 🚀 Find parts with terms or links

1. Choose **Search terms** or **Links**.
2. Add search terms, or IC24.UK product or listing links.
3. Set optional brand and stock filters for discovered products.
4. Set a product limit, or leave it empty to return all available results until the source is exhausted.
5. Start the run and open the products dataset.

Direct product links are not subject to brand or stock filters. The Actor reads public IC24.UK pages without a login.

#### ⚙️ Input

Only inputs for the chosen method are used. All search terms share the same filters.

| Field | Type | What it does |
|---|---|---|
| `discoveryMethod` | string | Required. Choose `searchTerms` or `links`. |
| `searchTerms` | array of strings | Terms to search on IC24.UK. |
| `startUrls` | array of objects | Product, category, manufacturer, filtered listing, or search-result links. Product links read those products; listing links discover products. |
| `startUrls[].url` | string | IC24.UK link to read. |
| `brands` | array of strings | Keeps discovered products from these brands. Leave empty for all brands. Does not filter direct product links. |
| `inStockOnly` | boolean | Keeps discovered products only when the source shows current stock. Defaults to false. Does not filter direct product links. |
| `minimumStock` | integer | Keeps discovered products with at least this many source-supported units. Minimum 1. Unknown quantities are excluded. Leave blank for no quantity filter. Does not filter direct product links. |
| `maxItems` | integer | Stops after this many products across the run. Minimum 1; the form starts with 10. Leaving it empty returns all available results until the source is exhausted. |

Public input from the successful current-beta default-input run:

```json
{
  "discoveryMethod": "searchTerms",
  "searchTerms": [
    "oil filter"
  ],
  "inStockOnly": false,
  "maxItems": 10
}
```

#### 🧾 Output

The run output field `products` links to the products dataset. Each dataset row uses the product shape below. Optional details are left out when unavailable.

**Run output**

| Field | Type | What it does |
|---|---|---|
| `products` | string | Opens the products collected by this run. |

**Product fields**

| Field | Type | What it does |
|---|---|---|
| `url` | string | Source product page link. |
| `name` | string | Product name shown by IC24.UK. |
| `brand` | string | Product manufacturer or brand shown by the source. |
| `itemCode` | string | Source item code used to identify or look up the product. |
| `partNumber` | string | Manufacturer part number used to match the product. |
| `barcode` | string | Product barcode shown by the source. |
| `otherIdentifiers` | array of objects | Other product identifiers listed by the source. |
| `otherIdentifiers[].system` | string | Name of the identifier system. |
| `otherIdentifiers[].value` | string | Identifier shown by the source. |
| `description` | string | Product description shown by the source. |
| `specifications` | array of objects | Technical details listed for this product. |
| `specifications[].name` | string | Name of the detail. |
| `specifications[].value` | string | Value shown by the source. |
| `specifications[].unit` | string | Unit shown for this value. |
| `tecdocSpecifications` | array of objects | TecDoc technical details listed for this product. |
| `tecdocSpecifications[].name` | string | Name of the detail. |
| `tecdocSpecifications[].value` | string | Value shown by the source. |
| `tecdocSpecifications[].unit` | string | Unit shown for this value. |
| `prices` | object | Prices listed by the source. |
| `prices.net` | number | Price before tax. |
| `prices.gross` | number | Price with tax. |
| `prices.currency` | string | Currency used for these prices. |
| `prices.validUntil` | string | End of the price period shown by the source. |
| `stock` | object | Current stock shown by the source. |
| `stock.availability` | string | Stock availability text shown by the source. |
| `stock.quantity` | number | Stock quantity stated by the source. Read quantityRelation to see whether it is exact or a bound. |
| `stock.quantityRelation` | string | How the source relates the stated quantity to actual stock. |
| `stock.unit` | string | Unit used for the stock quantity. |
| `imageUrls` | array of strings | Source-hosted product image links. |
| `categories` | array of objects | Source category path, from the broadest category to the most specific. |
| `categories[].name` | string | Category name shown by the source. |
| `categories[].url` | string | Source category page link. |
| `variants` | array of objects | Product variants listed by the source. |
| `variants[].name` | string | Variant name shown by the source. |
| `variants[].url` | string | Source product link for this variant. |
| `variants[].partNumber` | string | Manufacturer part number for this variant. |
| `variants[].attributes` | array of objects | Details that describe this variant. |
| `variants[].attributes[].name` | string | Name of the detail. |
| `variants[].attributes[].value` | string | Value shown by the source. |
| `variants[].attributes[].unit` | string | Unit shown for this value. |
| `equivalentProducts` | array of objects | Equivalent or alternative products listed by the source. |
| `equivalentProducts[].name` | string | Alternative product name. |
| `equivalentProducts[].url` | string | Source page link for this product. |
| `equivalentProducts[].brand` | string | Alternative product manufacturer or brand. |
| `equivalentProducts[].partNumber` | string | Alternative manufacturer part number. |
| `equivalentProducts[].itemCode` | string | Source item code for this alternative. |
| `equivalentProducts[].prices` | object | Prices listed by the source. |
| `equivalentProducts[].prices.net` | number | Price before tax. |
| `equivalentProducts[].prices.gross` | number | Price with tax. |
| `equivalentProducts[].prices.currency` | string | Currency used for these prices. |
| `equivalentProducts[].prices.validUntil` | string | End of the price period shown by the source. |
| `equivalentProducts[].stock` | object | Current stock shown by the source. |
| `equivalentProducts[].stock.availability` | string | Stock availability text shown by the source. |
| `equivalentProducts[].stock.quantity` | number | Stock quantity stated by the source. Read quantityRelation to see whether it is exact or a bound. |
| `equivalentProducts[].stock.quantityRelation` | string | How the source relates the stated quantity to actual stock. |
| `equivalentProducts[].stock.unit` | string | Unit used for the stock quantity. |
| `crossReferences` | array of objects | Cross-reference part codes listed by the source. |
| `crossReferences[].manufacturer` | string | Manufacturer linked to this part code. |
| `crossReferences[].system` | string | Code system named by the source. |
| `crossReferences[].code` | string | Cross-reference part code. |
| `package` | object | Package quantity and units listed by the source. |
| `package.quantity` | number | Number of units in the package. |
| `package.unit` | string | Unit of measure listed for the product. |
| `package.salesUnit` | string | Unit used to sell the product. |

This complete genuine product row is from a successful current-beta run:

```json
{
  "url": "https://www.ic24.uk/products/g0umv9-engine-oil-10w60-5l-300v-le-mans-synthetic-300v-10w60-5l-110865",
  "name": "Engine Oil 10W60 5l 300V LE MANS synthetic",
  "specifications": [
    {
      "name": "Name",
      "value": "Engine oil"
    },
    {
      "name": "Viscosity",
      "value": "10W60"
    },
    {
      "name": "Capacity [l]",
      "value": "5",
      "unit": "l"
    },
    {
      "name": "Product line",
      "value": "300V LE MANS"
    },
    {
      "name": "Intended use",
      "value": "Passenger cars"
    },
    {
      "name": "Base technology",
      "value": "synthetic"
    },
    {
      "name": "Offer",
      "value": "Tuning"
    },
    {
      "name": "Bar code",
      "value": "3374650324623, IC-G0UMV9"
    },
    {
      "name": "Item code",
      "value": "G0UMV9"
    },
    {
      "name": "Item index",
      "value": "300V 10W60 5L 110865"
    },
    {
      "name": "PCN",
      "value": "34031980"
    },
    {
      "name": "Manufacturer",
      "value": "MOTUL, Manufacturer: MotulAddress: 119 Boulevard Félix Faure, Aubervilliers, Seine Saint Denis, 93300, FranceEmail: [email protected]"
    }
  ],
  "tecdocSpecifications": [],
  "crossReferences": [
    {
      "code": "110865",
      "system": "ARTNR_Z_TCD"
    },
    {
      "code": "111 982",
      "system": "ARTNR_Z_TCD"
    },
    {
      "code": "CARBON 10W60 5L",
      "system": "IC KROSY"
    },
    {
      "code": "110865",
      "system": "MOTUL",
      "manufacturer": "MOTUL"
    }
  ],
  "otherIdentifiers": [
    {
      "system": "ARTNR_Z_TCD",
      "value": "110865"
    },
    {
      "system": "ARTNR_Z_TCD",
      "value": "111 982"
    },
    {
      "system": "IC KROSY",
      "value": "CARBON 10W60 5L"
    },
    {
      "system": "MOTUL",
      "value": "110865"
    }
  ],
  "imageUrls": [
    "https://webcdn.intercars.eu/thumbnails/057014/300v_10w60_5l_110865_%232.jpg?sp=r&st=2019-08-02T10:10:24Z&se=2027-08-03T10:10:00Z&sv=2018-03-28&sig=kCBWYktezowZJSsbkZO2vhT9kmwl1msEQHwQbp3Iukc%3D&sr=c"
  ],
  "categories": [
    {
      "name": "Home",
      "url": "https://www.ic24.uk/"
    },
    {
      "name": "Oils",
      "url": "https://www.ic24.uk/oils"
    },
    {
      "name": "10W60",
      "url": "https://www.ic24.uk/oils/10W60"
    },
    {
      "name": "Capacity [l] 5",
      "url": "https://www.ic24.uk/oils&p-Capacity=24499~268000"
    },
    {
      "name": "MOTUL",
      "url": "https://www.ic24.uk/oils&manufacturers=MOTUL"
    },
    {
      "name": "300V LE MANS",
      "url": "https://www.ic24.uk/oils&p-23999=23999~481244"
    }
  ],
  "prices": {
    "gross": 188.5,
    "net": 157.08,
    "currency": "GBP",
    "validUntil": "2026-12-04"
  },
  "stock": {
    "availability": ">9\n                        pcs.",
    "quantity": 9,
    "quantityRelation": "moreThan",
    "unit": "pcs."
  },
  "variants": [
    {
      "url": "https://www.ic24.uk/products/g0umv7-engine-oil-10w60-2l-300v-le-mans-synthetic-300v-10w60-2l-110864",
      "attributes": [
        {
          "name": "Capacity (l)",
          "value": "2",
          "unit": "l"
        }
      ],
      "name": "Engine Oil 10W60 2l 300V LE MANS synthetic",
      "partNumber": "110864"
    },
    {
      "url": "https://www.ic24.uk/products/g0umv9-engine-oil-10w60-5l-300v-le-mans-synthetic-300v-10w60-5l-110865",
      "attributes": [
        {
          "name": "Capacity (l)",
          "value": "5",
          "unit": "l"
        }
      ],
      "name": "Engine Oil 10W60 5l 300V LE MANS synthetic",
      "partNumber": "300V 10W60 5L 110865"
    }
  ],
  "equivalentProducts": [
    {
      "url": "https://www.ic24.uk/products/e4f06a-engine-oil-10w60-4l-racing-sport-synto-rav-rss-10w60-4l",
      "stock": {
        "availability": ">9\n                        pcs.",
        "quantity": 9,
        "quantityRelation": "moreThan",
        "unit": "pcs."
      },
      "prices": {
        "gross": 187.68,
        "net": 156.4,
        "currency": "GBP",
        "validUntil": "2026-12-05"
      },
      "name": "Engine Oil 10W60 4l Racing Sport Synto",
      "brand": "RAVENOL",
      "itemCode": "E4F06A",
      "partNumber": "RAV RSS 10W60 4L"
    },
    {
      "url": "https://www.ic24.uk/products/e4f06b-engine-oil-10w60-5l-racing-sport-synto-rav-rss-10w60-5l",
      "stock": {
        "availability": ">9\n                        pcs.",
        "quantity": 9,
        "quantityRelation": "moreThan",
        "unit": "pcs."
      },
      "prices": {
        "gross": 232.68,
        "net": 193.9,
        "currency": "GBP",
        "validUntil": "2026-12-04"
      },
      "name": "Engine Oil 10W60 5l Racing Sport Synto",
      "brand": "RAVENOL",
      "itemCode": "E4F06B",
      "partNumber": "RAV RSS 10W60 5L"
    }
  ],
  "brand": "MOTUL",
  "itemCode": "G0UMV9",
  "partNumber": "300V 10W60 5L 110865",
  "barcode": "3374650324623",
  "description": "MOTUL 300V 10W60 5L 110865 - Engine oil 300V LE MANS (5L) 10W60",
  "package": {
    "salesUnit": "pcs"
  }
}
```

The `quantityRelation` values are `exact`, `atLeast`, `moreThan`, `atMost`, and `lessThan`. For example, a quantity of 9 with `moreThan` means more than 9 units, not exactly 9. These meanings also apply to stock on equivalent products.

#### 💳 Pricing

This Actor uses pay-per-event pricing. One Product event is charged for each successfully read product saved to your dataset. Failed lookups and no-result work do not trigger this product event. See the Pricing tab for current prices by Apify plan tier.

#### 🔌 Integrations

https://www.youtube.com/watch?v=bNACk1_S_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

Read saved products through the Apify dataset or API. Export the dataset as JSON, CSV, or Excel for your own catalog or analysis workflow.

#### ❓ FAQ

##### Do stock filters apply to direct product links?

No. Brand, in-stock, and minimum-stock filters apply to products discovered from searches and listing links. Direct product links read those products.

##### Does a stock quantity always mean an exact count?

No. Read `stock.quantityRelation` with `stock.quantity`. The source may show an exact count or a bound such as more than 9 units.

##### Are alternative parts guaranteed to fit?

No. The Actor returns alternatives, cross-reference codes, and technical details listed by IC24.UK. Check the source details before choosing a part.

##### What happens if I leave the product limit empty?

The Actor returns all available results until the source is exhausted. The input schema has no fixed upper limit.

##### Why are some fields missing?

The source does not show every detail for every product. A successfully read product can still be saved when optional details are unavailable.

##### Is this the official Inter Cars website?

No. This is an Apify Actor that reads public product pages from IC24.UK, Inter Cars' UK storefront. It does not place orders or manage purchases.

##### Does it cover other Inter Cars stores or keep price history?

No. It covers current public IC24.UK products. It does not provide built-in history, change detection, or conclusions about removed products.

### 📝 Changelog

**v0.0** (06-10-2026)

- Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~intercars/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [Google Shopping Scraper - Prices & Offers](https://apify.com/maximedupre/google-shopping-offers-scraper): compare part prices and merchants across public Shopping offers.
- [Amazon Price Tracker](https://apify.com/maximedupre/amazon-price-tracker): collect current Amazon product prices for parts research.
- [Google Shopping Ads Scraper](https://apify.com/maximedupre/google-shopping-ads-scraper): research paid product ads for automotive keywords.
- [Inter Cars Scraper](https://apify.com/natanielsantos/inter-cars-scraper): explore another IC24.UK product collection tool.
- [IC24.UK Auto Parts Scraper: Exact Stock & Cross-Reference Data](https://apify.com/getascraper/ic24-uk-auto-parts-scraper): explore another IC24.UK tool for stock and cross-reference research.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `discoveryMethod` (type: `string`):

Search IC24.UK with terms, or read products from product and listing links.

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

Enter one or more terms to search on IC24.UK. All terms use the same filters below.

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

Add IC24.UK product, category, manufacturer, filtered listing, or search-result links. Product links read those products. Listing links find products in the listing.

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

Keep discovered products from these manufacturers or brands. Applies to Search terms and listing links in Links. Direct product links are not filtered. Leave empty to allow all brands.

## `inStockOnly` (type: `boolean`):

Keep discovered products only when the source shows current stock. Applies to Search terms and listing links in Links. Direct product links are not filtered.

## `minimumStock` (type: `integer`):

Keep discovered products only when the source shows at least this many units. Products with unknown quantities are excluded. Applies to Search terms and listing links in Links. Direct product links are not filtered. Leave blank for no quantity filter.

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

Stop after this many products. Applies to both methods. Leave blank to return all available results until the source is exhausted.

## Actor input object example

```json
{
  "discoveryMethod": "searchTerms",
  "searchTerms": [
    "oil filter"
  ],
  "inStockOnly": false,
  "maxItems": 10
}
```

# Actor output Schema

## `products` (type: `string`):

Open the products collected by this 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 = {
    "discoveryMethod": "searchTerms",
    "searchTerms": [
        "oil filter"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/intercars").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 = {
    "discoveryMethod": "searchTerms",
    "searchTerms": ["oil filter"],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/intercars").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 '{
  "discoveryMethod": "searchTerms",
  "searchTerms": [
    "oil filter"
  ],
  "maxItems": 10
}' |
apify call maximedupre/intercars --silent --output-dataset

```

## MCP server setup

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

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/ygO30ySRv3NRgpevl/builds/ib7xOxXVVQXiyE1GU/openapi.json
