Kia Europe Pricing Scraper avatar

Kia Europe Pricing Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Kia Europe Pricing Scraper

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

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

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 price and scraped_at.
  • Feed pricing dashboards or BI tools with one consistent schema for every market.
  • Compare propulsion types (petrol, mild hybrid, electric) through the propulsion field.
  • 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.

GroupFields
Marketcountry, locale, currency, scraped_at
Modelmodel_name, model_code, body_type_code, variant, gnb_key, model_year, car_type, propulsion, ev6_gt
Priceprice, price_formatted, is_net_price, net_price, msrp_before_discount, discount_amount
Trim and powertrainvariant_id, fsc_code, trim_name, powertrain_desc, engine_power_kw, ev_range_wltp_km, battery_kwh, dealer_stock_qty
Leasingmonthly_price, monthly_price_formatted
Price contractprice_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.

FieldTypeMeaning
price_tariffnumber or nullList price before any brand discount: price + discount_amount when the source publishes msrp_before_discount. null when the source publishes no list price.
price_offernumber or nullFinal brand price of the row (same value as price). null only when the source gives no price.
price_discountnumber or nullprice_tariff - price_offer. 0 = no discount; null when price_tariff is null.
price_tariff_availablebooleanfalse when the source does not publish a list price.
price_levelstringoffer when discount_amount > 0 (the legacy price is the discounted price), otherwise list.
price_vat_basisstringgross (includes VAT) or net (excludes VAT, rows with is_net_price = true).
net_price_calcnumber or nullprice without VAT, computed with the statutory standard VAT rate of the country. Equals price when price_vat_basis is net.
price_public_incentivenumber or nullPublic incentive associated with the row (Ireland: SEAI grant, 3500 EUR, electric cars).
public_incentive_instring or nullWhere the incentive is already deducted. tariff = the published price is already net of it.
offer_conditionstring or nullCondition 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_componentsnullReserved for future use; currently always null.
includes_registration_taxstringyes, no, n.a. (no such tax in the country) or unknown. Per country, from published market information.
includes_deliverystringyes, no or unknown. Per country.
hiddenbooleantrue if a model is active at the source but hidden on the public site. Currently false.
price_flagsarray of stringsQuality warnings: tariff_not_published, incentive_amount_unverified, variant_id_hashed, variant_key_collision. Empty list = no warnings.
variant_keystringKey of the version within a market: `fsc_code

Notes:

  • price is the discounted price (equal to msrp_dc_price) when discount_amount is present; msrp_before_discount is the list price before the discount.
  • net_price is the net price as given by the source and may not be consistent with the country's VAT; use net_price_calc for a consistent net value.
  • Hungary: price + discount_amount matches the published list price; the residual against msrp_before_discount varies 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; price is gross unless is_net_price is true.
  • Ireland, electric cars: the published price is already net of the SEAI grant (public_incentive_in = 'tariff'); prices are not recalculated. incentive_amount_unverified is 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_key is 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

ParameterTypeDefaultDescription
countrystring (select)prefill es-esKia market to scrape. Leave empty to scrape all 22 markets.
includeLeasingbooleantrueInclude monthly leasing prices when the API provides them.
includeTrimDetailsbooleantrueCall 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.
proxyConfigurationobjectApify ProxyAdvanced. 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:

EventPrice (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 ApifyClient
client = 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.