Properties
| Name | Type | Description |
|---|---|---|
| sellerNonOwner | booleannull | Indicates if the initial seller provided via sellerReferenceId is a non-owner, e.g. a consignment seller. |
| sellerReferenceId | string | ID that references the seller of the vehicle. This is the same as the referenceId used in /user |
| vehicleReferenceId | stringnull | A stable, unique, case-sensitive partner-supplied ID for this vehicle. If explicitly set to null, a reference ID will be automatically assigned and returned in the `referenceId` field of the response. |
| marketplaceReferenceId | stringnull | The marketplace reference ID associated with this vehicle. |
| displayId | stringnull | A user-visible ID for this vehicle. If it is not provided, no user-visible ID will be displayed. It can contain any characters, including whitespace. It is recommended but not required to be unique. |
| vin | string | Vehicle Identification Number. Input will be sanitized by: 1. Removing invalid characters (alphanumeric only) 2. Converting to uppercase The resulting VIN must be 4-25 characters after sanitization. |
| priceCents | integernull | Price of the vehicle in cents. |
| year | integernull | Year of the vehicle, from 1885 to 2 years in the future. An out-of-range year is dropped, and the vehicle is saved without it. For standard VINs the year is decoded from the VIN. |
| make | stringnull | Make of the vehicle. Only printable ASCII characters (0x20-0x7E) are accepted. Common look-alikes (smart quotes, en/em/non-breaking dashes, accented Latin letters) are mapped to their closest ASCII eq |
| model | stringnull | Model of the vehicle. Only printable ASCII characters (0x20-0x7E) are accepted. Common look-alikes (smart quotes, en/em/non-breaking dashes, accented Latin letters) are mapped to their closest ASCII e |
| color | object | |
| loan | booleannull | Indicates if the vehicle has a loan on it. A lienholderName or lienholderAccountNumber means the vehicle has a loan, whatever this is set to. When null or omitted without lienholder details, the selle |
| lease | booleannull | Indicates if the vehicle has a lease. |
| registrationState | stringnull | The current state that the vehicle is registered in. This should be the abbreviated state name (e.g. CA, TX, NY). |
| entityOwner | object | Vehicle ownership information. Indicates information about who owns the vehicle if it is not an individual. |
| lienholderName | stringnull | Name of the lienholder for the vehicle |
| lienholderAccountNumber | stringnull | Account number associated with the lienholder |
| standardizedVehicleType | object | Optional standardized vehicle type. Used only when KeySavvy cannot determine the vehicle type from the VIN, for example non-standard or collector VINs and incomplete or conversion vehicles. Otherwise |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/keysavvy/main/json-schema/keysavvy-vehicle-create-request-body-schema.json",
"title": "VehicleCreateRequestBody",
"x-generated": "2026-10-25",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/keysavvy-openapi.json#/components/schemas/VehicleCreateRequestBody",
"type": "object",
"properties": {
"sellerNonOwner": {
"type": [
"boolean",
"null"
],
"description": "Indicates if the initial seller provided via sellerReferenceId is a non-owner, e.g. a consignment seller.",
"default": false
},
"sellerReferenceId": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]+$",
"description": "ID that references the seller of the vehicle. This is the same as the referenceId used in /user"
},
"vehicleReferenceId": {
"type": [
"string",
"null"
],
"pattern": "^[a-zA-Z0-9_-]+$",
"description": "A stable, unique, case-sensitive partner-supplied ID for this vehicle.\nIf explicitly set to null, a reference ID will be automatically assigned and returned in the `referenceId` field of the response.\n"
},
"marketplaceReferenceId": {
"type": [
"string",
"null"
],
"description": "The marketplace reference ID associated with this vehicle."
},
"displayId": {
"type": [
"string",
"null"
],
"description": "A user-visible ID for this vehicle. If it is not provided, no user-visible ID will be displayed. It can contain any characters, including whitespace. It is recommended but not required to be unique."
},
"vin": {
"type": "string",
"description": "Vehicle Identification Number. Input will be sanitized by:\n1. Removing invalid characters (alphanumeric only)\n2. Converting to uppercase\nThe resulting VIN must be 4-25 characters after sanitization.\n",
"minLength": 4,
"maxLength": 25
},
"priceCents": {
"type": [
"integer",
"null"
],
"minimum": 100,
"maximum": 99999900,
"description": "Price of the vehicle in cents."
},
"year": {
"type": [
"integer",
"null"
],
"description": "Year of the vehicle, from 1885 to 2 years in the future. An out-of-range year is dropped, and the vehicle is saved without it. For standard VINs the year is decoded from the VIN."
},
"make": {
"type": [
"string",
"null"
],
"description": "Make of the vehicle. Only printable ASCII characters (0x20-0x7E) are accepted. Common look-alikes (smart quotes, en/em/non-breaking dashes, accented Latin letters) are mapped to their closest ASCII equivalent; any remaining unsupported characters (emoji, control chars, zero-width chars, non-Latin scripts) are removed. If the resulting value is empty, it will be removed."
},
"model": {
"type": [
"string",
"null"
],
"description": "Model of the vehicle. Only printable ASCII characters (0x20-0x7E) are accepted. Common look-alikes (smart quotes, en/em/non-breaking dashes, accented Latin letters) are mapped to their closest ASCII equivalent; any remaining unsupported characters (emoji, control chars, zero-width chars, non-Latin scripts) are removed. If the resulting value is empty, it will be removed."
},
"color": {
"oneOf": [
{
"$ref": "#/$defs/VehicleColorEnum"
},
{
"type": "null"
}
]
},
"loan": {
"type": [
"boolean",
"null"
],
"description": "Indicates if the vehicle has a loan on it. A lienholderName or lienholderAccountNumber means the vehicle has a loan, whatever this is set to. When null or omitted without lienholder details, the seller is asked whether the vehicle has a loan."
},
"lease": {
"type": [
"boolean",
"null"
],
"description": "Indicates if the vehicle has a lease."
},
"registrationState": {
"type": [
"string",
"null"
],
"description": "The current state that the vehicle is registered in. This should be the abbreviated state name (e.g. CA, TX, NY)."
},
"entityOwner": {
"oneOf": [
{
"$ref": "#/$defs/EntityOwnerCreateRequest"
},
{
"type": "null"
}
],
"description": "Vehicle ownership information. Indicates information about who owns the vehicle if it is not an individual."
},
"lienholderName": {
"type": [
"string",
"null"
],
"description": "Name of the lienholder for the vehicle"
},
"lienholderAccountNumber": {
"type": [
"string",
"null"
],
"description": "Account number associated with the lienholder"
},
"standardizedVehicleType": {
"oneOf": [
{
"$ref": "#/$defs/VehicleTypeEnum"
},
{
"type": "null"
}
],
"description": "Optional standardized vehicle type. Used only when KeySavvy cannot determine the vehicle type from the VIN, for example non-standard or collector VINs and incomplete or conversion vehicles. Otherwise it is ignored. When it is used, the value is stored and returned on the vehicle response; when it is ignored, that field is null.\n"
}
},
"required": [
"sellerReferenceId",
"vehicleReferenceId",
"vin"
],
"$defs": {
"AddressRequest": {
"type": "object",
"description": "Empty strings are treated as unspecified. Addresses are standardized and validated where possible, so a later read may differ from what was sent.\n",
"properties": {
"line1": {
"type": "string"
},
"line2": {
"type": [
"string",
"null"
]
},
"city": {
"type": "string"
},
"state": {
"type": "string",
"description": "Two-letter code. A full state or territory name is also accepted, and a code that disagrees with the rest of the address is corrected when the address validates.\n"
},
"zip": {
"type": "string",
"description": "For US addresses, should be 5 digits. Accepts Zip+4, but prefer zip4.\n"
},
"zip4": {
"type": [
"string",
"null"
],
"description": "Ignored for non-US addresses."
},
"country": {
"type": "string",
"description": "Only \"US\" is supported"
}
},
"required": [
"line1",
"city",
"state",
"zip",
"country"
]
},
"EntityOwnerCreateRequest": {
"type": "object",
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"address": {
"description": "Default for physicalAddress and mailingAddress. Complete addresses supplied separately take precedence. Unusable addresses are ignored.\n",
"oneOf": [
{
"$ref": "#/$defs/AddressRequest"
},
{
"type": "null"
}
]
},
"physicalAddress": {
"oneOf": [
{
"$ref": "#/$defs/AddressRequest"
},
{
"type": "null"
}
]
},
"mailingAddress": {
"oneOf": [
{
"$ref": "#/$defs/AddressRequest"
},
{
"type": "null"
}
]
},
"ownerType": {
"type": "string",
"enum": [
"business",
"dealer"
]
},
"dealerLicenseState": {
"type": [
"string",
"null"
],
"pattern": "^[A-Z]{2}$",
"description": "Two-letter US license state or territory; ignored unless ownerType is dealer. Invalid code: 400.\n"
}
},
"required": [
"ownerType"
]
},
"VehicleColorEnum": {
"type": "string",
"enum": [
"BLACK",
"BLUE",
"BROWN",
"GOLD",
"GRAY",
"GREEN",
"ORANGE",
"PINK",
"PURPLE",
"RED",
"SILVER",
"WHITE",
"YELLOW"
],
"description": "The approximate color of the vehicle."
},
"VehicleTypeEnum": {
"type": "string",
"enum": [
"CAR_SUV",
"PICKUP",
"VAN",
"MOTORHOME",
"MOTORCYCLE",
"COMMERCIAL_TRUCK",
"PICKUP_GT_1_TON",
"BUS",
"ATV",
"TRAILER",
"OTHER"
],
"description": "The standardized KeySavvy vehicle type."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/keysavvy-vehicle-create-request-body"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.