Import calculator
Estimate the landed cost of importing a vehicle. These are estimates, not a binding quote.
List supported origin and destination countries with EU membership and VAT rates.
Requires the calculator scope.
Example requests
GET https://api.thecarapi.com/api/calculator/countriescurl -H "X-API-Key: $API_KEY" "https://api.thecarapi.com/api/calculator/countries"Example response
{
"success": true,
"countries": [
{
"code": "DE",
"name": "Germany",
"eu": true,
"vat": 0.19
},
{
"code": "KR",
"name": "South Korea",
"eu": false,
"vat": 0
}
]
}What you get back
codestringCountry code. The United Kingdom is UK here, not GB — this list is the calculator’s own country vocabulary and is separate from the vehicle-origin codes on /api/countries, where the same country is canonicalised to GB. If you feed a vehicle’s country_code straight into the calculator, map GB to UK on the way.
eubooleanTrue for all 27 EU member states; false for the rest.
vatnumberVAT as a fraction (0.19 = 19%), unlike /api/calculator/calculate which returns rates as percentages.
Estimate duty, VAT, fees, and the landed total for one lot price.
Requires the calculator scope.
Parameters
pricenumber · JSON bodyrequiredLot price before import fees. Must be between 0 and 10,000,000. Do not pass public_price_eur or you can count import costs twice.
Example 15000·Where the value comes from The source lot price, not a precomputed landed total.
originstring · JSON bodyOrigin country code. Default KR.
Example KR·Where the value comes from /api/calculator/countries -> countries[].code
destinationstring · JSON bodyDestination country code. Default BG.
Example BG·Where the value comes from /api/calculator/countries -> countries[].code
car_typestring · JSON bodyDefault standard.
Example standard·Where the value comes from Choose standard or classic.
currencystring · JSON bodyResponse label only; no foreign-exchange conversion is performed. Source profiles use EUR constants, so supply an EUR-normalized price and use EUR.
Example EUR·Where the value comes from Currency label used by your application.
site_namestring · JSON bodySource whose fee model to price against: encar, openlane, auto1, schadeautos, copart or ecarstrade. Omitted, it defaults to encar when origin is KR and otherwise falls back to a generic model that is not what any of our own listings are priced with. kbchachacha and japan have no dedicated profile and take the generic path too when explicitly supplied. JP is not currently in the calculator country catalogue, so origin=JP is rejected. Do not substitute another country to obtain a Japanese import quote. Send it whenever you know it.
Example ecarstrade·Where the value comes from /api/sites -> sites[].name
db_tax / db_deliverynumber · JSON bodyFor a recognized source profile, db_tax is ignored and the fee is computed from the profile; a nonzero db_delivery overrides shipping (zero uses the profile default). The generic path accepts both overrides. Values must already use the same EUR basis as price.
Example 450·Where the value comes from Precomputed values from your own records.
is_marginboolean · JSON bodyeCarsTrade only: whether the car sells under the VAT margin scheme, which changes whether VAT is added. Default false. The vehicle own value is published as the is_margin field on the detail endpoints.
Example false·Where the value comes from /api/auction/{site}/{id} -> auction.is_margin
Example requests
POST https://api.thecarapi.com/api/calculator/calculate
{
"price": 15000,
"origin": "KR",
"destination": "BG",
"site_name": "encar"
}POST https://api.thecarapi.com/api/calculator/calculate
{
"price": 9800,
"origin": "BE",
"destination": "BG",
"site_name": "ecarstrade"
}Example response
{
"success": true,
"currency": "EUR",
"breakdown": {
"lot_price": 15000,
"auction_fee": 0,
"trucking": 0,
"shipping": 1800,
"our_fee": 700,
"subtotal_customs_value": 16800,
"duty_rate": 10,
"duty_amount": 1680,
"vat_rate": 20,
"vat_amount": 3696,
"customs_agency": 1425,
"custom_clearance_total": 6801,
"estimated_total": 24301
}
}What you get back
lot_pricenumberThe price you sent, echoed.
auction_feenumberThe auction house’s own buyer fee for that source and lot price.
truckingnumberInland haulage, on the generic model only; 0 under a source profile, where it is folded into shipping.
shippingnumberTransport to the destination. Your db_delivery overrides it when supplied.
our_feenumberOur service fee. Charged outside the duty/VAT base.
subtotal_customs_valuenumberlot_price + auction_fee + trucking + shipping — the value duty is assessed on.
duty_rate / duty_amountnumberRate as a percentage (10.0), and the amount. 0 for a car already in free circulation in the EU.
vat_rate / vat_amountnumberPercentage and amount. VAT is charged on subtotal_customs_value + duty_amount, not on the lot price alone.
customs_agencynumberFixed post-import costs outside the duty/VAT base (port clearance, agency work).
custom_clearance_totalnumberduty_amount + vat_amount + customs_agency.
estimated_totalnumbersubtotal_customs_value + custom_clearance_total + our_fee. The landed figure.