API Docs

Explorer Decode by VIN

LLM-ready context

Copies clean Markdown for pasting into an LLM.

Explorer Decode by VIN

Decode a VIN and return the vehicle payload plus minimal battery attributes. The response includes the most specific battery match available.

GET /api/v1/explorer/vehicle/by-vin

Use this endpoint when you want a single request that combines vehicle decode output with ARC Explorer battery attributes and returns a concise pack answer.

Authentication

Include X-API-Key on every request. Explorer usage is billed separately from VIN decode usage.

Idempotency

Include an Idempotency-Key with every request. Use a unique value for each logical request, and reuse the same value only when retrying that exact request. Use a new key when any input changes.

What to expect for response time

Explorer by VIN adds battery enrichment on top of decode. Active lookups typically return in 250–550ms—about 400ms on average. The first request after idle may take longer while the pipeline warms up.

Rate-limit headers

Successful Explorer responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

Built for decisive workflows

The endpoint returns concise battery results so pricing, compliance, and logistics workflows can start with confidence instead of manual triage.

Query Parameters

FieldTypeDescription
vinstringRequired. The 17-character VIN to validate, decode, and enrich with Explorer battery data.

Example Variants

When one battery matches the decoded vehicle, the batteries array contains that pack.

Example Request

cURL
curl "https://api.autoresourceco.com/api/v1/explorer/vehicle/by-vin?vin=KMHC65LD4JU000001" \
  -H "X-API-Key: your_api_key_here" \
  -H "Idempotency-Key: explorer-vin-example-001"

Response Example

JSON
{
  "query": {
    "mode": "vin",
    "vin": "kmhc65ld4ju000001"
  },
  "vehicle": {
    "VIN": "kmhc65ld4ju000001",
    "Year": 2018,
    "Make": "HYUNDAI",
    "Model": "Ioniq",
    "Trim": "Plug-in-Hybrid (PHEV)",
    "ElectrificationLevel": "PHEV",
    "decode_status": "decoded",
    "decode_warnings": [],
    "suggested_vin": null,
    "possible_values": null,
    "technical_details": {
      "body_class": "Hatchback/Liftback/Notchback",
      "vehicle_type": "PASSENGER CAR",
      "drive_type": null,
      "fuel_type_primary": "Electric",
      "fuel_type_secondary": "Gasoline",
      "series": null,
      "ev_drive_unit": null,
      "battery_type": "Lithium-Ion/Li-Ion",
      "battery_energy_kwh_from": null,
      "battery_energy_kwh_to": null,
      "battery_voltage_from": "360",
      "battery_voltage_to": null,
      "battery_modules_per_pack": null,
      "battery_cells_per_module": null,
      "charger_level": null,
      "charger_power_kw": "45",
      "wheel_base_inches": "106.30",
      "curb_weight_lbs": null,
      "gvwr": "Class 1: 6,000 lb or less (2,722 kg or less)",
      "track_width_inches": null,
      "engine_configuration": null,
      "engine_cylinders": "4",
      "displacement_l": "1.6",
      "transmission_style": null,
      "air_bag_locations": null,
      "plant_city": "ULSAN",
      "plant_country": "SOUTH KOREA",
      "plant_company_name": null
    }
  },
  "batteries": [
    {
      "cathode_chemistry": "NMC",
      "chemistry_group": "Lithium-Ion",
      "dot_hazard_class": "Hazardous",
      "energy_kwh": 8.9,
      "weight_lbs": 258
    }
  ],
  "result_count": 1
}

Response Fields

FieldTypeDescription
queryobjectNormalized request context, including mode: vin and the validated VIN.
vehicleobjectDecoded vehicle payload in the same core shape as GET /api/v1/vin/decode.
batteriesobject[]Minimal battery objects with cathode_chemistry, chemistry_group, dot_hazard_class, energy_kwh, and weight_lbs.
batteries[].weight_lbsnumber | nullComplete battery pack weight in pounds. Null when ARC does not have a usable canonical pack weight.
result_countintegerNumber of battery records returned in batteries.

VIN Error Codes

Failed VINs use the same required four-digit codes in single-response detail.code and batch errors[].code. Use the code for program logic and the message for people.

CodeConditionPublic MessageResponse Behavior
1001VIN is shorter than 17 charactersVIN must be exactly 17 characters (received {length})Rejected before decode; returned in detail.code or errors[].code.
1004VIN checksum mismatchVIN check digit (position 9) is invalidRejected before decode; returned in detail.code or errors[].code.
1006VIN contains unsupported charactersVIN contains invalid characters (must be A-H, J-N, P, R-Z, 0-9; excludes I, O, Q)Rejected before decode; returned in detail.code or errors[].code.
1020VIN is missing or blankVIN is requiredRejected before decode.
1021VIN is longer than 17 charactersVIN must be exactly 17 characters (received {length})Rejected before decode.
1022VIN contains whitespaceVIN cannot contain whitespaceRejected before decode.
1023VIN contains a URLVIN cannot contain URLsRejected before decode.
1024VIN contains a percent characterVIN cannot contain "%" charactersRejected before decode.
1092VIN decode failedThe VIN could not be decoded.No successful vehicle result was produced.
1093Vehicle data unavailable for the VINNo vehicle data was returned for this VIN.No successful vehicle result was produced.
1094Vehicle decoding service could not complete the VINThe vehicle decoding service could not complete this VIN.No successful vehicle result was produced.
1095Vehicle data response could not be processedThe vehicle data response could not be processed.No successful vehicle result was produced.
1096Decoded vehicle is missing model year, make, or modelDecoded vehicle is missing a valid model yearExplorer by-VIN only: the VIN decoded, but battery fitment could not be resolved. Returned with HTTP 422. The message names the missing field (model year, or make or model), and decode_warnings and suggested_vin carry any VIN checks that explain the gap.

Related Docs