Kia America Public API Sources
Kia America exposes several public JSON endpoints on https://www.kia.com.
No authentication credentials are required. A Referer header pointing to
https://www.kia.com/us/en is required on the JSON endpoints below.
Postman: Postman collection - Kia public APIs
Endpoints
JSON endpoints
| Endpoint | Method | URL | Primary data |
|---|---|---|---|
| Vehicle models catalog | GET | https://www.kia.com/us/services/en/vehicle/allSeries/build | Series, model years, trims, exterior colors, interiors |
| Inventory BnP | POST | https://www.kia.com/us/services/en/inventory/bnp/dealervehicles/{seriesId}/{year}/{zipCode} | Dealer inventory for one series/year |
| Dealer search | POST | https://www.kia.com/us/services/en/dealers/search | Dealer locator by ZIP or full dealer record lookup by Kia dealer code |
| Build & Price configurator | GET | https://www.kia.com/us/services/en/bnpVehicle/{seriesId}/{year} | Trim tree, MSC options, packages, color combinations |
| Offers dropdowns | GET | https://www.kia.com/us/services/en/offers/dropDowns | Offer category IDs, active offer model/year combinations, offer images |
| Offers | POST | https://www.kia.com/us/services/en/offers/{zipCode} | Current incentive offers by requested model/year and offer category |
Vehicle Models Catalog
GET https://www.kia.com/us/services/en/vehicle/allSeries/build
Required headers
| Header | Value |
|---|---|
Accept | application/json, text/plain, */* |
Referer | https://www.kia.com/us/en |
Query parameters
None — a single GET returns all active Kia US model series.
Response shape
The API returns an envelope with a top-level allSeries array.
{
"allSeries": [
{
"name": "Sorento",
"seriesId": "7AC",
"categories": [{"name": "SUVs/Crossovers/MPV", "order": 2}],
"years": [
{
"year": 2026,
"baseMsrp": 32390,
"trims": [
{
"name": "LX",
"code": "LX",
"baseMsrp": 32390,
"baseModel": "7AC3225",
"exteriors": [
{
"displayName": "Panthera Metal",
"sapName": "Panthera Metal",
"hex": "515357",
"cost": 0,
"baseMsrp": 32390
},
{
"displayName": "Glacial White Pearl",
"sapName": "Glacial White Pearl",
"hex": "EBF0F5",
"cost": 400,
"baseMsrp": 32790
}
],
"interiors": [
{
"name": "Black Woven Cloth Seat Trim",
"fabricName": "Woven Cloth Seat Trim"
}
]
}
]
}
]
}
],
"vehicleCategories": [...]
}
A single request returns all ~18 active series.
Notable response fields
| API field | Notes |
|---|---|
allSeries[].seriesId | Internal model-series identifier, e.g. 7AC for Sorento |
allSeries[].name | Public model name |
allSeries[].categories[] | Model category labels and ordering |
allSeries[].years[].year | Model year |
allSeries[].years[].baseMsrp | Base MSRP for the model year |
allSeries[].years[].trims[].code | Public trim code, e.g. LX |
allSeries[].years[].trims[].name | Public trim name |
allSeries[].years[].trims[].baseModel | SAP/base model code, e.g. 7AC3225 |
allSeries[].years[].trims[].exteriors[] | Available exterior colors, hex values, and color cost |
allSeries[].years[].trims[].interiors[] | Available interior names and fabric names |
Coverage
Returns all ~18 active US model series. Series IDs as of mid-2026:
| Series ID | Model |
|---|---|
7AC | Sorento |
7AH | Sorento Hybrid |
7AP | Sorento PHEV |
4AC | Sportage |
4AH | Sportage Hybrid |
4AP | Sportage PHEV |
3CB | Telluride |
3CH | Telluride Hybrid |
GAH | Niro |
GAE | Niro EV |
KAC | Seltos |
LAC / K5A | K5 |
2AC | K4 |
MAC | Carnival |
MAH | Carnival Hybrid |
CV6 | EV6 |
CV9 | EV9 |
Inventory BnP (dealervehicles)
POST https://www.kia.com/us/services/en/inventory/bnp/dealervehicles/{seriesId}/{year}/{zipCode}
Required headers
| Header | Value |
|---|---|
Accept | application/json, text/plain, */* |
Content-Type | application/json |
Referer | https://www.kia.com/us/en/inventory/landing |
Path parameters
| Parameter | Example | Notes |
|---|---|---|
seriesId | 7AC | From the allSeries/build response |
year | 2026 | From the allSeries/build response |
zipCode | 10001 | Required in path; not used for geographic filtering |
Request body
{}
An empty object returns full national inventory for the model/year. Observed
request arguments appear to be ignored when passed in the JSON body; one observed
body was {"packs":[],"radius":50,"status":["DS","IT"],"trim":"LX","exterior":"Panthera Metal","interior":"Saturn Black Woven Cloth Seat Trim","fabric":"Woven Cloth","drivetrain":"Front-Wheel Drive (FWD)","transmission":"Automatic Transmission"}.
There is no pagination — one POST per (seriesId, year) returns the complete fleet.
Live probes with pageSize: 1, page: 2, and no pagination fields returned the
same totalCount, vehicle count, and first/last VIN for Sorento 2026.
ZIP behavior validation
The {zipCode} path parameter is required syntactically, but live probes on
June 8, 2026 showed that it does not scope the result set for the empty-body
BNP inventory request. Sorento 2026 (seriesId=7AC, year=2026) returned the
same count and boundary VINs for east coast and west coast ZIP codes:
| ZIP | totalCount | vehicles length | First VIN | Last VIN |
|---|---|---|---|---|
10001 | 23,590 | 23,590 | 5XYRG4JC0TG475987 | 5XYRL4JC3TG414404 |
94103 | 23,590 | 23,590 | 5XYRG4JC0TG475987 | 5XYRL4JC3TG414404 |
90001 | 23,590 | 23,590 | 5XYRG4JC0TG475987 | 5XYRL4JC3TG414404 |
The vehicle-list payloads also matched by VIN-list comparison. Treat
dealervehicles/{seriesId}/{year}/{zipCode} with {} as
ZIP-insensitive. The Kia website's visible 250-mile radius behavior appears to
come from another endpoint or request shape, not this BNP inventory request.
Response shape
{
"vehicles": [
{
"vin": "5XYRG4JC0TG475987",
"dealerCode": "NJ028",
"year": {"id": 123, "year": "2026"},
"model": {"id": 456, "model": "Sorento"},
"modelCode": "7AC3225",
"trim": {"id": 2456683, "name": "LX", "longName": "LX"},
"msrp": 34305,
"dealerPrice": 33746,
"exteriorColor": {
"code": "RSL",
"name": "Ivory Silver",
"edwColorName": "IVORY SILVER"
},
"interiorColor": {
"code": "WK",
"name": "Black",
"fabricName": "Woven Cloth Seat Trim"
},
"transmission": {"transmission": "Fwd Auto"},
"status": "DS",
"location": {"longitude": -74.885, "latitude": 40.058},
"seriesId": "7AC",
"mileage": "23 City 31 Highway",
"packs": [
{
"code": "PR7",
"description": "EX Premium Package"
}
]
}
],
"totalCount": 23414
}
Notable response fields
| API field | Notes |
|---|---|
vehicles[].vin | Vehicle VIN |
vehicles[].dealerCode | Kia dealer code |
vehicles[].year.year | Model year |
vehicles[].seriesId | Series identifier, e.g. 7AC |
vehicles[].modelCode | SAP/base model code, e.g. 7AC3225 |
vehicles[].trim.name | Trim code |
vehicles[].trim.longName | Public trim name |
vehicles[].exteriorColor.code | Inventory exterior color code |
vehicles[].exteriorColor.name | Public exterior color name |
vehicles[].exteriorColor.images | Exterior profile and 360 image paths when available |
vehicles[].interiorColor.code | Inventory interior color code, e.g. WK or GYT |
vehicles[].interiorColor.name | Public interior color name |
vehicles[].interiorColor.fabricName | Interior fabric name |
vehicles[].interiorColor.images | Interior still and panorama image paths when available |
vehicles[].transmission.transmission | Transmission description |
vehicles[].msrp | Vehicle MSRP |
vehicles[].dealerPrice | Dealer price shown by the API |
vehicles[].status | Inventory status code; see status codes below |
vehicles[].location | Vehicle/dealer longitude and latitude |
vehicles[].mileage | EPA mileage string when available |
vehicles[].options[] | Human-readable option/package names |
vehicles[].packs[] | Structured package objects, e.g. {code, description} |
totalCount | Count reported by the endpoint |
Inventory status codes
| Code | Meaning |
|---|---|
DS | Dealer Stock — physically at dealership (~91%) |
IT | In Transit to dealer (~9%) |
AV | Available — observed in API docs; rare in practice |
Coverage
Observed nationwide inventory counts by model from live (seriesId, year)
requests in June 2026:
| Model | Approximate count |
|---|---|
| Sportage 2026 | ~25,800 |
| Sorento 2026 | ~23,400 |
| Telluride 2027 | ~8,300 |
| EV9 2026 | ~2,400 |
| EV6 2026 | ~1,550 |
Total fleet: ~165,000 vehicles across all series/year combinations.
Dealer Search
POST https://www.kia.com/us/services/en/dealers/search
This is the public JSON service endpoint for dealer lookup. Do not confuse it
with the website page route https://www.kia.com/us/en/dealers/search, which is
not the JSON service URL.
Required headers
| Header | Value |
|---|---|
Accept | application/json, text/plain, */* |
Content-Type | application/json |
Referer | https://www.kia.com/us/en |
Request body
The ZIP locator variant accepts a ZIP code and returns nearby dealer records.
The Kia dealer locator frontend uses type: "zip", not type: "zipCode".
{
"type": "zip",
"zipCode": "10001",
"dealerCertifications": [],
"dealerServices": [],
"numberOfDealers": 10000
}
Observed parameters:
| Parameter | Example | Notes |
|---|---|---|
type | zip | Required for ZIP locator search |
zipCode | 10001 | Required for ZIP locator search |
dealerCertifications | [] | Optional certification feature filters |
dealerServices | [] | Optional service feature filters |
numberOfDealers | 10000 | Optional result count override; live probes returned 801 records |
The dealer-code variant accepts a known Kia dealer code and returns the matching dealer record.
{
"type": "dealerCode",
"dealerCode": "NJ080",
"dealerCertifications": [],
"dealerServices": []
}
Observed coverage
Live probes on June 8, 2026 using numberOfDealers: 10000 returned 801 dealer
records for both zipCode: "10001" and zipCode: "94103". The returned dealer
code sets were identical. Omitting numberOfDealers returned only the nearest
20 dealers for each ZIP.
Response shape
The response is a JSON array. ZIP locator requests return multiple dealer objects. Dealer-code requests usually return one object.
[
{
"code": "NJ080",
"name": "Jersey City Kia",
"location": {
"street1": "36 Water Street",
"city": "Jersey City",
"state": "NJ",
"latitude": "40.71559",
"longitude": "-74.09522",
"zipCode": "07305"
},
"phones": [
{
"number": "2014327700",
"type": "business"
}
],
"url": "http://JERSEYCITYKIA.COM",
"hybridCertified": true,
"chatEnabled": true,
"inventoryEnabled": true,
"featureIds": [17, 7, 14, 16]
}
]
Notable response fields
| API field | Notes |
|---|---|
[].code | Kia dealer code |
[].name | Dealer display name |
[].location.street1 | Street address |
[].location.city | City |
[].location.state | State abbreviation |
[].location.zipCode | ZIP code |
[].location.latitude | Latitude string |
[].location.longitude | Longitude string |
[].phones[] | Phone records; business phone has type: "business" |
[].url | Dealer website URL |
[].hybridCertified | Hybrid certification flag |
[].chatEnabled | Chat availability flag |
[].inventoryEnabled | Inventory availability flag |
[].featureIds[] | Dealer feature identifiers |
Build & Price Configurator (bnpVehicle)
GET https://www.kia.com/us/services/en/bnpVehicle/{seriesId}/{year}
Note: The URL does not include a /vehicle/ prefix — GET /vehicle/bnpVehicle/…
returns 404.
Required headers
| Header | Value |
|---|---|
Accept | application/json, text/plain, */* |
Referer | https://www.kia.com/us/en |
Path parameters
| Parameter | Example | Notes |
|---|---|---|
seriesId | 7AC | From the allSeries/build response |
year | 2026 | From the allSeries/build response |
Response shape
The response has a top-level vehicle object with a deeply nested children tree:
{
"vehicle": {
"id": "7AC",
"title": "Sorento",
"type": "series",
"children": [
{
"year": 2026,
"type": "modelyear",
"children": [
{
"title": "2.5L GDI",
"type": "engine",
"children": [
{
"title": "Front-Wheel Drive (FWD)",
"type": "drivetrain",
"children": [
{
"type": "transmission",
"children": [
{
"modelCode": "7AC3225",
"msrp": 32390,
"destination": 1495,
"type": "trim",
"code": "LX",
"engine": "2.5L GDI",
"drivetrain": "Front-Wheel Drive (FWD)"
}
]
}
]
}
]
},
{
"code": "D35",
"description": "LX FWD Std",
"type": "msc",
"options": [
{
"title": "All Weather Floor Mats",
"code": "AWM",
"discriminator": "option",
"msrp": 265,
"type": "option",
"features": [
{
"title": "All Weather Floor Mats",
"description": "All weather mats are custom fit to your Kia interior...",
"type": "feature"
}
]
}
]
}
]
}
]
}
}
MSC nodes correspond to trim-level specification codes (for example,
D35 = LX FWD Std) and hold options/accessories and color combinations
applicable to that trim.
Notable response fields
| API field | Notes |
|---|---|
vehicle.id | Series identifier, e.g. 7AC |
vehicle.title | Public model name |
vehicle.children[].year | Model year |
Engine/drivetrain/transmission children[] | Nested tree that leads to trim nodes |
Trim children[].modelCode | SAP/base model code, e.g. 7AC3225 |
Trim children[].code | Public trim code, e.g. LX |
Trim children[].msrp | Trim MSRP |
Trim children[].destination | Destination charge |
MSC children[].code | Model/specification code, e.g. D35 |
MSC children[].description | Human-readable MSC description |
MSC children[].options[] | Accessory/option rows with title, code, discriminator, msrp, and nested features[] |
MSC children[].packages[] | Package rows when populated; observed empty in the Sorento sample |
MSC children[].colors[] | Exterior/interior color combinations |
colors[].exterior | Exterior color details, including code, title, cost, swatch/profile image paths, and discriminator |
colors[].interior | Interior details, including title, swatch/profile image paths, fabric/color metadata, and discriminator |
Package pricing note
Kia does not expose priced package rows in the observed Sorento configurator
payload. The MSC packages[] arrays are present but empty in the sample.
The MSC options[] array is the only current source of priced accessories in
that payload. These appear to be individual dealer-installed or factory-ordered
options, not bundled packages.
The orderingOptions array on trim nodes occasionally contains included standard
features with msrp: 0.
Coverage
Observed accessory examples as of June 2026 include:
- All Weather Floor Mats (
AWM): $265 - Auto-Dimming Rearview Mirror w/ HomeLink (
EH): $375 - Cargo Net (
CN): $60 - Trailer Hitch Receiver — Class III (
TH): $640 - First Aid Kit (
FK): $35
Offers Dropdowns
GET https://www.kia.com/us/services/en/offers/dropDowns
Required headers
| Header | Value |
|---|---|
Accept | application/json, text/plain, */* |
Content-Type | application/json;charset=UTF-8 |
Referer | https://www.kia.com/us/en/offers/result |
Query parameters
None.
Response shape
The response contains offer categories, active offer model/year combinations, model years, and image paths.
{
"allOffers": {
"status": "Success",
"statusCode": "200",
"result": [
{
"id": 3,
"label": "offerTypeCash",
"description": "cashDescription",
"isActive": true,
"orderId": 1
}
]
},
"categories": [
{
"name": "SUVs/Crossovers/MPV",
"vehicles": [
{
"name": "Sorento",
"seriesId": "7AC",
"years": [{"year": 2026}, {"year": 2025}]
}
]
}
],
"modelYears": [{"year": 2025}, {"year": 2027}, {"year": 2026}],
"images": {
"Sorento": {
"2026": {
"LX": "/us/content/dam/kia/us/en/vehicles/sorento/2026/trims/lx/exterior/101010/360/35.png"
}
}
}
}
Notable response fields
| API field | Notes |
|---|---|
allOffers.result[].id | Offer category ID, e.g. 3 for cash, 2 for lease, 1 for finance, 4 for other |
allOffers.result[].label | Offer category label |
allOffers.result[].isActive | Category active flag |
categories[].name | Vehicle category label |
categories[].vehicles[].name | Vehicle display name |
categories[].vehicles[].seriesId | Series identifier |
categories[].vehicles[].years[].year | Model year with active offers |
modelYears[] | Model years represented in the offer dropdown |
images | Vehicle/year/trim image path map |
Offers
POST https://www.kia.com/us/services/en/offers/{zipCode}
Required headers
| Header | Value |
|---|---|
Accept | application/json, text/plain, */* |
Content-Type | application/json;charset=UTF-8 |
Referer | https://www.kia.com/us/en/offers/result |
Path parameters
| Parameter | Example | Notes |
|---|---|---|
zipCode | 10014 | Required in path; observed offers are nationally uniform for current responses |
Request body
{
"vehicles": [
{
"seriesId": "7AC",
"year": 2026
}
],
"categories": [3, 2, 1, 4]
}
The vehicles array accepts the requested series/year combinations. Category
IDs observed from dropDowns are 3 cash, 2 lease, 1 finance, and 4
other.
Response shape
{
"result": {
"vehicle": [
{
"seriesId": "7AC",
"series": "Sorento",
"total": 5,
"years": [
{
"year": 2026,
"offers": [
{
"offerId": 56922,
"vehicleId": 45582,
"categoryId": 3,
"catergoryName": "Cash",
"typeId": 22,
"typeDescription": "Total Cash Back Offer",
"beginDate": "06/02/2026",
"endDate": "07/06/2026",
"name": "Cash Offer",
"title": "$3,500 Customer Cash",
"heading": "",
"modelInfo": "",
"description": ["available toward purchase"],
"trimId": null,
"trimName": null,
"states": null,
"includedCashOffers": ["$3,500 Cash Back Offer"],
"additionalOffers": null
}
]
}
]
}
],
"additionalOffers": [
{
"typeId": 13,
"typeDescription": "Military Program",
"cash": "500",
"heading": "$500 Military Program For Qualified Customers",
"offerId": 56711
}
]
}
}
Notable response fields
| API field | Notes |
|---|---|
result.vehicle[].seriesId | Series identifier |
result.vehicle[].series | Public model name |
result.vehicle[].total | Offer count for the vehicle |
result.vehicle[].years[].year | Offer model year |
result.vehicle[].years[].offers[].offerId | Offer identifier |
result.vehicle[].years[].offers[].vehicleId | Offer vehicle identifier |
result.vehicle[].years[].offers[].categoryId | Offer category ID |
result.vehicle[].years[].offers[].catergoryName | Category name as spelled by the API |
result.vehicle[].years[].offers[].typeId | Offer type ID |
result.vehicle[].years[].offers[].typeDescription | Offer type description |
result.vehicle[].years[].offers[].beginDate | Offer start date |
result.vehicle[].years[].offers[].endDate | Offer end date |
result.vehicle[].years[].offers[].title | Public headline value, e.g. $309/month or 0% APR |
result.vehicle[].years[].offers[].heading | Supporting headline text |
result.vehicle[].years[].offers[].description[] | Offer description lines |
result.vehicle[].years[].offers[].trimId | Trim identifier when offer is trim-specific |
result.vehicle[].years[].offers[].trimName | Trim name when offer is trim-specific |
result.vehicle[].years[].offers[].states | State restrictions when present; observed null for current national offers |
result.vehicle[].years[].offers[].includedCashOffers[] | Included cash offer labels |
result.vehicle[].years[].offers[].additionalOffers[] | References to additional offer records |
result.additionalOffers[] | Additional program-level offers such as military programs |