Kia Europe Pricing Scraper
Pricing
from $5.00 / 1,000 results
Kia Europe Pricing Scraper
Scrapes official Kia car prices across European country sites: model, variant, propulsion, local currency and list price, plus trim, power and battery data where the market publishes it.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Rastriq — Structured data from the world
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Kia Europe Pricing Scraper: Official Kia Prices by Market, Model and Trim
Kia Europe Pricing Scraper extracts official Kia list prices from Kia's European market sites and returns them as structured rows: country, currency, model, powertrain, price and, where the source provides it, trim-level and leasing data. It is built for pricing teams, dealers, leasing companies, analysts and journalists who need to compare Kia prices across markets without opening 22 websites by hand. Try it first on one market (the default is Spain, es-es), then scale to all markets.
Why scrape Kia prices across Europe?
Kia publishes prices country by country, in local currencies and in different structures. Collecting them manually is slow and goes stale quickly. With Kia Europe Pricing Scraper you can:
- Benchmark pricing between countries and spot which markets list a model above or below the others.
- Track price changes over time by scheduling runs and comparing
priceandscraped_at. - Feed pricing dashboards or BI tools with one consistent schema for every market.
- Compare propulsion types (petrol, mild hybrid, electric) through the
propulsionfield. - Monitor leasing offers when the source exposes monthly prices.
Who uses it? Pricing and product managers at competing brands use it to position their own range against Kia in each country. Dealers and importers use it to check how local prices compare with neighbouring markets. Leasing and fleet teams use the optional monthly prices as a reference. Analysts and journalists use the dataset for price-gap studies and charts.
What data does Kia Europe Pricing Scraper extract?
Every dataset row is one model, or one trim x motorization when trim-level details are enabled. Fields come directly from the Actor's output; any field the source does not provide is returned as null.
| Group | Fields |
|---|---|
| Market | country, locale, currency, scraped_at |
| Model | model_name, model_code, body_type_code, variant, gnb_key, model_year, car_type, propulsion, ev6_gt |
| Price | price, price_formatted, is_net_price, net_price, msrp_before_discount, discount_amount |
| Trim and powertrain | variant_id, fsc_code, trim_name, powertrain_desc, engine_power_kw, ev_range_wltp_km, battery_kwh, dealer_stock_qty |
| Leasing | monthly_price, monthly_price_formatted |
| Price contract | price_tariff, price_offer, price_discount, price_tariff_available, price_level, price_vat_basis, net_price_calc, price_public_incentive, public_incentive_in, offer_condition, includes_registration_tax, includes_delivery, hidden, price_flags, variant_key (plus reserved offer_valid_until, offer_from, offer_up_to, price_components) |
Data quality note: in the sample rows below (Switzerland), the trim-level, discount and leasing fields are null because that market's source returned only model-level prices. Do not assume every market fills every field; filter on null in your own pipeline.
Price contract fields
Every row also carries the following fields. They are derived from the data the source already returns, they are present in every row (null where not applicable) and no pre-existing field changes.
| Field | Type | Meaning |
|---|---|---|
price_tariff | number or null | List price before any brand discount: price + discount_amount when the source publishes msrp_before_discount. null when the source publishes no list price. |
price_offer | number or null | Final brand price of the row (same value as price). null only when the source gives no price. |
price_discount | number or null | price_tariff - price_offer. 0 = no discount; null when price_tariff is null. |
price_tariff_available | boolean | false when the source does not publish a list price. |
price_level | string | offer when discount_amount > 0 (the legacy price is the discounted price), otherwise list. |
price_vat_basis | string | gross (includes VAT) or net (excludes VAT, rows with is_net_price = true). |
net_price_calc | number or null | price without VAT, computed with the statutory standard VAT rate of the country. Equals price when price_vat_basis is net. |
price_public_incentive | number or null | Public incentive associated with the row (Ireland: SEAI grant, 3500 EUR, electric cars). |
public_incentive_in | string or null | Where the incentive is already deducted. tariff = the published price is already net of it. |
offer_condition | string or null | Condition of the discount; unknown when there is a discount and the condition is not identifiable. null when there is no discount. |
offer_valid_until, offer_from, offer_up_to, price_components | null | Reserved for future use; currently always null. |
includes_registration_tax | string | yes, no, n.a. (no such tax in the country) or unknown. Per country, from published market information. |
includes_delivery | string | yes, no or unknown. Per country. |
hidden | boolean | true if a model is active at the source but hidden on the public site. Currently false. |
price_flags | array of strings | Quality warnings: tariff_not_published, incentive_amount_unverified, variant_id_hashed, variant_key_collision. Empty list = no warnings. |
variant_key | string | Key of the version within a market: `fsc_code |
Notes:
priceis the discounted price (equal tomsrp_dc_price) whendiscount_amountis present;msrp_before_discountis the list price before the discount.net_priceis the net price as given by the source and may not be consistent with the country's VAT; usenet_price_calcfor a consistent net value.- Hungary:
price + discount_amountmatches the published list price; the residual againstmsrp_before_discountvaries by engine (0 for electric cars), is consistent with the registration tax and is not verified. - Commercial vehicles: the website may show prices excluding VAT;
priceis gross unlessis_net_priceistrue. - Ireland, electric cars: the published price is already net of the SEAI grant (
public_incentive_in = 'tariff'); prices are not recalculated.incentive_amount_unverifiedis set when the price implies a grant that may not apply (price outside the 15,000 to 50,000 EUR passenger-car range once the grant is added back). Electric light commercial vehicles (Cargo / Chassis) follow a different scheme: no incentive is asserted and the row is flagged. - Belgium is served in two languages (
be-fr,be-nl) with the same vehicles;variant_keyis unique within a market and also across the two locales.
Which Kia markets are supported?
The country input accepts these 22 market codes (21 countries, Belgium in two languages): es-es, de-de, fr-fr, it-it, nl-nl, be-fr, be-nl, at-de, pl-pl, se-sv, cz-cs, sk-sk, hu-hu, ie-en, gr-el, lu-fr, pt-pt, ch-de, gb-en, fi-fi, dk-da, no-nb. According to the input schema the Actor combines Kia's price API, the Swiss Modelcore source and HTML parsing, so coverage depth can differ per market. Prices stay in each market's local currency (EUR, CHF, GBP, PLN, SEK and so on); check the currency field. The Actor does not convert currencies.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
country | string (select) | prefill es-es | Kia market to scrape. Leave empty to scrape all 22 markets. |
includeLeasing | boolean | true | Include monthly leasing prices when the API provides them. |
includeTrimDetails | boolean | true | Call the model-details endpoint per model and emit one row per FSC (trim x motorization) with the full pricing breakdown. Disable to keep the legacy one-row-per-model output. |
proxyConfiguration | object | Apify Proxy | Advanced. Only change it if you see blocking; datacenter proxies are sufficient according to the schema. |
Single market with trim detail:
{"country": "es-es","includeLeasing": true,"includeTrimDetails": true}
Lightweight model-level run for one market:
{"country": "de-de","includeLeasing": false,"includeTrimDetails": false}
Sample output
{"country": "Switzerland","locale": "ch-de","currency": "CHF","model_name": "Picanto","model_code": "PI","body_type_code": "","variant": "picanto","gnb_key": "PI-picanto","price_formatted": "CHF 17'500","price": 17500,"is_net_price": false,"ev6_gt": false,"scraped_at": "2026-10-01T21:18:24.402144+00:00","model_year": null,"car_type": null,"propulsion": "Benzin","net_price": null,"fsc_code": null,"trim_name": null,"powertrain_desc": null,"engine_power_kw": null,"msrp_before_discount": null,"discount_amount": null,"ev_range_wltp_km": null,"battery_kwh": null,"dealer_stock_qty": null,"monthly_price_formatted": null,"monthly_price": null,"variant_id": null}
How much does it cost to scrape Kia prices?
Kia Europe Pricing Scraper uses Pay Per Event pricing with two events:
| Event | Price (USD) |
|---|---|
| Actor Start (one event per GB of memory, minimum one) | $0.005 |
| Result (one dataset item) | $0.005 |
The default memory is 512 MB (enough for all 22 markets in one run), so a normal run is charged one start event.
Worked example: a run returning 500 rows costs 500 x $0.005 = $2.50, plus $0.005 for the start, so $2.505. A 1,000-row run costs $5.00 + $0.005 = $5.005. A 10-row test costs $0.05 + $0.005 = $0.055. To cap spending, set a maximum cost per run in the Apify run options. Scraping all 22 markets with trim details produces many more rows than one market, so test with a single country first.
How do I run Kia Europe Pricing Scraper from the API?
curl -X POST "https://api.apify.com/v2/acts/rastriq~kia-eu-pricing/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{"country": "es-es", "includeTrimDetails": true}'
from apify_client import ApifyClientclient = ApifyClient("<YOUR_TOKEN>")run = client.actor("rastriq/kia-eu-pricing").call(run_input={"country": "fr-fr"})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["model_name"], row["price"], row["currency"])
Integrations, scheduling and webhooks
Run the Actor on a schedule (for example weekly) from the Apify Console to build a price history, then export the dataset as JSON, CSV or Excel. Results can be pushed to Google Sheets, Make, Zapier or n8n, or sent to your own endpoint with a webhook when a run finishes. AI agents can call it through Apify's MCP server.
FAQ
Are the prices net or gross? Check is_net_price on each row. The net_price field is filled only when the source provides it.
Why are many fields null? Kia's markets expose different levels of detail. Trim, discount, battery and leasing fields are null when the source does not return them, as in the Swiss sample.
How often should I run it? Each row carries scraped_at. Weekly or monthly schedules suit most price tracking; the data reflects what Kia's sites showed at run time.
Is it legal to scrape Kia prices? The Actor reads publicly listed vehicle prices and its output contains no personal-data fields. You remain responsible for complying with the site terms and applicable law. This Actor is independent and not affiliated with or endorsed by Kia.
Can I pick several markets in one run? The country field takes one market code. To cover several markets, run the Actor once per market (for example with the Apify API or a schedule), or leave the field empty to cover all of them.
Something looks wrong for a market. What now? Open an issue on the Actor's Issues tab with the market code and run link, and it will be reviewed.