openapi: 3.0.2
info:
  description: |-
    <div style="">This API provides access to our Automotive Data. Use of this API is subject to our <a href="https://autodealerdata.com/tos">Terms of Service</a></div>
    &nbsp;
    <h3 style="">For a quick start guide <a href="/APIQuickStart">click here</a></h3>
    &nbsp;
    <div> If you signed up through RapidAPI make your test calls <a href="https://rapidapi.com/competitive-intelligence-solutions-llc-competitive-intelligence-solutions-llc-default/api/cis-automotive">here</a></div>
    &nbsp;
    <div>The general workflow is to: <br/>&nbsp;<div><strong>1.</strong> Authenticate with your CIS Automotive API Keys to get a Json Web Token (JWT). Do not use RapidAPI keys.</div>
    <div><div><strong>2.</strong> Then use that token as an argument when calling other endpoints.</div>
    &nbsp;
    <div>Equivalent HTTP GET and POST methods are available for some endpoints. </div>
    &nbsp;
    <div>Endpoints may appear more than once on this page if they are associated with multiple tags. eg "Sales Data", "Premium", "Pro Plan or Greater" To see which endpoints are included in different
    plans look under the "X Plan or Greater" tags for the respective plan name.</div>
    &nbsp;
    <h3>If you signed up for our API through RapidAPI you can make your test calls <a href="https://rapidapi.com/competitive-intelligence-solutions-llc-competitive-intelligence-solutions-llc-default/api/cis-automotive">on their platform</a>. 
    Your RapidAPI credentials will not work on this page.</h3><h3> Do not use your RapidAPI keys on this page.</h3>
    <h3>If you signed up with us and have an account, you must first authenticate with your API Keys 
    and retrieve a Json Web Token (JWT) from the /getToken endpoint to access the other endpoints.</h3> 

    <h3>Your JWT is a required argument to all endpoints.</h3></div>
  title: CIS Automotive API
  version: "1.0"
  x-apisguru-categories:
    - ecommerce
  x-origin:
    - format: openapi
      url: https://api.autodealerdata.com/openapi.json
      version: "3.0"
  x-providerName: autodealerdata.com
