Skip to main content
This guide gets you from an API key to a full TRA tax estimate in a single request.

1. Make a request

Send a supported listing URL to POST /v1/estimate:
curl -X POST https://import.kopagari.com/v1/estimate \
  -H "Authorization: Bearer tra_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://www.beforward.jp/toyota/vitz/sc123456/" }'

2. Read the response

{
  "input": { "url": "https://www.beforward.jp/toyota/vitz/sc123456/" },
  "car": {
    "make": "TOYOTA", "model": "VITZ", "modelCode": "SJ5",
    "year": 2017, "engine_cc": 1490, "fuel": "PETROL",
    "fobPriceUSD": 8500, "cfPriceUSD": 11234
  },
  "matched": {
    "make": "TOYOTA", "makeId": 1500298,
    "modelBody": "VITZ - SJ5 - SEDAN",
    "matchType": "exact_code", "confidence": "high",
    "adjustments": [],
    "yom": 2017, "country": "JAPAN",
    "fuelType": "PETROL", "capacityBand": "1001 - 1500 CC"
  },
  "tax": {
    "cifInUSD": "12,345.00",
    "importDutyInUSD": "3,086.25",
    "exiseDutyInUSD": "771.56",
    "vatInUSD": "2,880.45",
    "totalImportTaxesInUSD": "6,738.26",
    "totalTaxesInTZS": "18,056,140.50",
    "vehicleRegistrationFeeInTZS": "500,000.00"
  },
  "cached": false
}

3. Trust the result with confidence

Each estimate reports how the vehicle was matched against the TRA database:
  • confidence: "high" — chassis code matched a TRA entry exactly, no adjustments needed.
  • confidence: "medium" — matched with minor field adjustments (e.g. fuel naming).
  • confidence: "low" — matched by AI, or the model/year had to be substituted.
The matched.adjustments array explains every value that differed from the listing — for example, when TRA has no entry for the exact year and the nearest year was used.
Estimates are cached for 14 days per URL. A repeated request returns instantly with "cached": true.

Next steps

API Reference

Full request and response schemas, with an interactive playground.

Authentication

How to send your key and handle errors.