# Used Car Deal Finder AI: mobile.de Qualified Car Deals, 10 Free (`rich_minds/used-car-deal-finder-ai`) Actor

First 10 qualified car deals free. Used car deal finder: ranks mobile.de cars (or any site's rows) vs similar cars, flags risks, drafts the seller message. MCP & AI agent ready. Pay per qualified deal. Free demo on any plan; live search runs on your Apify account, any plan that runs Store Actors.

- **URL**: https://apify.com/rich_minds/used-car-deal-finder-ai.md
- **Developed by:** [Rich Minds](https://apify.com/rich_minds) (community)
- **Categories:** E-commerce, Automation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 qualified car deal (rules only)s

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Used Car Deal Finder AI: mobile.de Qualified Car Deals, 10 Free

**New underpriced mobile.de cars, ranked with risks flagged, in your inbox every week.**

⚡ First **10 qualified car deals free** · 💵 **≈ $0.022 per qualified car deal all in**, the mobile.de scan on your account included — $0.006 of it is ours · 🤖 **$0.03** per car with AI + tokens, on plans with model access or your key · ⏱️ demo in seconds

![One row per qualified car deal — price, % under market, margin, score, risk flags and the reason in one line](https://api.apify.com/v2/key-value-stores/n6vWxqgj72x5u5kbN/records/shortlist.svg)

> **Try it in 30 seconds.** Click **Try it** — the form is pre-filled with a free demo of 12 sample cars. Cars that fail
> your filters cost nothing here.
> → [What a run costs](#-pricing--what-a-run-really-costs) · [What the AI adds](#-what-the-ai-tier-adds) · [Run it weekly](#-run-it-weekly)

### ⚡ At a glance

| | |
|---|---|
| **What you get** | A ranked sheet of mobile.de cars priced under comparable cars: % under market, margin estimate, risk flags, a first message to the seller |
| **You provide** | A mobile.de search link (or just a make like BMW) and, if you like, what you want to buy in plain words |
| **Output** | A ranked sheet (Excel, CSV, Google Sheets) plus an e-mail digest of what is new each run |
| **Typical run** | 200 listings → ≈ 10 qualified car deals (1 in 20, estimate — not yet measured on a live search); the demo scores 12 sample cars in under a second |
| **Cost of that run** | ≈ $0.23 rules only · ≈ $0.50 with the AI — ≈ $0.022 per car all in rules only, the mobile.de scan on your account included. Your first 10 qualified cars are free |
| **Free tier** | First 10 qualified car deals per account |
| **Keys / setup** | 🔑 No API key where your Apify plan includes model access — otherwise your own Gemini / Groq key (a free key gives 1–3 AI verdicts per run, a paid key assesses every car) |
| **Which plan** | Free demo and your own list ([ready rows](https://api.apify.com/v2/key-value-stores/n6vWxqgj72x5u5kbN/records/list-template.json)): any plan · live search: a plan that runs Store Actors (else 0 cars, nothing charged) |
| **Works with** | Schedules and deal alerts every half hour, webhooks, Google Sheets, Slack, Microsoft Teams, Google Chat, Discord, Telegram, Make / n8n / Zapier, MCP & AI agents |

### 🎯 What this Actor does

A used car deal finder for mobile.de — or any car site (AutoScout24, Kleinanzeigen) through rows you paste in `list` mode: it ranks every car against the comparable cars of the same search, drafts the seller message, and charges only for cars that pass your filters.

- **Price against the market, not a guess.** Each car vs the comparable cars of the same search (same make and model, ±2 years, similar mileage, same fuel): median, % under market, margin estimate. Under 30 cars loaded, the status warns the median is thin.
- **Risks read for you.** Accident, export-only, rental use, defects and missing HU, flagged from the listing and the German or English seller text — with the quoted sentence when the AI reads it.
- **A message ready to send.** One short first message in the listing's language, with one specific question.
- **Only new cars, and price drops.** A car you already received is never charged twice — unless its price fell 5 % or more since.
- **Search from a make.** No link? Type BMW, Audi, Mercedes-Benz, Volkswagen, Opel, Ford, Porsche, Škoda or SEAT and the search is built.

### 🚀 How to use it

1. **Click `Try it`** — the form is pre-filled with the free demo on 12 sample cars; it works as is.
2. **Type a make** ("Car make") or paste your mobile.de search link, and what you want to buy. Your search replaces the sample and runs live on your Apify account, capped by "Max source spend". Leave "AI assessment" on: your first 5 cars get live AI verdicts on any plan; all 10 free ones with Apify model access or a paid own key.
3. **Press Start and open the dataset** — qualified cars land best-first; the Outreach view holds the first message.
4. **Schedule it weekly** (Actions → Schedule) with your address in "E-mail me the new qualified car deals" — only new cars and price drops are delivered and charged.

![Outreach view — who to contact, the seller, the first message in German and the risk flags](https://api.apify.com/v2/key-value-stores/n6vWxqgj72x5u5kbN/records/outreach.svg)

#### 📦 Already scraping mobile.de? Qualify your mobile.de scraper data

Pick **dataset** as the source and paste your last scraper run's dataset ID into **Dataset ID** — no second scrape, you pay only for the qualified cars. After every scrape: the chained-run recipe under Integrations.

📚 **Learn more:** [Step-by-step tutorial — how to find underpriced cars on mobile.de with this Actor](https://api.apify.com/v2/key-value-stores/n6vWxqgj72x5u5kbN/records/tutorial.html)

### 🆚 Why this instead of running the scraper yourself?

| | [`memo23/mobile-de-scraper`](https://apify.com/memo23/mobile-de-scraper) · 101 users / 30 days | **Used Car Deal Finder AI** |
|---|---|---|
| **Your time per 100 car deals** | ≈ 11 h screening 2,000 rows + ≈ 10 h vetting 100 cars (estimate: 20 s per row, 6 min per car) | ≈ 0 h screening — ranked, reasoned, first message drafted |
| **What you pay for** | every *row scraped*: accident, export and overpriced cars | only *qualified car deals* — junk costs **$0 here** (the scan is billed on your account, capped) |
| **Same 100 usable car deals, all in** | ≈ $1.61 for 2,000 raw rows (2,000 × $0.0008 + $0.005) — and you still sort them | 100 ranked, explained cars: $2.21 rules only ($1.61 scan + 100 × $0.006) · $4.91 with the AI (+ 100 × $0.03 + 100 × ≈ $0.003 tokens) |
| **Repeat runs** | the same rows again next week | only new cars and price drops |

#### vs other mobile.de scrapers and deal finders

| Store listing read 2026-10-04 | `3x1t/mobile-de-scraper-ppr` (150 users / 30 days) | `blackfalcondata/mobile-de-scraper` (115) | `ivanvs/mobile-de-scraper` (56) | **This Actor** |
|---|---|---|---|---|
| Your time per 100 car deals | ≈ 21 h | ≈ 21 h | ≈ 21 h | ≈ 0 h screening |
| What you get | raw rows; 43 of 50,491 runs failed | raw rows; tracks price changes | raw rows | each car scored, risks, message |
| 100 usable car deals, all in | ≈ $3.00 + sorting by hand | ≈ $1.19 + sorting by hand | ≈ $3.00 + sorting by hand | 100 ranked cars, junk $0: $2.61 / $5.91 |
| Price | $0.0015 per result + $0.002 start | $0.00059 per result + $0.005 start | $0.0015 per result | $0.006 / $0.03 per qualified car deal |

| Other used-car deal finders (read 2026-10-17) | What they cover · price per row | mobile.de? |
|---|---|---|
| `swerve/il-car-deals` | Israel (Yad2) deal scores · $0.005 | no |
| `ahmed_jasarevic/willhaben-scraper` · `unitbytes/offerup-scraper` | Austria / US raw rows · $0.00085 / $0.0008 | no |
| `thomasthinks/kijiji-deal-finder` · `constructive_calm/gulf-used-car-scraper` · `outspoken_strategy/google-maps-lead-finder` | Canada · the Gulf · Google Maps contacts | no |

**Free tool you already use:** mobile.de saved searches and price rating badge — free and rated over the full market, so it wins there; it has no API, schedule, margin estimate or seller-text read.

### 💵 Pricing — what a run really costs

Pay per result: **one event per qualified car deal, nothing else.**

| Event | When it is charged | Price |
|---|---|---|
| `free-tier` | your first 10 qualified car deals on this Actor, in any mode | **$0.00** |
| `qualified-car-deal-basic` | AI off — fields, market baseline, flags, rule score, message template | **$0.006** |
| `qualified-car-deal-ai` | AI on — plus the risk read with quotes, the score verdict, the reason, the seller message | **$0.03** |

**One free tier:** your first 10 qualified car deals, whatever the tier. **The mobile.de scan runs on your Apify account** (≈ $0.0008 per listing plus $0.005 start, capped by "Max source spend"). **Never charged by us:** cars below the minimum score, failing a filter, without a market baseline, on your exclude list or already received.

**How that compares** — $0.006 is 1.4× the $0.00425 median of the Store search this card sits in (4× one raw mobile.de row, $0.0015), but one qualified car deal replaces ≈ 20 raw rows — $0.0003 per raw-row equivalent; the AI tier carries the premium.

**Worked example** — 200 listings → ≈ 10 qualified (estimate): scan $0.17 on your account + 10 × $0.03 + 10 × ≈ $0.003 tokens = **≈ $0.50 with the AI, ≈ $0.05 per qualified car deal**; rules only ≈ $0.23, ≈ $0.023 per car.

**At volume** — a reseller, 5 searches × 300 listings weekly: ≈ $1.23 scan + ≈ 25 new cars × $0.033 → **≈ $2.06 a week, ≈ $9 a month** (estimate).

**AI tier, all in:** ≈ $0.033 per qualified car deal ($0.03 here + ≈ $0.003 tokens via Apify or your own key) — 5.5× the basic price.

### 🤖 What the AI tier adds

AI **off** gives the price gap, flags, a rule score and a template message:

```json
{"name": "BMW 320d Touring Aut. Navi Xenon, Privatverkauf", "ruleScore": 83, "score": 83, "label": "hot",
 "assessedBy": "rules", "flags": ["well_below_market", "price_rating_agrees"], "aiModel": null}
```

AI **on** (`qualified-car-deal-ai`, $0.03) — the same car, as the AI example run of 2026-10-17 wrote it with an own Gemini key (12 sample cars, `aiModel` verbatim):

```json
{"name": "BMW 320d Touring Aut. Navi Xenon, Privatverkauf", "fitScore": 93, "score": 93, "ruleScore": 83,
 "label": "hot", "assessedBy": "ai",
 "dealReason": "22.1% under market median (€19,250), 99,500 km, 2018 model, very good price rating, 7 comparables.",
 "scoreReasons": ["22.1% under market median (€19,250)", "Clean history and accident-free (1st hand)", "Valid HU until 03/2027"],
 "riskFlags": [], "riskSeverity": "low", "messageLanguage": "de",
 "generatedText": "Hallo, ich habe Interesse an Ihrem BMW 320d Touring für 14.990 €. Ist das Fahrzeug noch verfügbar und kann ich kurzfristig einen Besichtigungstermin vereinbaren?",
 "recommendedNextStep": "Call the seller to confirm vehicle availability and arrange a prompt viewing.",
 "aiModel": "google:gemini-3.5-flash-lite"}
```

On the run's rental car it quoted the sentence behind its flag; the model moves the rule score by at most 15 points. Reading the German text and writing to the seller takes ≈ 6 minutes per car by hand (estimate based on reading 3 sample cars, 2026-10-04).

**Try the AI on any plan:** the demo shows labelled sample AI verdicts; your first real search gets **5 live AI verdicts on us** — then a free Gemini key ([aistudio.google.com/apikey](https://aistudio.google.com/apikey)) assesses a few cars per run, a paid Gemini / Groq key every car.

### ⚙️ Input

<details><summary>Input options — the fields a buyer decides on (35 on the form, the rest API only)</summary>

**Quick starts** — search: `{"make": "BMW", "maxPrice": 25000}` · your rows: `{"sourceMode": "list", "itemsList": [{"title": "BMW 320d", "priceEur": 18900}]}`. Every other form field: `make`, `preset`, `notifyEmail`, `model`, `maxPrice`, `minYear`, `maxMileageKm`, `fuel`, `sellerType`, `excludeAccident`, `requireBaseline`, `targetFlags`, `suppressionList`, `outreachLanguage`, `offerPct`, `includeSellerContact`, `llmProvider`, `llmModel`, `llmApiKey`, `dedupeAcrossRuns`, `dedupeTtlDays`, `historyDatasetName`, `datasetId`, `itemsList`, `dedupeStoreName`. API only: `minComparables`, `autoSwitchToLive`, `discoveryActorId`, `discoveryInput`, webhook details (`webhookUrl`, `webhookHeaders`, `webhookBatchSize`, `webhookSecret`), the per-service alert URLs and source tuning.

| Field | Type | Default | What it does |
|---|---|---|---|
| `searchUrls` | string\[] | — | mobile.de search links or dealer pages; none: `make` builds the search; nothing at all: the free demo |
| `goalDescription` | string | — | What you want to buy; the AI scores every car against it |
| `minScore` | 0–100 | `50` | Decides what you pay: below it = not delivered, not charged |
| `maxQualified` | integer | `100` | Hard cap on output (and on what we charge) |
| `maxDiscoveryChargeUsd` | number | `0.5` | Stops the scraper once it cost this much on your account |
| `maxListings` | integer | `200` | Listings to scan: ≈ $0.0008 each on your account |
| `minUnderMarketPct` | number | `8` | % under the median of comparable cars a car needs |
| `enableAi` | boolean | `true` | AI assessment on / off |
| `sendAlertsTo` | string | — | Alert URLs, one per line — routed by address |
| `sourceMode` | `actor` | `dataset` | `list` | `actor` | `{}` runs the free demo; the form starts on the `list` demo; the mode you choose always runs |

</details>

Flags for `targetFlags` (`well_below_market`, `below_market`, `accident_hint`, `export_only` and more) and every field of a row: [API reference](https://api.apify.com/v2/key-value-stores/n6vWxqgj72x5u5kbN/records/api-reference.md).

### 📤 Output

One dataset item per qualified car deal — export as JSON, CSV or Excel, or stream it to a webhook. Views: `Shortlist`, `Outreach` (contact route, seller, message), `Market check`, `Risk check` and `Score breakdown`.

<details><summary>Example row from the free demo (rules only, AI off)</summary>

Further fields: `variant`, `firstRegistration`, `powerHp`, `powerKw`, `ccm`, `emissionClass`, `bodyType`, `color`, `previousOwners`, `huStatus`, `isNew`, `accidentFree`, `roadworthy`, `currentlyDamaged`, `isDamageCase`, `sellerName`, `sellerCity`, `sellerPhone`, `sellerRating`, `sellerEmail`, `sellerWebsite`, `city`, `postalCode`, `state`, `lat`, `lon`, `priceDropFromLastSeen`, `features`, `imageUrls`, `riskEvidence`, `targetFlagsMatched`, `scoreReasons`, `assessedBy`, `billedAs`, `scrapedAt` (the car as the listing states it) and `priceNetEur`, `priceNegotiable`, `mobileDePriceRating` (net price, negotiable flag, mobile.de's own rating) — `null` when the listing gives none.

```json
{
  "itemId": "4982201032a6", "name": "BMW 320d Touring Aut. Navi Xenon, Privatverkauf",
  "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104007", "listingId": "389104007",
  "make": "BMW", "model": "320d", "year": 2018, "mileageKm": 99500, "fuel": "diesel", "priceEur": 14990,
  "contactRoute": "listing: https://suchen.mobile.de/fahrzeuge/details.html?id=389104007",
  "comparableCount": 7, "marketMedianEur": 19250, "underMarketPct": 22.1, "marginEstimateEur": 4260,
  "flags": ["well_below_market", "price_rating_agrees"],
  "riskFlags": [], "ruleScore": 83, "score": 83, "label": "hot", "fitScore": null, "aiModel": null,
  "assessedBy": "rules", "chargedEvent": "demo", "dedupeKey": "id:389104007"
}
```

</details>

**Which score to use:** sort by `score`; `ruleScore` is the rule part and `fitScore` the AI's — threshold and trend across runs on `ruleScore`; `assessedBy` says which scale `score` is on. The Score breakdown view has the parts. `url` is the field to map.

**Upsert key:** `dedupeKey` (`id:` + the mobile.de listing id) — one car is one row however many runs find it; `itemId` is a hash of it.

A **`DIGEST`** record ("vs last run: qualified 41 → 55, hot 5 → 9" and the top 10) and a client-ready **`REPORT`** page (`OUTPUT.reportUrl`) sit next to `OUTPUT` — the run record (`RUN_SUMMARY` its older name) with the funnel and `outcome`; a failed source sets `sourceError`, an unavailable AI `aiError`.

⭐ **Found it useful? A review on the Store helps others find it.**

### 🔁 Run it weekly

1. **Open the saved task and click Schedule** after your first real run (`OUTPUT.scheduleTaskUrl`), your address in `notifyEmail`: every run with new cars e-mails the digest with the trend vs the last run.
2. Leave "Never output the same qualified car deal twice" on: the next run charges **only what is new** — plus cars whose price fell 5 % or more. A second link keeps the memory; each client gets its own `dedupeStoreName`. A car charged under another search of the same memory comes as `already-charged`, never charged twice.
3. Paste a Slack, Teams, Google Chat or Discord channel webhook — or your Telegram bot's send link — into **Send alerts to** (`sendAlertsTo`, one per line, detected from the address): the digest lands in your channel; any other https URL gets the rows as JSON. For Google Sheets: the [ready tracker sheet](https://api.apify.com/v2/key-value-stores/n6vWxqgj72x5u5kbN/records/tracker.csv) (`dedupeKey` first).
4. `OUTPUT.history` and the `REPORT` page show every run; a scheduled run scans twice the listings and says when it fills its cap; `historyDatasetName` keeps a running log; `dedupeTtlDays` re-delivers after N days (0 = never).

Weekly cost is the new cars only: 5 searches × 300 listings → ≈ 25 new cars a week after week 1 ≈ **$2.06 a week** with the AI, scan included (estimate until a scheduled run measures week 2).

#### ⚡ Deal alerts every half hour

Schedule your task **every 30 minutes** with "Minimum score" `70`, "Max listings to scan" `50` and **Send alerts to**: each run posts **only new hot cars**; a 50-listing scan costs ≈ $0.045 on your account.

#### 🎯 Try it for your niche

Pick one in **Start from a ready niche search** and press Start (your own values win). Not yet measured live, so each caps its first run at 150 listings and $0.15.

| Niche | What it looks for | Start |
|---|---|---|
| Diesel BMW estates under 25,000 EUR | BMW, diesel, 2017+, under 160,000 km, ≥ 10 % under market | preset `bmw-diesel-estates` |
| Private-seller bargains under 10,000 EUR | private sellers only, 2012+, ≥ 12 % under market | preset `private-seller-bargains` |
| Electric cars from dealers under 30,000 EUR | electric, dealers, 2020+, under 80,000 km | preset `electric-dealer-stock` |

### 🔌 Integrations, automation and API

#### Run outcomes

<details><summary>Run outcomes — what your integration sees</summary>

| Outcome | Run status | `OUTPUT` | Charged? |
|---|---|---|---|
| Success · nothing matched | SUCCEEDED | `outcome: ok` · `outcome: empty`, `qualified: 0` | per qualified car deal · no |
| Your plan cannot run the source Store Actor | SUCCEEDED — the same for the Console, the API and a schedule; check `OUTPUT.ok` | `ok: false`, `outcome: source_refused`, `sourceError`, `sourceRefused: "plan"` | no |
| Source failed (crash, timeout, renamed output fields) · Source partial | FAILED · SUCCEEDED | `ok: false`, `outcome: source_failed`, `sourceError` · `sourceStatus` (`partial: true`) | no · per qualified car deal |

</details>

- **After every mobile.de scraper run:** in the Integrations tab of `memo23/mobile-de-scraper` (or the scraper you use) add "Run succeeded → start this Actor" with `sourceMode: dataset`, `datasetId` = the finished run's `resource.defaultDatasetId` and `enableAi: false` — every scrape you already pay for is qualified automatically, rules only until you switch AI on.
- **Google Sheets / Slack** — one click from the **Integrations** tab.
- **AI agents / MCP** — every input is a plain typed field. **Free first call:** `{}` runs the demo, and `{"sourceMode": "list", "itemsList": [...]}` scores listings you already have; the snippets below run the **real search**, capped by `maxDiscoveryChargeUsd`.
- **Webhook and CRM** — any https URL in **Send alerts to** gets every car as JSON; for HubSpot / Pipedrive use a Make / Zapier step upserting on `dedupeKey`.

<details><summary>Webhook body, retries and signing</summary>

`webhookUrl` POSTs each car as `{"event": "car_deal.qualified", "car_deal": {…}, "runId": "…"}`; with `webhookBatchSize` > 1 one POST carries `car_deals.qualified` and a `car_deals` list. A 429 / 5xx is retried once; a POST that still fails never fails the run — its `dedupeKey`s are in `OUTPUT.webhook.failedKeys` and it is not re-sent next run. `webhookSecret` signs every body (`X-Signature: sha256=<HMAC>`).

</details>

**Minimal agent input** — the fields the job needs; every other input keeps its default. It turns the cross-run memory off, so the same question asked twice returns the top cars both times:

```json
{"searchUrls": ["https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&s=Car&vc=Car&ms=3500"], "goalDescription": "clean BMW diesel estates", "maxPrice": 25000, "maxQualified": 25, "maxDiscoveryChargeUsd": 0.5, "dedupeAcrossRuns": false}
```

<details><summary>Python and JavaScript snippets, MCP config</summary>

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("rich_minds/used-car-deal-finder-ai").call(
    run_input={
        # free first call instead: {} (the demo) or {"sourceMode": "list", "itemsList": [{"title": "BMW 320d", "priceEur": 18900}]}
        "sourceMode": "actor",
        "searchUrls": ["https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&s=Car&vc=Car&ms=3500&fuels=DIESEL"],
        "goalDescription": "Diesel BMW estates clearly under market, accident-free, under 150,000 km",
        "maxQualified": 25,
        "maxDiscoveryChargeUsd": 0.5,  # spend cap on your account
    },
    timeout_secs=3600,  # see "How long does a run take?"
    # build="0.1.5",  # pin a tested build number (Changelog)
)
out = client.key_value_store(run["defaultKeyValueStoreId"]).get_record("OUTPUT")["value"]
if out.get("sourceError"):  # a plan refusal ends SUCCEEDED with 0 rows
    raise RuntimeError(out["sourceError"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["name"], item["score"], item["label"], item["url"])
```

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('rich_minds/used-car-deal-finder-ai').call({
    // free first call instead: {} (the demo)
    sourceMode: 'actor',
    searchUrls: ['https://suchen.mobile.de/fahrzeuge/search.html?isSearchRequest=true&s=Car&vc=Car&ms=3500&fuels=DIESEL'],
    goalDescription: 'Diesel BMW estates clearly under market, accident-free, under 150,000 km',
    maxQualified: 25,
    maxDiscoveryChargeUsd: 0.5, // spend cap on your account
}, { timeout: 3600 /* , build: '0.1.5' — pin a tested build number */ });
const out = (await client.keyValueStore(run.defaultKeyValueStoreId).getRecord('OUTPUT')).value;
if (out.sourceError) throw new Error(out.sourceError); // a plan refusal ends SUCCEEDED with 0 rows
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((i) => [i.name, i.score, i.label, i.url]));
```

**MCP client** (Claude, ChatGPT): add `https://mcp.apify.com/?actors=rich_minds/used-car-deal-finder-ai` as Apify's MCP server URL.

</details>

**Which call runs what:** `{}` and the untouched form run the free demo (`OUTPUT.mode` `demo`); your link or make starts the capped live search; your `itemsList` runs `list`, a `datasetId` runs `dataset`.

#### List-mode rows

`sourceMode: "list"` runs on any Apify plan, no scraper run: export your saved cars from AutoScout24, Kleinanzeigen or a spreadsheet and map the columns to the keys of the ready template linked under At a glance.

<details><summary>List-mode rows — what a pasted listing needs</summary>

| Field | Needed? | What it enables |
|---|---|---|
| `title` | required | the row's title |
| `priceEur` | required | the price gap |
| `make`, `model`, `year`, `mileageKm`, `fuel` | optional | the market baseline (comparable cars) |
| `url`, `id`, `descriptionText`, `accidentFree`, `sellerType`, `priceRating` | optional | link and dedupe key, risk flags, mobile.de rating |

</details>

### 👥 Who is it for?

| You are… | You run it to… | Start with |
|---|---|---|
| A used-car reseller or flipper | find the 10 cars worth calling today, with price gap, risks and a message | the BMW diesel estates preset, then your own link |
| A small dealer buying from private sellers | spot private cars under comparable cars before others call | the private-seller bargains preset |
| An export trader (DE → NL / PL) | scan a make across Germany weekly, keep clean, under-market cars | a make like Audi + a maximum price |

### 🧠 How the AI works

Grounded, not generative: the model reads one car at a time and every claim is checked against the row.

<details><summary>What it sees, the grounding rules, the fallback</summary>

The model sees one car (numbers, the rules' baseline and flags, the first 1,500 characters of seller text) and never estimates a market price; a risk flag needs a quoted sentence, the score nudge is clamped to ±15. Default model `anthropic/claude-haiku-4.5`; with your own key `google:gemini-3.5-flash-lite` (or name an OpenAI, Anthropic or Groq model). Without a model the run keeps rule scores and the template message.

</details>

### 🔒 Data, compliance and limits

- Public listing data only — what mobile.de publishes in the ad. No login. Not affiliated with mobile.de. A private seller's name, phone and e-mail are dropped unless you switch it on (GDPR).
- Limits: mobile.de shows at most 2,000 results per link — split a big market into several links. EUR prices; Germany's mobile.de in this version. A median from too few cars is never shown as a market price. Keep your use within mobile.de's terms and applicable law (GDPR, UWG).

### ❓ FAQ

**How much will one run cost me?** The default 200-listing scan costs ≈ $0.17 on your Apify account (capped by "Max source spend", $0.50 in the form); each qualified car deal is $0.006 (rules) or $0.03 (AI) here, the first 10 free — ≈ $0.23 rules only, ≈ $0.50 with the AI for ≈ 10 cars (estimate).

<details><summary>Is this a mobile.de scraper or deal finder? How do I find underpriced cars? Used car arbitrage?</summary>

**Is this a mobile.de scraper?** It runs `memo23/mobile-de-scraper` on your account and adds the judging: price against comparable cars, risk flags, the message.

**Is this a mobile.de deal finder?** Yes — it ranks your search's cars by how far each is under comparable cars.

**How is this different from mobile.de's own price rating?** The free badge covers the whole market — it wins there. This adds a schedule, an API, the margin in euros, the seller-text read and the message.

**How do I find underpriced cars on mobile.de?** Paste a search link, keep "Min. gap under market" at 8 and press Start. `below_market` is right when its baseline has enough comparable cars; its measured precision on 50 known cars is dated 2026-10-18 in the roadmap.

**Does it work for used car arbitrage and buying cars in Germany?** Yes: every row has the resale margin estimate (median minus asking, before costs); the export-only and rental-use flags matter most to traders.

</details>

**How long does a run take?** The demo 0.1 s (measured); the rest are estimates dated 2026-10-18:

<details><summary>Run time per mode and the <code>timeoutSecs</code> to pass</summary>

| Mode | Time | `timeoutSecs` to pass |
|---|---|---|
| Free demo (12 sample cars) | 0.1 s measured | 120 |
| Your own listings, rules only | ≈ 1 s per 100 (estimate) | 300 |
| Live search, rules only | ≈ 1–3 min per 200 listings | 1800 |
| AI via Apify's model access | ≈ 5 s per car, 8 at a time (estimate) | 1800 |
| AI with a free own key (`byok`) | a few cars per run — the AI stops after 2 minutes of rate-limit waiting, the rest rule-scored | 600 |
| AI with a paid own key | not yet measured | 3600 |

With your own key the AI runs 2 calls at a time, one at a time after a rate limit. A free Gemini or Groq key allows about 10 requests per minute (the provider's published limit; our measurement per provider is dated 2026-10-18). Every run reports its phases in `OUTPUT.timing`.

</details>

**Do rule-scored cars use my free ones?** Yes, while the AI is unavailable — except the last 5, the AI reserve, kept so your first AI-assessed cars are free too.

**How do I send the messages safely?** By hand, a few a day from your own mobile.de account; no links or off-platform contact IDs in the first message. The AI's message leaves links out and never promises a price.

More questions, presets and a Make / Zapier recipe: API reference.

### 🧩 More Actors from the same developer

Same pay-per-qualified-result model, closest to this Actor's buyers first:

- **[eBay Sold Listings Comps AI](https://apify.com/rich_minds/ebay-sold-comps-ai)** — Price the parts, wheels and accessories of a flip before you buy: clean eBay sold comps and a max buy price.
- **[Facebook Ad Library Winning Ads Finder](https://apify.com/rich_minds/fb-ad-library-winning-ads)** — Your competitors' longest-running Facebook ads — hook, offer and angle broken down, one row each.
- **[Website Change Monitor](https://apify.com/rich_minds/website-change-monitor-ai)** — Every real change on your competitors' pages, explained, in your inbox every week.
- **[Amazon Bestsellers Scraper + AI](https://apify.com/rich_minds/amazon-product-finder-ai)** — New Amazon products worth sourcing — rising, beatable, never repeated — in your inbox every week.
- **[1688 Supplier Finder](https://apify.com/rich_minds/1688-supplier-finder-ai)** — New trusted 1688 factories for your product — costed and translated, in your inbox every week.

### 🆘 Support

Something missing or wrong? Open an issue on the Actor's page.

### 📝 Changelog

- **0.1.5** (2026-10-17) — One "Send alerts to" box for Slack, Teams, Google Chat, Discord, Telegram or any webhook — paste the link, the new deals land there; the form is shorter; A car you already paid for under another search comes through marked "already-charged" and is never billed twice; within hot / warm the AI-checked cars come first, and a "Score breakdown" view shows the rule and AI parts; Your own free Gemini key now works without typing a model name, the AI example on the page comes from a real run, and the ready niche searches cap their first run at $0.15.
- **0.1.4** (2026-10-04) — The title names mobile.de; the form says up front which plans the live search runs on; minimal example inputs; every output field named; a shorter page.
- **0.1.1–0.1.2** (2026-10-04) — first release: cars scored against comparable cars, risk flags, seller message, price-drop re-delivery, three ready searches, search from a make.

# Actor input Schema

## `make` (type: `string`):

Type a make, e.g. <code>BMW</code>, and press Start: the Actor builds the mobile.de search (BMW, Audi, Mercedes-Benz, Volkswagen, Opel, Ford, Porsche, Škoda, SEAT) and keeps only that make. Runs <code>memo23/mobile-de-scraper</code> on your Apify plan, capped by Max source spend — no Store Actors on your plan? Use list mode. Empty = the free demo.

## `goalDescription` (type: `string`):

Describe the cars you want to buy in plain words (make, body, mileage, what you resell for). The AI scores every car against this and says why. Leave empty to rank by price gap and condition alone.

## `preset` (type: `string`):

Pick a niche and press Start: it fills the search fields you left empty and runs the live search (spend-capped by <code>maxDiscoveryChargeUsd</code>). Your own values always win. <b>Custom</b> = fill the fields yourself.

## `minScore` (type: `integer`):

The field that decides what you pay: cars scoring below this are discarded and <b>not charged</b>. 50 keeps decent deals, 70 only the strong ones (hot).

## `maxQualified` (type: `integer`):

Hard cap on results — and the ceiling of what <b>this Actor</b> charges: at most this many × $0.03 with AI on (× $0.006 with AI off), e.g. 100 × $0.03; the source's own spend has its cap right below. The best-scoring qualified car deals are output first.

## `maxDiscoveryChargeUsd` (type: `number`):

Hard cap on what the source Actor run may charge your account in <b>actor</b> mode — $0.50 in the form and for an API or agent call that leaves it out, so a first real search can never cost more. Raise it for bigger searches.

## `enableAi` (type: `boolean`):

Score each qualified car deal against your goal, explain why, summarise it and generate text. <b>On = $0.03 per qualified car deal + AI tokens; off = $0.006</b> (rule-based flags and scores only). Your first 5 qualified car deals get live AI verdicts on any plan; every one with Apify model access or a paid own key.

## `notifyEmail` (type: `string`):

After every run with at least one new qualified car deal, the run's digest (how many are new, the top 10 with links) is e-mailed here through Apify's send-mail Actor. Schedule the run weekly (Actions → Schedule) and only the new qualified car deals come to your inbox — no Slack or Zapier needed. Never sent for the free demo.

## `searchUrls` (type: `array`):

Optional, for an exact search: a mobile.de results link built with your filters (one per line), or a dealer page (<code>home.mobile.de/\<dealer></code>). Runs <code>memo23/mobile-de-scraper</code> on your Apify plan — no Store Actors on your plan? Use list mode. Empty = the make above, or the free demo.

## `model` (type: `string`):

Keep only this model, e.g. <code>320d</code> (matches model and variant). Empty = all.

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

Gross price limit in euros. 0 = no limit. Also sent to mobile.de with a search link.

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

Oldest first-registration year to keep, e.g. <code>2018</code>. 0 = any year.

## `maxMileageKm` (type: `integer`):

Odometer limit in km. 0 = no limit.

## `fuel` (type: `array`):

Keep only these fuels. Empty = all fuels.

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

Private sellers, dealers or both. Rows that do not say who sells are kept only for <b>both</b>.

## `excludeAccident` (type: `boolean`):

On: a car mobile.de marks as having had an accident, currently damaged, a damage case or not roadworthy is dropped before any charge. Off: they are scored with a risk flag instead.

## `minUnderMarketPct` (type: `number`):

A car must be at least this many % cheaper than the median of comparable cars in your results to qualify. <b>Affects what you pay</b> — fewer, stronger deals at a higher value.

## `requireBaseline` (type: `boolean`):

On: a car without enough comparables qualifies only when mobile.de's own price rating says 'good price'; the rest is not charged. Off: cars without a baseline are scored on condition alone.

## `targetFlags` (type: `array`):

Only deliver cars that have at least one of these flags, and rank those with more of them higher. Leave empty to keep everything. An API call passes the flag names from the README's flag table, e.g. <code>well_below_market</code> (<code>wellBelowMarket</code> works too); an unknown name stops the run at once with the list of valid ones.

## `suppressionList` (type: `array`):

Titles, listing links or listing ids to never output. Excluded cars are skipped before any processing and never charged.

## `outreachLanguage` (type: `string`):

Language of the first message to the seller. <b>auto</b> follows the listing text (German by default).

## `offerPct` (type: `integer`):

0 = the message names no price offer. A number adds that % under the asking price as an offer.

## `includeSellerContact` (type: `boolean`):

Off (default, GDPR): a private seller's name, phone and e-mail are dropped — the listing link is the contact route. Dealers' business contacts are always kept when the listing shows them.

## `maxListings` (type: `integer`):

How many listings the source scrapes per run. <b>Affects what you pay</b>: ≈ $0.0008 per listing plus a $0.005 start on your Apify account, e.g. 200 listings ≈ $0.17. More listings = a better market baseline. A scheduled run scans twice this.

## `llmProvider` (type: `string`):

<b>Apify (no keys)</b> — the AI runs through Apify's built-in OpenRouter proxy; tokens are billed to your Apify account at OpenRouter's rates. <b>My own key</b> — use your OpenAI / Anthropic / Gemini / Groq key instead; a free-tier key assesses only a few qualified car deals per run — expect 1–3 AI checks (2 calls at a time, one after a rate limit, then the 3 borderline qualified car deals retried one by one) — and the rest keep their rule score; a paid Groq / Gemini key (billing on) assesses every qualified car deal.

## `llmModel` (type: `string`):

Leave empty for the default: <code>anthropic/claude-haiku-4.5</code> with Apify, <code>google:gemini-3.5-flash-lite</code> with your own key (a free Gemini key works as is). Apify mode takes an OpenRouter slug such as <code>openai/gpt-4.1-mini</code>; own-key mode takes <code>provider:model</code>, e.g. <code>anthropic:claude-haiku-4-5-20251001</code> for an Anthropic key.

## `llmApiKey` (type: `string`):

Required when <b>AI model access</b> is <i>My own API key</i>. Stored encrypted by Apify, never logged.

## `sendAlertsTo` (type: `string`):

Paste one or more URLs, one per line — the service is detected from the address: a Slack or Discord channel webhook, a Teams Workflows or Google Chat space webhook, your Telegram bot's send link (<code>https://api.telegram.org/bot\<token>/sendMessage?chat_id=@yourchannel</code>) or any other https URL (Zapier, Make, n8n, your CRM), which gets the qualified car deals as JSON. After every run with at least one new qualified car deal, the digest (how many are new, the top 10 with links) is posted there. Never sent for the free demo. Webhook headers, batching and signing: the API-only fields <code>webhookHeaders</code>, <code>webhookBatchSize</code>, <code>webhookSecret</code>.

## `dedupeAcrossRuns` (type: `boolean`):

Remembers every qualified car deal you were charged for (in a named key-value store on your account) and skips it in future runs.

## `dedupeTtlDays` (type: `integer`):

How long a delivered car stays remembered. 0 = never deliver or charge it again — a car that comes back is delivered again only when its price dropped ≥ 5 % since you last got it. A number of days also lets a relisted car reach you again after that many days.

## `historyDatasetName` (type: `string`):

Optional. Type a name (e.g. <code>used-car-deal-finder-ai-seen-log</code>) and every run appends its new qualified car deals with the date to that named dataset on your account — one list across months to connect to Google Sheets or your BI tool once. Empty = off. Costs nothing extra.

## `sourceMode` (type: `string`):

<b>Plan note:</b> the live search needs an Apify plan that can run Store Actors; on any other plan use <b>list</b> (your own rows, ready template in the README) — nothing is charged. <b>actor</b> — paste your mobile.de link in <b>Your mobile.de search link</b> and run <code>memo23/mobile-de-scraper</code> on your account, billed separately. <b>dataset</b> — an existing Apify dataset. <b>list</b> — records you paste in. <b>Bring your own data:</b> rows or a dataset ID, and you pay only for the analysis — the source Actor is never run. The mode you choose always runs as chosen; only the untouched sample records next to a search you typed switch to the live search (spend-capped). <code>{}</code> over the API runs the free demo — nothing charged.

## `datasetId` (type: `string`):

Only for <b>dataset</b> mode. Pick the dataset so the Actor is granted read access to it.

## `itemsList` (type: `array`):

Only for <b>list</b> mode. JSON array of mobile.de listings — the source Actor's rows, or objects with <code>title</code>, <code>priceEur</code>, <code>mileageKm</code>, <code>year</code>, <code>make</code>, <code>model</code>, <code>fuel</code> and optionally <code>url</code>, <code>descriptionText</code>, <code>accidentFree</code> (see the README's List-mode rows).

## `dedupeStoreName` (type: `string`):

Key-value store used for cross-run memory. Left at the default, the memory is kept per search (source and search terms): rewording <code>goalDescription</code> keeps it, so a scheduled run never re-delivers what you already have, and another search starts its own list. Running it for several clients on one account, type one name per client.

## `minComparables` (type: `integer`):

API only — hidden on the form. Comparable = same make and model, ±2 years, similar mileage, same fuel, inside this run. With fewer than this the median is not reported as a market price.

## `autoSwitchToLive` (type: `boolean`):

API only — hidden on the form. On (default): search terms typed next to the untouched sample records start the live search (spend-capped; <code>OUTPUT.switchedToLive</code> names them). Off: the mode you send is the mode that runs — the sample stays the free demo and the status names the terms it did not search. API pipelines that must never start a paid read on their own: send <code>false</code>.

## `discoveryActorId` (type: `string`):

API only — hidden on the form. Actor used in <b>actor</b> mode. Any Actor whose output has the fields listed in the README works.

## `discoveryInput` (type: `object`):

API only — hidden on the form. Only for <b>actor</b> mode, advanced. Extra input passed to the source Actor as-is (e.g. <code>moreResults</code>); anything here wins over the fields above. The live search runs that Store Actor on your Apify plan — if your plan cannot run Store Actors, paste your own listings in <b>list</b> mode (any plan); <b>dataset</b> only for a dataset you already have.

## `webhookUrl` (type: `string`):

API only — hidden on the form. Qualified car deals are POSTed here as JSON (Zapier, Make, n8n, your CRM). For Google Sheets / Slack you can also use Apify's built-in Integrations tab. Stored encrypted — Zapier / Make hook URLs carry their secret in the path.

## `webhookHeaders` (type: `object`):

API only — hidden on the form. Extra HTTP headers for the webhook, e.g. <code>{"Authorization": "Bearer …"}</code>. Stored encrypted by Apify, never logged.

## `webhookBatchSize` (type: `integer`):

API only — hidden on the form. 1 = one POST per qualified car deal the moment it is ready. Higher = one POST per N qualified car deals.

## `webhookSecret` (type: `string`):

API only — hidden on the form. Any random string. Every webhook POST then carries <code>X-Signature: sha256=\<HMAC-SHA256 of the raw body with this secret></code>, so your endpoint can verify it came from this Actor. Stored encrypted by Apify, never logged.

## `discoveryTimeoutSecs` (type: `integer`):

API only — hidden on the form. How long the source Store Actor may run before its partial results are used. Raise it when the status says the source stopped early.

## `slackWebhookUrl` (type: `string`):

API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Slack incoming-webhook URL for the digest.

## `discordWebhookUrl` (type: `string`):

API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Discord channel webhook URL for the digest.

## `teamsWebhookUrl` (type: `string`):

API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Teams Workflows webhook URL for the digest.

## `googleChatWebhookUrl` (type: `string`):

API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Google Chat space webhook URL for the digest.

## `telegramUrl` (type: `string`):

API only — hidden on the form, where <code>sendAlertsTo</code> takes it. The bot's sendMessage link with its chat_id.

## Actor input object example

```json
{
  "make": "",
  "goalDescription": "Diesel BMW estates priced clearly under market, accident-free, under 150,000 km — cars I can resell within a month.",
  "preset": "custom",
  "minScore": 50,
  "maxQualified": 100,
  "maxDiscoveryChargeUsd": 0.5,
  "enableAi": true,
  "model": "",
  "maxPrice": 0,
  "minYear": 0,
  "maxMileageKm": 0,
  "fuel": [],
  "sellerType": "both",
  "excludeAccident": true,
  "minUnderMarketPct": 8,
  "requireBaseline": true,
  "outreachLanguage": "auto",
  "offerPct": 0,
  "includeSellerContact": false,
  "maxListings": 200,
  "llmProvider": "apify",
  "dedupeAcrossRuns": true,
  "dedupeTtlDays": 0,
  "historyDatasetName": "",
  "sourceMode": "list",
  "itemsList": [
    {
      "id": "389104001",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104001",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Sport Line Navi LED",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 19490,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "96,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "03/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Brandl GmbH",
        "address2": "80331 München",
        "phones": [
          "+49 89 5550 101"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "80331 München",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Scheckheftgepflegt, Navi Professional, LED, Anhängerkupplung. Finanzierung möglich.</p>",
      "priceRating": "FAIR_PRICE"
    },
    {
      "id": "389104002",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104002",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Advantage Aut. Klimaaut.",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 18900,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "112,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "05/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Brandl GmbH",
        "address2": "80331 München",
        "phones": [
          "+49 89 5550 101"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "80331 München",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Automatik, Sitzheizung, PDC. HU/AU neu. Inzahlungnahme möglich.</p>",
      "priceRating": "FAIR_PRICE"
    },
    {
      "id": "389104003",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104003",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Luxury Line HUD",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 19950,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "101,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "02/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Kraft Automobile",
        "address2": "50667 Köln",
        "phones": [
          "+49 221 5550 202"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "50667 Köln",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Head-up-Display, Leder, Harman Kardon. Unfallfrei, scheckheftgepflegt.</p>",
      "priceRating": "FAIR_PRICE"
    },
    {
      "id": "389104004",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104004",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring M Sport Panorama",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 20490,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "88,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "09/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Kraft Automobile",
        "address2": "50667 Köln",
        "phones": [
          "+49 221 5550 202"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "50667 Köln",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>M Sportpaket, Panoramadach, 19 Zoll. Garantie 12 Monate.</p>",
      "priceRating": "INCREASED_PRICE"
    },
    {
      "id": "389104005",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104005",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Aut. AHK Navi",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 18490,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "118,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "01/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Meyer",
        "address2": "30159 Hannover",
        "phones": [
          "+49 511 5550 303"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "30159 Hannover",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Gepflegter Dienstwagen, Navi, Tempomat, AHK. Garantie möglich.</p>",
      "priceRating": "FAIR_PRICE"
    },
    {
      "id": "389104006",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104006",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Advantage LED Kamera",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 19250,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "104,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "04/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Meyer",
        "address2": "30159 Hannover",
        "phones": [
          "+49 511 5550 303"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "30159 Hannover",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Rückfahrkamera, LED, Sitzheizung vorn. Nichtraucherfahrzeug.</p>",
      "priceRating": "FAIR_PRICE"
    },
    {
      "id": "389104007",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104007",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Aut. Navi Xenon, Privatverkauf",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 14990,
        "currency": "EUR",
        "negotiable": true
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "99,500 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "03/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "1"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Private",
        "name": "Thomas K.",
        "address2": "85748 Garching",
        "phones": [
          "+49 170 5550 404"
        ],
        "rating": null
      },
      "location": {
        "city": "85748 Garching",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Scheckheftgepflegt, 1. Hand, HU neu, neue Bremsen. Privatverkauf, keine Garantie oder Rücknahme. Besichtigung nach Termin.</p>",
      "priceRating": "VERY_GOOD_PRICE"
    },
    {
      "id": "389104008",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104008",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Sport Line Aut.",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 16490,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "107,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "06/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Schulte",
        "address2": "44137 Dortmund",
        "phones": [
          "+49 231 5550 505"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "44137 Dortmund",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Hinweis: Das Fahrzeug wurde als Mietwagen genutzt. Navi, Klimaautomatik, Tempomat.</p>",
      "priceRating": "GOOD_PRICE",
      "priceDropFromLastSeen": 1200
    },
    {
      "id": "389104009",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104009",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Aut. Export Unfallfahrzeug",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 13800,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "108,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "05/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "abgelaufen"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": false,
      "currentlyDamaged": true,
      "roadworthy": false,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohandel Yildiz",
        "address2": "45127 Essen",
        "phones": [
          "+49 201 5550 606"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "45127 Essen",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Unfallschaden hinten rechts, nicht repariert. Nur Export oder Händler. Bastlerfahrzeug, Motor läuft unruhig.</p>",
      "priceRating": "VERY_GOOD_PRICE"
    },
    {
      "id": "389104010",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104010",
      "shortTitle": "Audi A4",
      "subTitle": "Avant 35 TDI S line Matrix-LED",
      "make": "Audi",
      "model": "A4",
      "price": {
        "value": 28900,
        "currency": "EUR",
        "negotiable": false,
        "net": 24286
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "45,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "07/2020"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "1"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Grey"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Audi Zentrum Süd",
        "address2": "70173 Stuttgart",
        "phones": [
          "+49 711 5550 707"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "70173 Stuttgart",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Sehr gepflegt, Matrix-LED, virtuelles Cockpit, Servicepaket bis 2027.</p>",
      "priceRating": "GOOD_PRICE",
      "contactEmail": "verkauf@audi-zentrum-sued.example",
      "contactWebsite": "https://www.audi-zentrum-sued.example"
    },
    {
      "id": "389104011",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104011",
      "shortTitle": "VW Golf",
      "subTitle": "VIII 2.0 TDI Life DSG",
      "make": "VW",
      "model": "Golf",
      "price": {
        "value": 21900,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "38,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "10/2021"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "110 kW (150 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Small Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Brandl GmbH",
        "address2": "80331 München",
        "phones": [
          "+49 89 5550 101"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "80331 München",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Garantie bis 2026, Navi, ACC, Spurhalteassistent.</p>"
    },
    {
      "id": "389104012",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104012",
      "shortTitle": "Skoda Octavia",
      "subTitle": "Combi 2.0 TDI Style",
      "make": "Skoda",
      "model": "Octavia",
      "price": {
        "value": 17400,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "91,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "11/2019"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "110 kW (150 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "abgelaufen"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Meyer",
        "address2": "30159 Hannover",
        "phones": [
          "+49 511 5550 303"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "30159 Hannover",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Fahrzeug ohne HU, Bremsen müssen gemacht werden.</p>"
    }
  ],
  "dedupeStoreName": "used-car-deal-finder-ai-seen",
  "minComparables": 5,
  "autoSwitchToLive": true,
  "discoveryActorId": "memo23/mobile-de-scraper",
  "webhookBatchSize": 1,
  "discoveryTimeoutSecs": 3600
}
```

# Actor output Schema

## `qualified` (type: `string`):

All qualified car deals as JSON, best-scoring first.

## `sheet` (type: `string`):

The same qualified car deals as a spreadsheet.

## `runSummary` (type: `string`):

JSON record with the funnel (loaded -> filtered -> AI-assessed -> qualified), per-reason skip counts, charged events by type, free-tier qualified car deals used and remaining, whether a budget limit was reached, webhook delivery counts and the dedupe store size.

# 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 = {
    "goalDescription": "Diesel BMW estates priced clearly under market, accident-free, under 150,000 km — cars I can resell within a month.",
    "maxDiscoveryChargeUsd": 0.5,
    "sourceMode": "list",
    "itemsList": [
        {
            "id": "389104001",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104001",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Sport Line Navi LED",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 19490,
                "currency": "EUR",
                "negotiable": false
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "96,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "03/2018"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Brandl GmbH",
                "address2": "80331 München",
                "phones": [
                    "+49 89 5550 101"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "80331 München",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Scheckheftgepflegt, Navi Professional, LED, Anhängerkupplung. Finanzierung möglich.</p>",
            "priceRating": "FAIR_PRICE"
        },
        {
            "id": "389104002",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104002",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Advantage Aut. Klimaaut.",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 18900,
                "currency": "EUR",
                "negotiable": false
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "112,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "05/2018"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Brandl GmbH",
                "address2": "80331 München",
                "phones": [
                    "+49 89 5550 101"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "80331 München",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Automatik, Sitzheizung, PDC. HU/AU neu. Inzahlungnahme möglich.</p>",
            "priceRating": "FAIR_PRICE"
        },
        {
            "id": "389104003",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104003",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Luxury Line HUD",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 19950,
                "currency": "EUR",
                "negotiable": false
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "101,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "02/2018"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Kraft Automobile",
                "address2": "50667 Köln",
                "phones": [
                    "+49 221 5550 202"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "50667 Köln",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Head-up-Display, Leder, Harman Kardon. Unfallfrei, scheckheftgepflegt.</p>",
            "priceRating": "FAIR_PRICE"
        },
        {
            "id": "389104004",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104004",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring M Sport Panorama",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 20490,
                "currency": "EUR",
                "negotiable": false
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "88,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "09/2018"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Kraft Automobile",
                "address2": "50667 Köln",
                "phones": [
                    "+49 221 5550 202"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "50667 Köln",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>M Sportpaket, Panoramadach, 19 Zoll. Garantie 12 Monate.</p>",
            "priceRating": "INCREASED_PRICE"
        },
        {
            "id": "389104005",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104005",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Aut. AHK Navi",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 18490,
                "currency": "EUR",
                "negotiable": false
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "118,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "01/2018"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Meyer",
                "address2": "30159 Hannover",
                "phones": [
                    "+49 511 5550 303"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "30159 Hannover",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Gepflegter Dienstwagen, Navi, Tempomat, AHK. Garantie möglich.</p>",
            "priceRating": "FAIR_PRICE"
        },
        {
            "id": "389104006",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104006",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Advantage LED Kamera",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 19250,
                "currency": "EUR",
                "negotiable": false
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "104,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "04/2018"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Meyer",
                "address2": "30159 Hannover",
                "phones": [
                    "+49 511 5550 303"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "30159 Hannover",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Rückfahrkamera, LED, Sitzheizung vorn. Nichtraucherfahrzeug.</p>",
            "priceRating": "FAIR_PRICE"
        },
        {
            "id": "389104007",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104007",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Aut. Navi Xenon, Privatverkauf",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 14990,
                "currency": "EUR",
                "negotiable": true
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "99,500 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "03/2018"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "1"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Private",
                "name": "Thomas K.",
                "address2": "85748 Garching",
                "phones": [
                    "+49 170 5550 404"
                ],
                "rating": null
            },
            "location": {
                "city": "85748 Garching",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Scheckheftgepflegt, 1. Hand, HU neu, neue Bremsen. Privatverkauf, keine Garantie oder Rücknahme. Besichtigung nach Termin.</p>",
            "priceRating": "VERY_GOOD_PRICE"
        },
        {
            "id": "389104008",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104008",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Sport Line Aut.",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 16490,
                "currency": "EUR",
                "negotiable": false
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "107,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "06/2018"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Schulte",
                "address2": "44137 Dortmund",
                "phones": [
                    "+49 231 5550 505"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "44137 Dortmund",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Hinweis: Das Fahrzeug wurde als Mietwagen genutzt. Navi, Klimaautomatik, Tempomat.</p>",
            "priceRating": "GOOD_PRICE",
            "priceDropFromLastSeen": 1200
        },
        {
            "id": "389104009",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104009",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Aut. Export Unfallfahrzeug",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 13800,
                "currency": "EUR",
                "negotiable": false
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "108,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "05/2018"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "abgelaufen"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": false,
            "currentlyDamaged": true,
            "roadworthy": false,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Autohandel Yildiz",
                "address2": "45127 Essen",
                "phones": [
                    "+49 201 5550 606"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "45127 Essen",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Unfallschaden hinten rechts, nicht repariert. Nur Export oder Händler. Bastlerfahrzeug, Motor läuft unruhig.</p>",
            "priceRating": "VERY_GOOD_PRICE"
        },
        {
            "id": "389104010",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104010",
            "shortTitle": "Audi A4",
            "subTitle": "Avant 35 TDI S line Matrix-LED",
            "make": "Audi",
            "model": "A4",
            "price": {
                "value": 28900,
                "currency": "EUR",
                "negotiable": false,
                "net": 24286
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "45,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "07/2020"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "1"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Grey"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Audi Zentrum Süd",
                "address2": "70173 Stuttgart",
                "phones": [
                    "+49 711 5550 707"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "70173 Stuttgart",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Sehr gepflegt, Matrix-LED, virtuelles Cockpit, Servicepaket bis 2027.</p>",
            "priceRating": "GOOD_PRICE",
            "contactEmail": "verkauf@audi-zentrum-sued.example",
            "contactWebsite": "https://www.audi-zentrum-sued.example"
        },
        {
            "id": "389104011",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104011",
            "shortTitle": "VW Golf",
            "subTitle": "VIII 2.0 TDI Life DSG",
            "make": "VW",
            "model": "Golf",
            "price": {
                "value": 21900,
                "currency": "EUR",
                "negotiable": false
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "38,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "10/2021"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "110 kW (150 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Small Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Brandl GmbH",
                "address2": "80331 München",
                "phones": [
                    "+49 89 5550 101"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "80331 München",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Garantie bis 2026, Navi, ACC, Spurhalteassistent.</p>"
        },
        {
            "id": "389104012",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104012",
            "shortTitle": "Skoda Octavia",
            "subTitle": "Combi 2.0 TDI Style",
            "make": "Skoda",
            "model": "Octavia",
            "price": {
                "value": 17400,
                "currency": "EUR",
                "negotiable": false
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "91,000 km"
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "11/2019"
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "110 kW (150 hp)"
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel"
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2"
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "abgelaufen"
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car"
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black"
                }
            ],
            "accidentFree": true,
            "currentlyDamaged": false,
            "roadworthy": true,
            "isNew": false,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Meyer",
                "address2": "30159 Hannover",
                "phones": [
                    "+49 511 5550 303"
                ],
                "rating": 4.6
            },
            "location": {
                "city": "30159 Hannover",
                "postalCode": "80331"
            },
            "htmlDescription": "<p>Fahrzeug ohne HU, Bremsen müssen gemacht werden.</p>"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("rich_minds/used-car-deal-finder-ai").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 = {
    "goalDescription": "Diesel BMW estates priced clearly under market, accident-free, under 150,000 km — cars I can resell within a month.",
    "maxDiscoveryChargeUsd": 0.5,
    "sourceMode": "list",
    "itemsList": [
        {
            "id": "389104001",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104001",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Sport Line Navi LED",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 19490,
                "currency": "EUR",
                "negotiable": False,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "96,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "03/2018",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Brandl GmbH",
                "address2": "80331 München",
                "phones": ["+49 89 5550 101"],
                "rating": 4.6,
            },
            "location": {
                "city": "80331 München",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Scheckheftgepflegt, Navi Professional, LED, Anhängerkupplung. Finanzierung möglich.</p>",
            "priceRating": "FAIR_PRICE",
        },
        {
            "id": "389104002",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104002",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Advantage Aut. Klimaaut.",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 18900,
                "currency": "EUR",
                "negotiable": False,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "112,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "05/2018",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Brandl GmbH",
                "address2": "80331 München",
                "phones": ["+49 89 5550 101"],
                "rating": 4.6,
            },
            "location": {
                "city": "80331 München",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Automatik, Sitzheizung, PDC. HU/AU neu. Inzahlungnahme möglich.</p>",
            "priceRating": "FAIR_PRICE",
        },
        {
            "id": "389104003",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104003",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Luxury Line HUD",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 19950,
                "currency": "EUR",
                "negotiable": False,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "101,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "02/2018",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Kraft Automobile",
                "address2": "50667 Köln",
                "phones": ["+49 221 5550 202"],
                "rating": 4.6,
            },
            "location": {
                "city": "50667 Köln",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Head-up-Display, Leder, Harman Kardon. Unfallfrei, scheckheftgepflegt.</p>",
            "priceRating": "FAIR_PRICE",
        },
        {
            "id": "389104004",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104004",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring M Sport Panorama",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 20490,
                "currency": "EUR",
                "negotiable": False,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "88,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "09/2018",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Kraft Automobile",
                "address2": "50667 Köln",
                "phones": ["+49 221 5550 202"],
                "rating": 4.6,
            },
            "location": {
                "city": "50667 Köln",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>M Sportpaket, Panoramadach, 19 Zoll. Garantie 12 Monate.</p>",
            "priceRating": "INCREASED_PRICE",
        },
        {
            "id": "389104005",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104005",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Aut. AHK Navi",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 18490,
                "currency": "EUR",
                "negotiable": False,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "118,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "01/2018",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Meyer",
                "address2": "30159 Hannover",
                "phones": ["+49 511 5550 303"],
                "rating": 4.6,
            },
            "location": {
                "city": "30159 Hannover",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Gepflegter Dienstwagen, Navi, Tempomat, AHK. Garantie möglich.</p>",
            "priceRating": "FAIR_PRICE",
        },
        {
            "id": "389104006",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104006",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Advantage LED Kamera",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 19250,
                "currency": "EUR",
                "negotiable": False,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "104,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "04/2018",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Meyer",
                "address2": "30159 Hannover",
                "phones": ["+49 511 5550 303"],
                "rating": 4.6,
            },
            "location": {
                "city": "30159 Hannover",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Rückfahrkamera, LED, Sitzheizung vorn. Nichtraucherfahrzeug.</p>",
            "priceRating": "FAIR_PRICE",
        },
        {
            "id": "389104007",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104007",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Aut. Navi Xenon, Privatverkauf",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 14990,
                "currency": "EUR",
                "negotiable": True,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "99,500 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "03/2018",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "1",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Private",
                "name": "Thomas K.",
                "address2": "85748 Garching",
                "phones": ["+49 170 5550 404"],
                "rating": None,
            },
            "location": {
                "city": "85748 Garching",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Scheckheftgepflegt, 1. Hand, HU neu, neue Bremsen. Privatverkauf, keine Garantie oder Rücknahme. Besichtigung nach Termin.</p>",
            "priceRating": "VERY_GOOD_PRICE",
        },
        {
            "id": "389104008",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104008",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Sport Line Aut.",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 16490,
                "currency": "EUR",
                "negotiable": False,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "107,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "06/2018",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Schulte",
                "address2": "44137 Dortmund",
                "phones": ["+49 231 5550 505"],
                "rating": 4.6,
            },
            "location": {
                "city": "44137 Dortmund",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Hinweis: Das Fahrzeug wurde als Mietwagen genutzt. Navi, Klimaautomatik, Tempomat.</p>",
            "priceRating": "GOOD_PRICE",
            "priceDropFromLastSeen": 1200,
        },
        {
            "id": "389104009",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104009",
            "shortTitle": "BMW 320d",
            "subTitle": "Touring Aut. Export Unfallfahrzeug",
            "make": "BMW",
            "model": "320d",
            "price": {
                "value": 13800,
                "currency": "EUR",
                "negotiable": False,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "108,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "05/2018",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "abgelaufen",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": False,
            "currentlyDamaged": True,
            "roadworthy": False,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Autohandel Yildiz",
                "address2": "45127 Essen",
                "phones": ["+49 201 5550 606"],
                "rating": 4.6,
            },
            "location": {
                "city": "45127 Essen",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Unfallschaden hinten rechts, nicht repariert. Nur Export oder Händler. Bastlerfahrzeug, Motor läuft unruhig.</p>",
            "priceRating": "VERY_GOOD_PRICE",
        },
        {
            "id": "389104010",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104010",
            "shortTitle": "Audi A4",
            "subTitle": "Avant 35 TDI S line Matrix-LED",
            "make": "Audi",
            "model": "A4",
            "price": {
                "value": 28900,
                "currency": "EUR",
                "negotiable": False,
                "net": 24286,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "45,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "07/2020",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "140 kW (190 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "1",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Grey",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Audi Zentrum Süd",
                "address2": "70173 Stuttgart",
                "phones": ["+49 711 5550 707"],
                "rating": 4.6,
            },
            "location": {
                "city": "70173 Stuttgart",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Sehr gepflegt, Matrix-LED, virtuelles Cockpit, Servicepaket bis 2027.</p>",
            "priceRating": "GOOD_PRICE",
            "contactEmail": "verkauf@audi-zentrum-sued.example",
            "contactWebsite": "https://www.audi-zentrum-sued.example",
        },
        {
            "id": "389104011",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104011",
            "shortTitle": "VW Golf",
            "subTitle": "VIII 2.0 TDI Life DSG",
            "make": "VW",
            "model": "Golf",
            "price": {
                "value": 21900,
                "currency": "EUR",
                "negotiable": False,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "38,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "10/2021",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "110 kW (150 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "03/2027",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Small Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Brandl GmbH",
                "address2": "80331 München",
                "phones": ["+49 89 5550 101"],
                "rating": 4.6,
            },
            "location": {
                "city": "80331 München",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Garantie bis 2026, Navi, ACC, Spurhalteassistent.</p>",
        },
        {
            "id": "389104012",
            "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104012",
            "shortTitle": "Skoda Octavia",
            "subTitle": "Combi 2.0 TDI Style",
            "make": "Skoda",
            "model": "Octavia",
            "price": {
                "value": 17400,
                "currency": "EUR",
                "negotiable": False,
            },
            "attributes": [
                {
                    "tag": "mileage",
                    "label": "Mileage",
                    "value": "91,000 km",
                },
                {
                    "tag": "firstRegistration",
                    "label": "First registration",
                    "value": "11/2019",
                },
                {
                    "tag": "power",
                    "label": "Power",
                    "value": "110 kW (150 hp)",
                },
                {
                    "tag": "fuel",
                    "label": "Fuel",
                    "value": "Diesel",
                },
                {
                    "tag": "numberOfPreviousOwners",
                    "label": "Number of vehicle owners",
                    "value": "2",
                },
                {
                    "tag": "hu",
                    "label": "HU",
                    "value": "abgelaufen",
                },
                {
                    "tag": "category",
                    "label": "Category",
                    "value": "Estate Car",
                },
                {
                    "tag": "color",
                    "label": "Colour",
                    "value": "Black",
                },
            ],
            "accidentFree": True,
            "currentlyDamaged": False,
            "roadworthy": True,
            "isNew": False,
            "contact": {
                "type": "Dealer",
                "name": "Autohaus Meyer",
                "address2": "30159 Hannover",
                "phones": ["+49 511 5550 303"],
                "rating": 4.6,
            },
            "location": {
                "city": "30159 Hannover",
                "postalCode": "80331",
            },
            "htmlDescription": "<p>Fahrzeug ohne HU, Bremsen müssen gemacht werden.</p>",
        },
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("rich_minds/used-car-deal-finder-ai").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 '{
  "goalDescription": "Diesel BMW estates priced clearly under market, accident-free, under 150,000 km — cars I can resell within a month.",
  "maxDiscoveryChargeUsd": 0.5,
  "sourceMode": "list",
  "itemsList": [
    {
      "id": "389104001",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104001",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Sport Line Navi LED",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 19490,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "96,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "03/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Brandl GmbH",
        "address2": "80331 München",
        "phones": [
          "+49 89 5550 101"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "80331 München",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Scheckheftgepflegt, Navi Professional, LED, Anhängerkupplung. Finanzierung möglich.</p>",
      "priceRating": "FAIR_PRICE"
    },
    {
      "id": "389104002",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104002",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Advantage Aut. Klimaaut.",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 18900,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "112,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "05/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Brandl GmbH",
        "address2": "80331 München",
        "phones": [
          "+49 89 5550 101"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "80331 München",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Automatik, Sitzheizung, PDC. HU/AU neu. Inzahlungnahme möglich.</p>",
      "priceRating": "FAIR_PRICE"
    },
    {
      "id": "389104003",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104003",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Luxury Line HUD",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 19950,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "101,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "02/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Kraft Automobile",
        "address2": "50667 Köln",
        "phones": [
          "+49 221 5550 202"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "50667 Köln",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Head-up-Display, Leder, Harman Kardon. Unfallfrei, scheckheftgepflegt.</p>",
      "priceRating": "FAIR_PRICE"
    },
    {
      "id": "389104004",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104004",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring M Sport Panorama",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 20490,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "88,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "09/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Kraft Automobile",
        "address2": "50667 Köln",
        "phones": [
          "+49 221 5550 202"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "50667 Köln",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>M Sportpaket, Panoramadach, 19 Zoll. Garantie 12 Monate.</p>",
      "priceRating": "INCREASED_PRICE"
    },
    {
      "id": "389104005",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104005",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Aut. AHK Navi",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 18490,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "118,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "01/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Meyer",
        "address2": "30159 Hannover",
        "phones": [
          "+49 511 5550 303"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "30159 Hannover",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Gepflegter Dienstwagen, Navi, Tempomat, AHK. Garantie möglich.</p>",
      "priceRating": "FAIR_PRICE"
    },
    {
      "id": "389104006",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104006",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Advantage LED Kamera",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 19250,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "104,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "04/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Meyer",
        "address2": "30159 Hannover",
        "phones": [
          "+49 511 5550 303"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "30159 Hannover",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Rückfahrkamera, LED, Sitzheizung vorn. Nichtraucherfahrzeug.</p>",
      "priceRating": "FAIR_PRICE"
    },
    {
      "id": "389104007",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104007",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Aut. Navi Xenon, Privatverkauf",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 14990,
        "currency": "EUR",
        "negotiable": true
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "99,500 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "03/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "1"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Private",
        "name": "Thomas K.",
        "address2": "85748 Garching",
        "phones": [
          "+49 170 5550 404"
        ],
        "rating": null
      },
      "location": {
        "city": "85748 Garching",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Scheckheftgepflegt, 1. Hand, HU neu, neue Bremsen. Privatverkauf, keine Garantie oder Rücknahme. Besichtigung nach Termin.</p>",
      "priceRating": "VERY_GOOD_PRICE"
    },
    {
      "id": "389104008",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104008",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Sport Line Aut.",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 16490,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "107,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "06/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Schulte",
        "address2": "44137 Dortmund",
        "phones": [
          "+49 231 5550 505"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "44137 Dortmund",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Hinweis: Das Fahrzeug wurde als Mietwagen genutzt. Navi, Klimaautomatik, Tempomat.</p>",
      "priceRating": "GOOD_PRICE",
      "priceDropFromLastSeen": 1200
    },
    {
      "id": "389104009",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104009",
      "shortTitle": "BMW 320d",
      "subTitle": "Touring Aut. Export Unfallfahrzeug",
      "make": "BMW",
      "model": "320d",
      "price": {
        "value": 13800,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "108,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "05/2018"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "abgelaufen"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": false,
      "currentlyDamaged": true,
      "roadworthy": false,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohandel Yildiz",
        "address2": "45127 Essen",
        "phones": [
          "+49 201 5550 606"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "45127 Essen",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Unfallschaden hinten rechts, nicht repariert. Nur Export oder Händler. Bastlerfahrzeug, Motor läuft unruhig.</p>",
      "priceRating": "VERY_GOOD_PRICE"
    },
    {
      "id": "389104010",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104010",
      "shortTitle": "Audi A4",
      "subTitle": "Avant 35 TDI S line Matrix-LED",
      "make": "Audi",
      "model": "A4",
      "price": {
        "value": 28900,
        "currency": "EUR",
        "negotiable": false,
        "net": 24286
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "45,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "07/2020"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "140 kW (190 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "1"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Grey"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Audi Zentrum Süd",
        "address2": "70173 Stuttgart",
        "phones": [
          "+49 711 5550 707"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "70173 Stuttgart",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Sehr gepflegt, Matrix-LED, virtuelles Cockpit, Servicepaket bis 2027.</p>",
      "priceRating": "GOOD_PRICE",
      "contactEmail": "verkauf@audi-zentrum-sued.example",
      "contactWebsite": "https://www.audi-zentrum-sued.example"
    },
    {
      "id": "389104011",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104011",
      "shortTitle": "VW Golf",
      "subTitle": "VIII 2.0 TDI Life DSG",
      "make": "VW",
      "model": "Golf",
      "price": {
        "value": 21900,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "38,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "10/2021"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "110 kW (150 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "03/2027"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Small Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Brandl GmbH",
        "address2": "80331 München",
        "phones": [
          "+49 89 5550 101"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "80331 München",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Garantie bis 2026, Navi, ACC, Spurhalteassistent.</p>"
    },
    {
      "id": "389104012",
      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=389104012",
      "shortTitle": "Skoda Octavia",
      "subTitle": "Combi 2.0 TDI Style",
      "make": "Skoda",
      "model": "Octavia",
      "price": {
        "value": 17400,
        "currency": "EUR",
        "negotiable": false
      },
      "attributes": [
        {
          "tag": "mileage",
          "label": "Mileage",
          "value": "91,000 km"
        },
        {
          "tag": "firstRegistration",
          "label": "First registration",
          "value": "11/2019"
        },
        {
          "tag": "power",
          "label": "Power",
          "value": "110 kW (150 hp)"
        },
        {
          "tag": "fuel",
          "label": "Fuel",
          "value": "Diesel"
        },
        {
          "tag": "numberOfPreviousOwners",
          "label": "Number of vehicle owners",
          "value": "2"
        },
        {
          "tag": "hu",
          "label": "HU",
          "value": "abgelaufen"
        },
        {
          "tag": "category",
          "label": "Category",
          "value": "Estate Car"
        },
        {
          "tag": "color",
          "label": "Colour",
          "value": "Black"
        }
      ],
      "accidentFree": true,
      "currentlyDamaged": false,
      "roadworthy": true,
      "isNew": false,
      "contact": {
        "type": "Dealer",
        "name": "Autohaus Meyer",
        "address2": "30159 Hannover",
        "phones": [
          "+49 511 5550 303"
        ],
        "rating": 4.6
      },
      "location": {
        "city": "30159 Hannover",
        "postalCode": "80331"
      },
      "htmlDescription": "<p>Fahrzeug ohne HU, Bremsen müssen gemacht werden.</p>"
    }
  ]
}' |
apify call rich_minds/used-car-deal-finder-ai --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rich_minds/used-car-deal-finder-ai"
        }
    }
}
```

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/fHbZ9k3XqySpsTe01/builds/weeh3Rxy2H6uaTXMW/openapi.json