paths:
  /daysSupply:
    get:
      description: |-
        Average, median, standard deviation, population variance, and whole region average of the 
        days of supply left on dealer lots for a given brand and region. The average, median, stdDev, and pVar fields are calculated on
        a dealer by dealer basis while the whole region average treats the entire region like a single dealership. 
        The average field may differ from the whole region average, especially when dealers are out of 
        a given model. 

        The available brand and region names can be retrieved from their respective endpoints.
      operationId: daysSupply_daysSupply_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericResponse"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Days worth of supply left on dealer lots
      tags:
        - Supply Data
        - Developer Plan Or Greater
  /daysToSell:
    get:
      description: |-
        Average, median, standard deviation, population variance, and whole region average of the 
        number of days a vehicle spends on dealer lots for a given brand and region. The average, median, stdDev, and pVar fields are calculated on
        a dealer by dealer basis while the whole region average treats the entire region like a single dealership. 
        The average field may differ from the whole region average.

        The available brand and region names can be retrieved from their respective endpoints.
      operationId: daysToSell_daysToSell_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericResponse"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Days a vehicle takes to sell
      tags:
        - Supply Data
        - Developer Plan Or Greater
  /getBrands:
    get:
      description: |-
        Get vehicle brand names. 

        These names are used as arguments for other endpoints. The names are generally not case sensitive
        when used with other endpoints, but it is best practice to use the names returned by this endpoint without changes.
      operationId: getBrandNames_getBrands_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BrandResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Get a list of brand names
      tags:
        - Static Data
        - Starter Plan Or Greater
  /getDealers:
    get:
      description: |-
        Premium. Dealership information in a given zip code using the first 4 digits. Returns name, address, state, zipCode, and IDs.
        For example a call with the zip code 92701 would return dealers with zip codes in the range [92700, 92709]
      operationId: getDealers_getDealers_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: zipCode
          required: true
          schema:
            title: Zipcode
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DealershipDataResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Premium. Dealers in a zip code.
      tags:
        - Dealership Data
        - Premium
        - Developer Plan Or Greater
  /getDealersByID:
    get:
      description: |-
        Premium. Dealership information using the internal ID. Returns name, address, state, zipCode, and ID for a single dealer in the same format as the /getDealers endpoint.
        Dealer IDs are generally retrieved via the /getDealers or /getDealersByRegion endpoints.
      operationId: getDealers_getDealersByID_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: dealerID
          required: true
          schema:
            title: Dealerid
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DealershipDataResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Premium. Dealers by ID
      tags:
        - Dealership Data
        - Premium
        - Developer Plan Or Greater
  /getDealersByRegion:
    get:
      description: Premium. Dealership information in a given region. Returns name, address, state, zipCode, and IDs. Results are paginated with up to 30 results per page.
      operationId: getDealers_getDealersByRegion_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
        - in: query
          name: page
          required: false
          schema:
            default: 1
            title: Page
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DealershipDataPaginatedResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Premium. Dealers in a region.
      tags:
        - Dealership Data
        - Premium
        - Developer Plan Or Greater
  /getInactiveModels:
    get:
      description: |-
        Get all model names including discontinued models. Because these models are no longer built, or have very poor market performance
        they are not incuded in the normal getModels endpoint. Many users itterate through the model names with our new vehicle sales
        endpoints and waste some of their quota making self contradictory requests. This endpoint was created to aleviate the use case where
        someone requests information on new vehicle sales for a model that has not been sold new for a long, long, time. 

        These names are used as arguments for other endpoints. The names are generally not case sensitive
        when used with other endpoints, but it is best practice to use the names returned by this endpoint without changes.
      operationId: getModelNamesAll_getInactiveModels_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModelResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Get a list of model names including discontinued models
      tags:
        - Static Data
        - Starter Plan Or Greater
  /getModels:
    get:
      description: |-
        Get brand model names for currently active models. This endpoint does not return model names that have been discontinued or have 
        sold less than 10 vehicles in the last month and a half.

        These names are used as arguments for other endpoints. The names are generally not case sensitive
        when used with other endpoints, but it is best practice to use the names returned by this endpoint without changes.
      operationId: getModelNames_getModels_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModelResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Get a list of model names
      tags:
        - Static Data
        - Starter Plan Or Greater
  /getRegionBrandMarketShare:
    get:
      description: Market share of a given brand in a given region by number of vehicles sold over the last 45 days.
      operationId: getRegionBrandMarketShare_getRegionBrandMarketShare_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericResponse"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Market share of a brand in region
      tags:
        - Sales Data
        - Analyst Plan Or Greater
  /getRegionMarketShare:
    get:
      description: Market share of a all brands in a given region by number of vehicles sold over the last 45 days.
      operationId: getRegionMarketShare_getRegionMarketShare_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericResponse"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Market share of all brands in region
      tags:
        - Sales Data
        - Premium
        - Analyst Plan Or Greater
  /getRegions:
    get:
      description: |-
        Get region names. These names are used as arguments for other endpoints. The names are generally not case sensitive
        when used with other endpoints, but it is best practice to use the names returned by this endpoint without changes.
      operationId: getRegions_getRegions_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RegionResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Get a list of region names
      tags:
        - Static Data
        - Starter Plan Or Greater
  /getSubUserKeys:
    get:
      description: Get a list of your issued SubUser API Keys. Includes active and revoked keys.
      operationId: getSubUserKeys_getSubUserKeys_get
      parameters:
        - in: query
          name: apiID
          required: true
          schema:
            title: Apiid
            type: string
        - in: query
          name: apiKey
          required: true
          schema:
            title: Apikey
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericResponse"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Get all Sub User Keys associated with your account.
      tags:
        - Authentication
  /getToken:
    get:
      description: |-
        This is the first function you should call. 

        If you are accessing our API through a third party provider they will handle authenticating to our API for you 
        and you will not need call this function or retrieve a JSON Web Token. 

        All other functions require the JSON Web Token (JWT) from this function to 
        be incuded in their arguments. The value of the "token" field is the actual JWT and any other values in the returned JSON
        are metadata there for your convenience. Tokens are valid for a default of 1 hour (3600 seconds). If you try calling an
        API endpoint with a missing, invalid, or expired JWT it will return a HTTP 403 code. You would then need to call this end point
        to get a new token.
      operationId: makeToken_getToken_get
      parameters:
        - in: query
          name: apiID
          required: true
          schema:
            title: Apiid
            type: string
        - in: query
          name: apiKey
          required: true
          schema:
            title: Apikey
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JSONWebToken"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Get a JWT from your API credentials
      tags:
        - Authentication
    post:
      description: |-
        This is the first function you should call. 

        If you are accessing our API through a third party provider they will handle authenticating to our API for you 
        and you will not need call this function or retrieve a JSON Web Token. 

        All other functions require the JSON Web Token (JWT) from this function to 
        be incuded in their arguments. The value of the "token" field is the actual JWT and any other values in the returned JSON
        are metadata there for your convenience. Tokens are valid for a default of 1 hour (3600 seconds). If you try calling an
        API endpoint with a missing, invalid, or expired JWT it will return a HTTP 403 code. You would then need to call this end point
        to get a new token.
      operationId: makeToken_getToken_post
      parameters:
        - in: query
          name: apiID
          required: true
          schema:
            title: Apiid
            type: string
        - in: query
          name: apiKey
          required: true
          schema:
            title: Apikey
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JSONWebToken"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Get a JWT from your API credentials
      tags:
        - Authentication
  /listPrice:
    get:
      description: |-
        Average, median, standard deviation, and population variance of the ask price of new vehicles over the last 15 days for a given brand and region.

        The available brand and region names can be retrieved from their respective endpoints.
      operationId: getAvgListPrice_listPrice_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BasicModelStatsResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Stats on ask price of new vehicles
      tags:
        - Pricing Data
        - Starter Plan Or Greater
  /listings:
    get:
      description: |-
        See /listings2 endpoint for more flexible listing search.
        Returns a dealer's listings over the last 45 days by dealer ID. The ID can be found by calling the /getDealers endpoint. 
        Listing keys are: vin, askPrice, msrp, isNew, firstSeen, lastSeen, modelName, brandName.
        Results are paginated in chunks of up to 20 vehicles. Prices are in the dealer's local currency (generally USD).
      operationId: getListingsByDealer_listings_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: dealerID
          required: true
          schema:
            title: Dealerid
            type: integer
        - in: query
          name: page
          required: false
          schema:
            default: 1
            title: Page
            type: integer
        - in: query
          name: newCars
          required: false
          schema:
            default: true
            title: Newcars
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListingResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Listings by Dealer ID
      tags:
        - Vehicle Data
        - Analyst Plan Or Greater
  /listings2:
    get:
      description: |-
        Generic getter for listings supporting a wide array of selection criteria. This is the new primary listing endpoint and we will phase out the older listing endpoints over time.
        The other listing endpoints return the same data, but are more restrictive in the available geographic and vehicle selection criteria and can be replicated by this endpoint.

        Dealer selection uses the most restrictive criteria supplied. From most restrictive to least: dealerID, gps, zipCode, region. You must provide some dealer selection criteria.

        It is important to note that the units in the longitude are in degrees east, not degrees west. For example the coordinates 45.53N, 100.41W correspond to Mobridge, SC 
        but they will be interpreted as 45.53N, 100.41E which corresponds to a point in the Gobi Desert near Jinst, Mongolia. You can fix this by converting the longitiude yourself, 
        or by supplying a negative value (-100.41). For this example both (X, -100.41) and (X, 259.59) would be the same point. Units on the radius are miles and a smaller radius will
        result in a faster response time. Maximum search radius depends on your subscription plan. 

        The radius value is used for GPS searches and (optionally) zipCode searches. It is ignored for searches using other location criteria. If you provide a radius value with a zipCode
        search, the zipCode will be mapped to GPS coordinates behind the scenes. If no radius is provided or if the zipCode to GPS mapping fails,
        the API will only search for vehicles at dealerships within the provided zipCode.

        Listing selection logically ANDs all options given. 

        Time interval selection will prefer explicit start and end dates. If only one of startDate/endDate is supplied, this endpoint will use it 
        as an anchor and look forward or backwards by the daysBack value. If startDate is specified and endDate is not, then endDate will be set to startDate+daysBack. 
        Conversely if endDate is specified, but startDate is not then startDate will be set at endDate-daysBack.
        If neither is supplied endpoint will set endDate to today and startDate to today-daysBack.

        Maximum time interval is 45 days.

        Mileage selection uses the provided mileage values and returns vehicles with mileage in the range [mileageLow, mileageHigh].
        If mileageLow == mileageHigh (for example both are 0 default) this endpoint will not filter based on mileage. Not all used vehicles have a mileage record available. 

        ExtendedSearch modifies the slice of listings returned. If false (default) it only returns vehicles satisfying lastSeen >= startDate and lastSeen < endDate.
        If true it will return vehicles that were in dealer's inventory at any point between startDate and endDate including vehicles that were sold after endDate.
        Setting extendedSearch to true will result in a slower response time. 

        For example: If both a region name and dealer ID are supplied the dealer ID will be used because it is the most restrictive.

        If a brandName of Ford and modelYear of 2019, modelName of F-150, and newCars of False is supplied this endpoint will return 
        used 2019 model year Ford F-150s. If a contradictory listing selection is supplied (for example Ford + Camry) no listings will be returned
        because the request matched no listings.

        Results are paginated in chunks of up to 20 vehicles. Prices are in the dealer's local currency (generally USD).
      operationId: getListings2_listings2_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: dealerID
          required: false
          schema:
            default: 0
            title: Dealerid
            type: integer
        - in: query
          name: zipCode
          required: false
          schema:
            default: 0
            title: Zipcode
            type: integer
        - in: query
          name: latitude
          required: false
          schema:
            default: 0
            title: Latitude
            type: number
        - in: query
          name: longitude
          required: false
          schema:
            default: 0
            title: Longitude
            type: number
        - in: query
          name: radius
          required: false
          schema:
            default: 0
            title: Radius
            type: number
        - in: query
          name: regionName
          required: false
          schema:
            title: Regionname
            type: string
        - in: query
          name: brandName
          required: false
          schema:
            title: Brandname
            type: string
        - in: query
          name: modelName
          required: false
          schema:
            title: Modelname
            type: string
        - in: query
          name: modelYear
          required: false
          schema:
            default: 0
            title: Modelyear
            type: integer
        - in: query
          name: mileageLow
          required: false
          schema:
            default: 0
            title: Mileagelow
            type: integer
        - in: query
          name: mileageHigh
          required: false
          schema:
            default: 0
            title: Mileagehigh
            type: integer
        - in: query
          name: startDate
          required: false
          schema:
            format: date
            title: Startdate
            type: string
        - in: query
          name: endDate
          required: false
          schema:
            format: date
            title: Enddate
            type: string
        - in: query
          name: daysBack
          required: false
          schema:
            default: 45
            title: Daysback
            type: integer
        - in: query
          name: page
          required: false
          schema:
            default: 1
            title: Page
            type: integer
        - in: query
          name: newCars
          required: false
          schema:
            default: true
            title: Newcars
            type: boolean
        - in: query
          name: extendedSearch
          required: false
          schema:
            default: false
            title: Extendedsearch
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListingResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Flexible Listing Search
      tags:
        - Vehicle Data
        - Developer Plan Or Greater
  /listingsByDate:
    get:
      description: |-
        See /listings2 endpoint for more flexible listing search.
        Returns a dealer's listings over the given timespan by dealer ID. The ID can be found by calling the /getDealers endpoint. 
        Maximum time interval between startDate and endDate is 45 days.
        Listing keys are: vin, askPrice, msrp, isNew, firstSeen, lastSeen, modelName, brandName.
        Results are paginated in chunks of up to 20 vehicles. Prices are in the dealer's local currency (generally USD).
      operationId: getListingsByDealer_listingsByDate_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: dealerID
          required: true
          schema:
            title: Dealerid
            type: integer
        - in: query
          name: startDate
          required: true
          schema:
            format: date
            title: Startdate
            type: string
        - in: query
          name: endDate
          required: true
          schema:
            format: date
            title: Enddate
            type: string
        - in: query
          name: page
          required: false
          schema:
            default: 1
            title: Page
            type: integer
        - in: query
          name: newCars
          required: false
          schema:
            default: true
            title: Newcars
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListingResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Listings by Dealer ID and Date
      tags:
        - Vehicle Data
        - Analyst Plan Or Greater
  /listingsByRegion:
    get:
      description: |-
        See /listings2 endpoint for more flexible listing search.
        Returns a dealer's listings over up to the last 45 days by region. 
        Listing keys are: vin, askPrice, msrp, isNew, firstSeen, lastSeen, modelName, brandName.
        Results are paginated in chunks of up to 20 vehicles. Prices are in the dealer's local currency (generally USD).
      operationId: getListingsByRegion_listingsByRegion_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: regionName
          required: true
          schema:
            title: Regionname
            type: string
        - in: query
          name: modelName
          required: true
          schema:
            title: Modelname
            type: string
        - in: query
          name: daysBack
          required: false
          schema:
            default: 10
            title: Daysback
            type: integer
        - in: query
          name: page
          required: false
          schema:
            default: 1
            title: Page
            type: integer
        - in: query
          name: newCars
          required: false
          schema:
            default: true
            title: Newcars
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListingResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Listings by Region
      tags:
        - Vehicle Data
        - Analyst Plan Or Greater
  /listingsByRegionAndDate:
    get:
      description: |-
        See /listings2 endpoint for more flexible listing search.
        Returns listings active in a region in the given date range [startdate, endDate), or in other words dates that satisfy startDate <= X < endDate. Maximum range is 45 days 
        Listing keys are: vin, askPrice, msrp, isNew, firstSeen, lastSeen, modelName, brandName.
        Results are paginated in chunks of up to 20 vehicles. Prices are in the dealer's local currency (generally USD).
      operationId: getListingsByRegionAndDate_listingsByRegionAndDate_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: regionName
          required: true
          schema:
            title: Regionname
            type: string
        - in: query
          name: modelName
          required: true
          schema:
            title: Modelname
            type: string
        - in: query
          name: startDate
          required: true
          schema:
            format: date
            title: Startdate
            type: string
        - in: query
          name: endDate
          required: true
          schema:
            format: date
            title: Enddate
            type: string
        - in: query
          name: page
          required: false
          schema:
            default: 1
            title: Page
            type: integer
        - in: query
          name: newCars
          required: false
          schema:
            default: true
            title: Newcars
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListingResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Listings by Region and Date
      tags:
        - Vehicle Data
        - Analyst Plan Or Greater
  /listingsByZipCode:
    get:
      description: |-
        See /listings2 endpoint for more flexible listing search.
        Returns a dealer's listings over up to the last 45 days in the provided dealerhip's zip code. For example 92701.
        Listing keys are: vin, askPrice, msrp, isNew, firstSeen, lastSeen, modelName, brandName.
        Results are paginated in chunks of up to 20 vehicles. Prices are in the dealer's local currency (generally USD).
      operationId: listingsByZipCode_listingsByZipCode_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: zipCode
          required: true
          schema:
            title: Zipcode
            type: integer
        - in: query
          name: page
          required: false
          schema:
            default: 1
            title: Page
            type: integer
        - in: query
          name: newCars
          required: false
          schema:
            default: true
            title: Newcars
            type: boolean
        - in: query
          name: modelName
          required: false
          schema:
            title: Modelname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListingResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Listings by ZipCode
      tags:
        - Vehicle Data
        - Analyst Plan Or Greater
  /listingsByZipCodeAndDate:
    get:
      description: |-
        See /listings2 endpoint for more flexible listing search.
        Returns a dealer's listings over up to the last 45 days in the provided dealership's zip code. For example 92701.
        Listing keys are: vin, askPrice, msrp, isNew, firstSeen, lastSeen, modelName, brandName.
        Results are paginated in chunks of up to 20 vehicles. Prices are in the dealer's local currency (generally USD).
      operationId: listingsByZipCodeAndDate_listingsByZipCodeAndDate_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: zipCode
          required: true
          schema:
            title: Zipcode
            type: integer
        - in: query
          name: startDate
          required: true
          schema:
            format: date
            title: Startdate
            type: string
        - in: query
          name: endDate
          required: true
          schema:
            format: date
            title: Enddate
            type: string
        - in: query
          name: page
          required: false
          schema:
            default: 1
            title: Page
            type: integer
        - in: query
          name: newCars
          required: false
          schema:
            default: true
            title: Newcars
            type: boolean
        - in: query
          name: modelName
          required: false
          schema:
            title: Modelname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListingResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Listings by ZipCode and Date
      tags:
        - Vehicle Data
        - Analyst Plan Or Greater
  /makeSubUserKey:
    post:
      description: |-
        This endpoint is only fully available to users with a paid plan. Users on Basic or Trial plans may only create keys valid on the "localhost" domain.
        This endpoint creates an API key that can be embedded in frontend applications such as web pages that allow your users to directly make API calls. 
        The "endpoints" value is an array of strings that name the allowed endpoints that may be called using the Sub User Key. Passing a "*" value in the array will allow
        all endpoints that require a JWT (JSON Web Token) to be called by the Sub User Key. The keys are valid for as long as your account is valid or you revoke the Sub User Key.
        All API calls made by the Sub User Keys are billed to your account. Additionally you should not call this endpoint or the /revokeSubUserKey endpoint at a combined rate 
        higher than once per second. 
      operationId: makeSubUserKey_makeSubUserKey_post
      parameters:
        - in: query
          name: apiID
          required: true
          schema:
            title: Apiid
            type: string
        - in: query
          name: apiKey
          required: true
          schema:
            title: Apikey
            type: string
        - in: query
          name: siteName
          required: false
          schema:
            default: localhost
            title: Sitename
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EndpointList"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SubUserJSONWebToken"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Generate a Sub User Key that can be used by your users to make API calls in frontend applications.
      tags:
        - Authentication
  /modelYearDist:
    get:
      description: |-
        Market share of used vehicles over the last 45 days by model and year. All values are relative to vehicles of the same model.
        For example: a percentOfMarket value of 25, year of 2017, and modelName of Camry means that 25% of used Camrys on the market 
        in the given region over the last 45 days were from the 2017 model year.
      operationId: getModelUsedDist_modelYearDist_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: modelName
          required: true
          schema:
            title: Modelname
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModelYearDistResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Used market share of model year by model
      tags:
        - Sales Data
        - Starter Plan Or Greater
  /regionDailySales:
    get:
      description: |-
        Get regional sales by brand and day. Most recent data is typically only 2 days old for this endpoint.
            
        The Day field is in YYYY-MM-DD format. For example if you wanted sales data from April 5th of 2020 the day field would be '2020-04-05'

        Data availability depends on region and goes back up to 2016.
      operationId: getDealerSales_regionDailySales_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
        - in: query
          name: regionName
          required: true
          schema:
            title: Regionname
            type: string
        - in: query
          name: day
          required: true
          schema:
            format: date
            title: Day
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericResponse"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Brand sales by region and Day
      tags:
        - Sales Data
        - Analyst Plan Or Greater
  /regionSales:
    get:
      description: |-
        Premium. Get regional sales by brand and month, broken down by day. Most recent data is typically only 2 days old for this endpoint.
            
        The month field is in YYYY-MM-DD format. For example if you wanted sales data from April of 2020 the month field would be '2020-04-01'

        Data availability depends on region and goes back up to 2016.
      operationId: getDealerSales_regionSales_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
        - in: query
          name: regionName
          required: true
          schema:
            title: Regionname
            type: string
        - in: query
          name: month
          required: true
          schema:
            format: date
            title: Month
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericResponse"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Premium. Brand sales by region and month
      tags:
        - Sales Data
        - Premium
        - Analyst Plan Or Greater
  /revokeSubUserKey:
    put:
      description: Revoke a SubUser API Key with the given UUID. This action can not be undone.
      operationId: revokeSubUserKey_revokeSubUserKey_put
      parameters:
        - in: query
          name: apiID
          required: true
          schema:
            title: Apiid
            type: string
        - in: query
          name: apiKey
          required: true
          schema:
            title: Apikey
            type: string
        - in: query
          name: subUserKeyUUID
          required: true
          schema:
            title: Subuserkeyuuid
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericResponse"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Revoke a Sub User Key associated with your account.
      tags:
        - Authentication
  /salePrice:
    get:
      description: |-
        Average, median, standard deviation, and population variance of the sale price of new vehicles over the last 15 days for a given brand and region.

        The available brand and region names can be retrieved from their respective endpoints.
      operationId: getAvgSalePrice_salePrice_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BasicModelStatsResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Stats on sale price of new vehicles
      tags:
        - Pricing Data
        - Starter Plan Or Greater
  /salePriceHistogram:
    get:
      description: |-
        Histogram of the sale price of vehicles over the last 45 days for a given model and region. 
        Price buckets are grouped in units of $1000
        The available brand, model, and region names can be retrieved from their respective endpoints.
      operationId: getModelSaleBuckets_salePriceHistogram_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: modelName
          required: true
          schema:
            title: Modelname
            type: string
        - in: query
          name: brandName
          required: true
          schema:
            title: Brandname
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BucketResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Histogram of sales price of new vehicles by model
      tags:
        - Pricing Data
        - Starter Plan Or Greater
  /similarSalePrice:
    get:
      description: |-
        Premium. Provides the average, stdDev, and count, of the sale price and mileage of similar new and used vehicles in a given region based off the provided VIN. 
        Optionally restricts report to vehicles of the same model year and goes back up to 120 days.
      operationId: getMarket3_similarSalePrice_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: vin
          required: true
          schema:
            title: Vin
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
        - in: query
          name: daysBack
          required: false
          schema:
            default: 45
            title: Daysback
            type: integer
        - in: query
          name: sameYear
          required: false
          schema:
            default: false
            title: Sameyear
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SimilarSalePriceResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Premium. Simple Vehicle Market Report
      tags:
        - Vehicle Data
        - Premium
        - Pricing Data
        - Starter Plan Or Greater
  /topModels:
    get:
      description: |-
        Sales ranking of different models by region over the last 45 days. 
        The <strong>percentOfTopSales</strong> value is the percent of the top seller the model represents. 

        For example: a value of 80% means that model sold 8 vehicles for every 10 of the top model sold.

        The other fields represent the model percent of X. The <strong>brandMarketShare</strong> field is that brand's market share of the region
        over the report's time interval.
      operationId: getTopModels_topModels_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: regionName
          required: false
          schema:
            default: REGION_STATE_CA
            title: Regionname
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TopModelResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Top models in a given region
      tags:
        - Sales Data
        - Starter Plan Or Greater
  /valuation:
    get:
      description: |-
        Premium. Provides the average, stdDev, and count, of the sale price and mileage of similar new or used vehicles based off the provided VIN 
        and matching the provided other search criteria. This endpoint can be easily used to determine market values in arbitrary geographic locations (like a city)
        for specific vehicles.
        See /listings2 endpoint for documentation on location, vehicle, and time search parameters. 
        Date selection is restricted by your subscription tier, same as with the /listings2 endpoint.
        Optionally restricts report to vehicles of the same model year. 
      operationId: getMarket4_valuation_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: vin
          required: true
          schema:
            title: Vin
            type: string
        - in: query
          name: dealerID
          required: false
          schema:
            default: 0
            title: Dealerid
            type: integer
        - in: query
          name: zipCode
          required: false
          schema:
            default: 0
            title: Zipcode
            type: integer
        - in: query
          name: latitude
          required: false
          schema:
            default: 0
            title: Latitude
            type: number
        - in: query
          name: longitude
          required: false
          schema:
            default: 0
            title: Longitude
            type: number
        - in: query
          name: radius
          required: false
          schema:
            default: 0
            title: Radius
            type: number
        - in: query
          name: regionName
          required: false
          schema:
            title: Regionname
            type: string
        - in: query
          name: mileageLow
          required: false
          schema:
            default: 0
            title: Mileagelow
            type: integer
        - in: query
          name: mileageHigh
          required: false
          schema:
            default: 0
            title: Mileagehigh
            type: integer
        - in: query
          name: startDate
          required: false
          schema:
            format: date
            title: Startdate
            type: string
        - in: query
          name: endDate
          required: false
          schema:
            format: date
            title: Enddate
            type: string
        - in: query
          name: daysBack
          required: false
          schema:
            default: 45
            title: Daysback
            type: integer
        - in: query
          name: newCars
          required: false
          schema:
            default: false
            title: Newcars
            type: boolean
        - in: query
          name: extendedSearch
          required: false
          schema:
            default: false
            title: Extendedsearch
            type: boolean
        - in: query
          name: sameYear
          required: false
          schema:
            default: false
            title: Sameyear
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SimilarSalePriceResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Premium. Simple Vehicle Market Report Over Arbitrary Locations and Vehicles.
      tags:
        - Vehicle Data
        - Premium
        - Pricing Data
        - Developer Plan Or Greater
  /vehicleHistory:
    get:
      description: |-
        Premium. Provides a simple report detailing a vechicle's sales history at dealerships. Data includes the name of the dealership, dates it was for sale,
        price, new/used condition, mileage, dealership state, and dealership zip code. Data availability goes back to early 2016. 

        If your use case involves checking if a vehicle has appeared on the open market on or after a given date see 
        the /vehicleSeen endpoint.
      operationId: getHistory2_vehicleHistory_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: vin
          required: true
          schema:
            title: Vin
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HistoryResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Premium. Simple Vehicle History Report
      tags:
        - Vehicle Data
        - Premium
        - Starter Plan Or Greater
  /vehicleSeen:
    get:
      description: |-
        Checks our database to see if we have data on a VIN that appeared on the open market on or after the given date with a True/False response. 
        This endpoint is more cost effective than the /vehicleHistory endpoint if your use case
        requires searching a large list of vehicles with a low individual likelyhood of appearing on the open market. (For example searching for a specific stolen vehicle).
      operationId: getVehicleSeen_vehicleSeen_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: vin
          required: true
          schema:
            title: Vin
            type: string
        - in: query
          name: afterDate
          required: true
          schema:
            format: date
            title: Afterdate
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BooleanResp"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Checks if a VIN appeared on the market on or after a given date.
      tags:
        - Vehicle Data
        - Application Acceleration
        - Analyst Plan Or Greater
  /vinDecode:
    get:
      description: |-
        Decodes the provided North American vin and provides recall information if available. 
        We require at least the first 12 out of 17 characters in the vin to attempt a decode. The vin is not case sensitive.
        If passEmpty (default False) is True we will also include the empty fields in the response json. 
        If includeRecall (default True) is True we will include recall data reported to the NHTSA. Set False for a faster response.
      operationId: vinDecode_vinDecode_get
      parameters:
        - in: query
          name: jwt
          required: true
          schema:
            title: Jwt
            type: string
        - in: query
          name: vin
          required: true
          schema:
            title: Vin
            type: string
        - in: query
          name: passEmpty
          required: false
          schema:
            default: false
            title: Passempty
            type: boolean
        - in: query
          name: includeRecall
          required: false
          schema:
            default: true
            title: Includerecall
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericResponse"
          description: Successful Response
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HTTPValidationError"
          description: Validation Error
      summary: Vin decoder and Recall Info
      tags:
        - Vehicle Data
        - Starter Plan Or Greater
