calculator

Estimate the landed cost of importing a vehicle

Duty and VAT rates come back as percentages, not fractions. These are estimates, not a binding quote.

site_name selects the fee model. Fees come from that source profile rather than from a caller-supplied db_tax: a stored tax is only as fresh as the last price-modifier run.

post/api/calculator/calculate

Request

  • Base URL: https://api.thecarapi.com
  • URL: https://api.thecarapi.com/api/calculator/calculate
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer
    • API key in query parameter api_key

Request body

pricenumber required

Lot price. Must be between 0 and 10,000,000.

originstring

Origin country code. An unknown code is a 400, not a silent fallback.

destinationstring

Destination country code. An unknown code is a 400.

car_type'standard' | 'classic'

classic relief is an import relief, so it applies only where duty does.

currencystring

Response label only; the endpoint performs no foreign-exchange conversion. Source profiles use EUR fee constants. Supply an EUR-normalized price and use EUR.

site_name'encar' | 'openlane' | 'auto1' | 'schadeautos' | 'copart' | 'ecarstrade'

Fee profile: encar, openlane, auto1, schadeautos, copart or ecarstrade. Explicit kbchachacha and japan values use the generic fallback; neither has a dedicated profile. Omitted source defaults to encar for origin KR, otherwise generic. JP is absent from the country catalogue and origin=JP returns 400.

is_marginboolean

eCarsTrade only: whether the car sells under the VAT margin scheme. Omitting it means the deductible scheme, which is both the common case and the dearer quote — so a caller that omits it is never under-quoted.

db_taxnumber

Ignored for recognized source profiles, which compute auction fees themselves. Optional auction-fee override only on the generic fallback.

db_deliverynumber

For a recognized profile, a nonzero value overrides shipping; zero selects the profile default. The generic fallback accepts zero as an override. Use the same EUR basis as price.

Example request

{
  "price": 15000,
  "origin": "DE",
  "destination": "BG"
}

Response

The estimate.

successboolean required
currencystring required

Example response

{
  "currency": "EUR",
  "breakdown": {
    "lot_price": 15000,
    "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
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.