components:
  schemas:
    BasicModelStats:
      properties:
        average:
          title: Average
          type: number
        median:
          title: Median
          type: number
        name:
          title: Name
          type: string
        pVariance:
          title: Pvariance
          type: number
        stdDev:
          title: Stddev
          type: number
      required:
        - name
        - average
        - median
        - stdDev
        - pVariance
      title: BasicModelStats
      type: object
    BasicModelStatsResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          items:
            $ref: "#/components/schemas/BasicModelStats"
          title: Data
          type: array
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: BasicModelStatsResp
      type: object
    BooleanResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          title: Data
          type: boolean
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: BooleanResp
      type: object
    BrandResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          items:
            type: string
          title: Data
          type: array
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: BrandResp
      type: object
    BucketEntry:
      properties:
        bucket:
          title: Bucket
          type: number
        modelName:
          title: Modelname
          type: string
        percentOfMarket:
          title: Percentofmarket
          type: number
      required:
        - percentOfMarket
        - bucket
        - modelName
      title: BucketEntry
      type: object
    BucketResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          items:
            $ref: "#/components/schemas/BucketEntry"
          title: Data
          type: array
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: BucketResp
      type: object
    DealershipData:
      properties:
        address:
          title: Address
          type: string
        dealerName:
          title: Dealername
          type: string
        ids:
          items:
            type: integer
          title: Ids
          type: array
        state:
          title: State
          type: string
        zipCode:
          title: Zipcode
          type: integer
      required:
        - dealerName
        - zipCode
        - state
        - address
        - ids
      title: DealershipData
      type: object
    DealershipDataPaginated:
      properties:
        dealers:
          items:
            $ref: "#/components/schemas/DealershipData"
          title: Dealers
          type: array
        maxPages:
          title: Maxpages
          type: integer
        page:
          title: Page
          type: integer
      required:
        - page
        - maxPages
        - dealers
      title: DealershipDataPaginated
      type: object
    DealershipDataPaginatedResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          $ref: "#/components/schemas/DealershipDataPaginated"
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: DealershipDataPaginatedResp
      type: object
    DealershipDataResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          items:
            $ref: "#/components/schemas/DealershipData"
          title: Data
          type: array
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: DealershipDataResp
      type: object
    EndpointList:
      properties:
        endPoints:
          default:
            - "*"
          items:
            type: string
          title: Endpoints
          type: array
      title: EndpointList
      type: object
    GenericResponse:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          title: Data
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      title: GenericResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: "#/components/schemas/ValidationError"
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    HistoryResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          $ref: "#/components/schemas/VehHistoryData"
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: HistoryResp
      type: object
    JSONWebToken:
      properties:
        createdOn:
          title: Createdon
          type: integer
        expires:
          title: Expires
          type: integer
        token:
          title: Token
          type: string
      required:
        - token
      title: JSONWebToken
      type: object
    Listing:
      properties:
        askPrice:
          title: Askprice
          type: number
        brandName:
          title: Brandname
          type: string
        color:
          title: Color
          type: string
        dealerID:
          title: Dealerid
          type: integer
        firstSeen:
          format: date
          title: Firstseen
          type: string
        interiorColor:
          title: Interiorcolor
          type: string
        isNew:
          title: Isnew
          type: boolean
        lastSeen:
          format: date
          title: Lastseen
          type: string
        mileage:
          default: 0
          title: Mileage
          type: number
        modelName:
          title: Modelname
          type: string
        msrp:
          title: Msrp
          type: number
        vin:
          title: Vin
          type: string
        vinDecode:
          default: {}
          title: Vindecode
          type: object
        year:
          title: Year
          type: number
      required:
        - vin
        - askPrice
        - msrp
        - isNew
        - firstSeen
        - lastSeen
        - modelName
        - brandName
        - year
        - dealerID
      title: Listing
      type: object
    ListingResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          $ref: "#/components/schemas/ListingRespPaginated"
        endDate:
          format: date
          title: Enddate
          type: string
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
        startDate:
          format: date
          title: Startdate
          type: string
      required:
        - data
      title: ListingResp
      type: object
    ListingRespPaginated:
      properties:
        listings:
          items:
            $ref: "#/components/schemas/Listing"
          title: Listings
          type: array
        maxPages:
          title: Maxpages
          type: integer
        page:
          title: Page
          type: integer
      required:
        - page
        - maxPages
        - listings
      title: ListingRespPaginated
      type: object
    ModelDict:
      properties:
        modelName:
          title: Modelname
          type: string
      required:
        - modelName
      title: ModelDict
      type: object
    ModelResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          items:
            $ref: "#/components/schemas/ModelDict"
          title: Data
          type: array
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: ModelResp
      type: object
    ModelYearDistEntry:
      properties:
        brandName:
          title: Brandname
          type: string
        modelName:
          title: Modelname
          type: string
        percentOfMarket:
          title: Percentofmarket
          type: number
        year:
          title: Year
          type: integer
      required:
        - percentOfMarket
        - modelName
        - year
        - brandName
      title: ModelYearDistEntry
      type: object
    ModelYearDistResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          items:
            $ref: "#/components/schemas/ModelYearDistEntry"
          title: Data
          type: array
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: ModelYearDistResp
      type: object
    RegionResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          items:
            type: string
          title: Data
          type: array
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: RegionResp
      type: object
    SimilarSalePriceData:
      properties:
        daysBack:
          title: Daysback
          type: integer
        mileCount:
          title: Milecount
          type: integer
        milesAvg:
          title: Milesavg
          type: number
        milesStdDev:
          title: Milesstddev
          type: number
        newCount:
          title: Newcount
          type: integer
        newSaleAvg:
          title: Newsaleavg
          type: number
        newSaleStdDev:
          title: Newsalestddev
          type: number
        usedCount:
          title: Usedcount
          type: integer
        usedSaleAvg:
          title: Usedsaleavg
          type: number
        usedSaleStdDev:
          title: Usedsalestddev
          type: number
      required:
        - newSaleAvg
        - newSaleStdDev
        - newCount
        - usedSaleAvg
        - usedSaleStdDev
        - usedCount
        - milesAvg
        - milesStdDev
        - mileCount
        - daysBack
      title: SimilarSalePriceData
      type: object
    SimilarSalePriceResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          $ref: "#/components/schemas/SimilarSalePriceData"
        endDate:
          format: date
          title: Enddate
          type: string
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
        startDate:
          format: date
          title: Startdate
          type: string
      required:
        - data
        - startDate
        - endDate
      title: SimilarSalePriceResp
      type: object
    SubUserJSONWebToken:
      properties:
        createdOn:
          title: Createdon
          type: integer
        domain:
          title: Domain
          type: string
        endPoints:
          default:
            - "*"
          items:
            type: string
          title: Endpoints
          type: array
        expires:
          title: Expires
          type: integer
        token:
          title: Token
          type: string
        uuid:
          title: Uuid
          type: string
      required:
        - token
        - domain
        - uuid
      title: SubUserJSONWebToken
      type: object
    TopModelEntry:
      properties:
        brandMarketShare:
          title: Brandmarketshare
          type: number
        brandName:
          title: Brandname
          type: string
        modelName:
          title: Modelname
          type: string
        percentOfBrandSales:
          title: Percentofbrandsales
          type: number
        percentOfTopSales:
          title: Percentoftopsales
          type: number
      required:
        - percentOfTopSales
        - modelName
        - brandName
        - percentOfBrandSales
        - brandMarketShare
      title: TopModelEntry
      type: object
    TopModelResp:
      properties:
        brandName:
          title: Brandname
          type: string
        cacheTimeLimit:
          default: 600
          title: Cachetimelimit
          type: integer
        condition:
          title: Condition
          type: string
        data:
          items:
            $ref: "#/components/schemas/TopModelEntry"
          title: Data
          type: array
        modelName:
          title: Modelname
          type: string
        msg:
          title: Msg
          type: string
        regionName:
          title: Regionname
          type: string
      required:
        - data
      title: TopModelResp
      type: object
    ValidationError:
      properties:
        loc:
          items:
            type: string
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    VehHistory:
      properties:
        dealerName:
          title: Dealername
          type: string
        firstSeen:
          format: date
          title: Firstseen
          type: string
        lastSeen:
          format: date
          title: Lastseen
          type: string
        miles:
          title: Miles
          type: integer
        new:
          title: New
          type: boolean
        price:
          title: Price
          type: number
        state:
          title: State
          type: string
        zip:
          title: Zip
          type: integer
      required:
        - dealerName
        - firstSeen
        - lastSeen
        - price
        - new
        - miles
        - state
        - zip
      title: VehHistory
      type: object
    VehHistoryData:
      properties:
        data:
          items:
            $ref: "#/components/schemas/VehHistory"
          title: Data
          type: array
        vin:
          title: Vin
          type: string
      required:
        - vin
        - data
      title: VehHistoryData
      type: object
