PartsTech Vcdb API

Vehicle Configuration Database

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/partstech-vcdb-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

partstech-vcdb-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.021.1
  title: PartsTech Vcdb API
  description: "\n# Rate Limiting\n\nRequests can be limited by user requests, by private partner requests and by all requests with partner's credentials.\nIt has several time intervals:\n  - *Per day* restricts count of requests made in one day.\n  - *Requests per second* restricts count of requests made in one second.\n  - *Concurrent requests* restricts count of parallel requests.\n  - *Sliding 15 minutes* restricts count of requests made in last 15 minutes.\n\n**Note**: Every method has own separate sets of the limits.\n\n## Headers\nUse the HTTP headers in order to understand where the application is at for a given rate limit, on the method that was just utilized.\nThe HTTP header is returned only for one general limit or for limit that user reached.\n\n\n*Headers*\n  - the rate limit ceiling for that given endpoint:\n  ```\n  x-rate-limit-limit: 1000\n  ```\n  - the number of requests left:\n  ```\n  x-rate-limit-remaining: 570\n  ```\n  - the remaining window before the rate limit resets, in UTC [epoch seconds](https://en.wikipedia.org/wiki/Unix_time):\n  ```\n  x-rate-limit-reset: 1552003200\n  ```\n\nWhen an application exceeds the rate limit for a given standard API endpoint,\nthe API will return a HTTP 429 “Too Many Requests” response code, and the following error will be returned in the response body:\n```\n{\n  \"error\": {\n    \"code\": \"TooManyRequests\",\n    \"message\": \"Some description\"\n  }\n}\n```\n\n# Pagination\n\nWhen you call an API method to retrieve information, it can be returned to you in portions.\nCheck out more detail below on pagination in API methods, including how to use them and which methods follow the pattern.\n\nAPI methods that supports pagination will return the `Link` header. It will include available urls of `first`, `last`, `previous` and `next` pages.\n\n```\nLink: <https://api.partstech.com/purchases?page=1>; rel=\"first\"\nLink: <https://api.partstech.com/purchases?page=1>; rel=\"previous\"\nLink: <https://api.partstech.com/purchases?page=3>; rel=\"next\"\nLink: <https://api.partstech.com/purchases?page=142>; rel=\"last\"\n```\n\n# MOTOR Compliance Requirements\n\nAll MOTOR-powered endpoints (Labor, Maintenance Schedules, Fluids, and Specifications) return a `Link` header\ncontaining the URL to MOTOR's OEM Compliance Requirements documentation.\n\nThe header follows the [RFC 8288 (Web Linking)](https://tools.ietf.org/html/rfc8288) format:\n\n```\nLink: <https://www.motor.com/oem-compliance-requirements/>; rel=\"compliance\"\n```\n\n# Errors\n\nThe API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format:\n\n```\n{\n  \"error\": {\n    \"code\": \"InternalErrorCode\",\n    \"message\": \"Some description\"\n  }\n}\n```\n\n# Error Responses\nSome default error responses used in the API.\n\nHttp Code  | Explanation | Content Type | Used error codes\n----------------|-------------|------------------|---------\n400 | Bad Request. The request was unacceptable. | `application/json` | `InvalidRequestSyntax`\n401 | Unauthorized. The request requires user or partner credentials or bearer token. Also used for invalid credentials or bearer token. | `application/json` | `InvalidToken`, `UserAuthenticationFailed`, `PartnerAuthenticationFailed`\n402 | Request Failed. The parameters were valid but the request failed. | `application/json` | Different codes, depend on method.\n403 | Forbidden. Also used for unauthorized requests such as improper credentials scopes or permissions issues. | `application/json` | `IncorrectMode`, `DisabledApiUsage`, `UserIsNotActivated`, `HaveNotPermission`, `NotAvailableMethod`\n404 | Some data in the request is not found. Or incorrect url was used. | `application/json`, `text/html`, no content | `NotFound`\n405 | Method not allowed. | `application/json`, `text/html`, no content |\n406 | Unacceptable content type. Client sent an accepts header for a content type which does not exist on the server. | No content |\n409 | Locked. One of the another operations that is in progress blocks this method call. | `application/json` | `LockedSession`\n429 | Too Many Requests | `application/json` | `TooManyRequests`\n432 | Integration Error | `application/json` |\n500 | Internal Server Error. (This is rare.) | `application/json` | `InternalError`\n501 | Not Implemented | `application/json` | `MethodNotImplemented`\n503 | The backend server is not available. (This is rare.) | No content |\n"
  x-logo:
    url: https://partstech.com/wp-content/uploads/2025/03/PartsTech_OEC-compnay_logo.svg
    altText: PartsTech logo
servers:
- url: https://api.partstech.com
  description: Production server
- url: https://api.beta.partstech.com
  description: Beta server
tags:
- name: vcdb
  description: Vehicle Configuration Database
  x-displayName: Vehicle Configuration DB
paths:
  /taxonomy/vehicles/vin/{vin}:
    get:
      summary: Get Vehicle By VIN
      description: 'Returns vehicle information by VIN

        '
      operationId: getVehicleByVin
      x-operation-name: GetTaxonomyVehicleByVin
      tags:
      - vcdb
      security:
      - bearerAuth:
        - user
        - partner
      parameters:
      - name: vin
        in: path
        required: true
        schema:
          type: string
          minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseVehicle'
          headers:
            X-VCDB-VERSION:
              schema:
                type: string
                format: date
                description: Vehicle Configuration DB version
                example: 2019-04-15
  /taxonomy/vehicles/{vehicleID}:
    get:
      summary: Get/Search Vehicles
      description: 'Returns vehicle information by VehicleID

        '
      operationId: getVehicle
      x-operation-name: GetTaxonomyVehicle
      tags:
      - vcdb
      security:
      - bearerAuth:
        - user
        - partner
      parameters:
      - name: vehicleID
        in: path
        description: PartsTech's ID for a vehicle.
        required: true
        schema:
          type: integer
          pattern: \d{1,19}
        example: 613426
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseVehicle'
          headers:
            X-VCDB-VERSION:
              schema:
                type: string
                format: date
                description: Vehicle Configuration DB version
                example: 2019-04-15
  /taxonomy/vehicles:
    get:
      summary: List Vehicles
      description: 'Returns available vehicles list.


        `year`, `make`, `model` query parameters are **required**.


        `engine`, `region` and `submodel` query parameters are optional.

        '
      operationId: listVehicles
      x-operation-name: GetAllTaxonomyVehicles
      tags:
      - vcdb
      security:
      - bearerAuth:
        - user
        - partner
      parameters:
      - $ref: '#/components/parameters/year'
      - $ref: '#/components/parameters/make'
      - $ref: '#/components/parameters/model'
      - $ref: '#/components/parameters/submodel'
      - $ref: '#/components/parameters/engine'
      - $ref: '#/components/parameters/region'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResponseVehicle'
                example:
                - baseVehicleId: 140702
                  yearId: 2017
                  makeId: 21
                  modelId: 105
                  subModelId: 113
                  engineId: 5486
                  vehicleId: 613426
                  vehicleName: 2017 Kia Rio LX 1.6L L4  DOHC G4FD
                  engineParams:
                    engineVinId: 1
                    engineDesignationId: 4985
                    engineVersionId: 3
                    fuelTypeId: 5
                    cylinderHeadTypeId: 6
                  region: US
                  regions:
                  - US
                - baseVehicleId: 140702
                  yearId: 2017
                  makeId: 21
                  modelId: 105
                  subModelId: 113
                  engineId: 5486
                  vehicleId: 473536
                  vehicleName: 2017 Kia Rio LX 1.6L L4 vin 3 DOHC G4FD
                  engineParams:
                    engineVinId: 6
                    engineDesignationId: 4985
                    engineVersionId: 3
                    fuelTypeId: 5
                    cylinderHeadTypeId: 6
                  region: null
                  regions:
                  - US
                  - CA
          headers:
            X-VCDB-VERSION:
              schema:
                type: string
                format: date
                description: Vehicle Configuration DB version
                example: 2019-04-15
  /taxonomy/vehicles/years:
    get:
      summary: Get Years
      description: 'Returns available years.


        `make` and `model` query parameters are available and optional.

        '
      operationId: getYears
      x-operation-name: GetAllTaxonomyVehiclesYears
      tags:
      - vcdb
      security:
      - bearerAuth:
        - user
        - partner
      parameters:
      - $ref: '#/components/parameters/make'
      - $ref: '#/components/parameters/model'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: integer
                example:
                - 2016
                - 2017
                - 2018
                - 2019
          headers:
            X-VCDB-VERSION:
              schema:
                type: string
                format: date
                description: Vehicle Configuration DB version
                example: 2019-04-15
  /taxonomy/vehicles/makes:
    get:
      summary: Get Makes
      description: 'Returns available makes.


        `year`, `model`, `submodel` query parameters are available and optional.

        '
      operationId: getMakes
      x-operation-name: GetAllTaxonomyVehiclesMakes
      tags:
      - vcdb
      security:
      - bearerAuth:
        - user
        - partner
      parameters:
      - $ref: '#/components/parameters/year'
      - $ref: '#/components/parameters/model'
      - $ref: '#/components/parameters/submodel'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    makeName:
                      type: string
                    makeId:
                      type: integer
                example:
                - makeName: Jaguar
                  makeId: 20
                - makeName: Kia
                  makeId: 21
                - makeName: Volvo
                  makeId: 27
                - makeName: BMW
                  makeId: 31
          headers:
            X-VCDB-VERSION:
              schema:
                type: string
                format: date
                description: Vehicle Configuration DB version
                example: 2019-04-15
  /taxonomy/vehicles/models:
    get:
      summary: Get Models
      description: 'Returns available models.


        `year`, `make`, `submodel` query parameters are available.


        One of `year` and `make` are **required**.

        '
      operationId: getModels
      x-operation-name: GetAllTaxonomyVehiclesModels
      tags:
      - vcdb
      security:
      - bearerAuth:
        - user
        - partner
      parameters:
      - $ref: '#/components/parameters/year'
      - $ref: '#/components/parameters/make'
      - $ref: '#/components/parameters/submodel'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    modelName:
                      type: string
                    modelId:
                      type: integer
                example:
                - modelId: 104
                  modelName: Optima
                - modelId: 105
                  modelName: Rio
                - modelId: 106
                  modelName: Sedona
                - modelId: 108
                  modelName: Sorento
          headers:
            X-VCDB-VERSION:
              schema:
                type: string
                format: date
                description: Vehicle Configuration DB version
                example: 2019-04-15
  /taxonomy/vehicles/submodels:
    get:
      summary: Get Submodels
      description: 'Returns available submodels.


        `year`, `make`, `model` and `engine` query parameters are available.


        `year`, `make`, `model` are **required**.


        `engine` and `region` are optional.

        '
      operationId: getSubmodels
      x-operation-name: GetAllTaxonomyVehiclesSubmodels
      tags:
      - vcdb
      security:
      - bearerAuth:
        - user
        - partner
      parameters:
      - $ref: '#/components/parameters/year'
      - $ref: '#/components/parameters/make'
      - $ref: '#/components/parameters/model'
      - $ref: '#/components/parameters/engine'
      - $ref: '#/components/parameters/region'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    submodelName:
                      type: string
                    submodelId:
                      type: integer
                    region:
                      type:
                      - string
                      - 'null'
                      description: ISO 3166-1 alpha-2
                      deprecated: true
                    regions:
                      $ref: '#/components/schemas/Regions'
                example:
                - submodelId: 3
                  submodelName: SX
                  region: US
                  regions:
                  - US
                - submodelId: 113
                  submodelName: LX
                  region: CA
                  regions:
                  - CA
                - submodelId: 191
                  submodelName: EX
                  region: null
                  regions:
                  - US
                  - CA
          headers:
            X-VCDB-VERSION:
              schema:
                type: string
                format: date
                description: Vehicle Configuration DB version
                example: 2019-04-15
  /taxonomy/vehicles/engines:
    get:
      summary: Get Engines
      description: 'Returns available engines with engine params.


        `year`, `make`, `model` and `submodel` are **required**.


        `region` is optional.

        '
      operationId: getEngines
      x-operation-name: GetAllTaxonomyVehiclesEngines
      tags:
      - vcdb
      security:
      - bearerAuth:
        - user
        - partner
      parameters:
      - $ref: '#/components/parameters/year'
      - $ref: '#/components/parameters/make'
      - $ref: '#/components/parameters/model'
      - $ref: '#/components/parameters/submodel'
      - $ref: '#/components/parameters/region'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    engineId:
                      type: integer
                    engineName:
                      type: string
                    engineParams:
                      $ref: '#/components/schemas/EngineParams'
                    region:
                      type:
                      - string
                      - 'null'
                      description: ISO 3166-1 alpha-2
                      deprecated: true
                    regions:
                      $ref: '#/components/schemas/Regions'
                example:
                - engineId: 5486
                  engineName: 1.6L L4 vin 3 DOHC G4FD
                  engineParams:
                    engineVinId: 6
                    engineDesignationId: 4985
                    engineVersionId: 3
                    fuelTypeId: 5
                    cylinderHeadTypeId: 6
                  region: US
                  regions:
                  - US
                - engineId: 5486
                  engineName: 1.6L L4  DOHC G4FD
                  engineParams:
                    engineVinId: 1
                    engineDesignationId: 4985
                    engineVersionId: 3
                    fuelTypeId: 5
                    cylinderHeadTypeId: 6
                  region: null
                  regions:
                  - US
                  - CA
          headers:
            X-VCDB-VERSION:
              schema:
                type: string
                format: date
                description: Vehicle Configuration DB version
                example: 2019-04-15
components:
  schemas:
    EngineParams:
      title: Engine params
      type: object
      required:
      - engineVinId
      - engineDesignationId
      - engineVersionId
      - fuelTypeId
      - cylinderHeadTypeId
      properties:
        engineVinId:
          type: integer
          example: 134
        engineDesignationId:
          type: integer
          example: 344
        engineVersionId:
          type: integer
          example: 342
        fuelTypeId:
          type: integer
          example: 54
        cylinderHeadTypeId:
          type: integer
          example: 25243
    Regions:
      description: Array of country codes ISO 3166-1 alpha-2
      type: array
      items:
        type: string
      example:
      - US
      - CA
    ResponseVehicle:
      type:
      - object
      - 'null'
      required:
      - baseVehicleId
      - yearId
      - makeId
      - makeName
      - modelId
      - modelName
      - subModelId
      - subModelName
      - engineId
      - vehicleName
      - vehicleId
      - engineParams
      - engineName
      - regions
      - deprecated
      properties:
        baseVehicleId:
          type: integer
          example: 475485
        yearId:
          type: integer
          example: 2012
        makeId:
          type: integer
          example: 2
        makeName:
          type: string
          example: Porsche
        modelId:
          type: integer
          example: 10
        modelName:
          type: string
          example: 911
        subModelId:
          type: integer
          example: 55
        subModelName:
          type: string
          example: Carrera
        engineId:
          type: integer
          example: 2568
        vehicleName:
          type: string
          example: 2012 Porsche 911 Carrera 3.6L H6  DOHC
          description: Name of the vehicle selected for fitment during the PartsTech session. Typically consists of year, make, model, and engine.
        vehicleId:
          description: PartsTech's ID for a vehicle.
          type: integer
          example: 258298
        engineParams:
          $ref: '#/components/schemas/EngineParams'
        engineName:
          type: string
          example: 3.6L H6  DOHC
        region:
          type:
          - string
          - 'null'
          description: ISO 3166-1 alpha-2
          example: US
          deprecated: true
        regions:
          $ref: '#/components/schemas/Regions'
        deprecated:
          type: boolean
          example: false
  parameters:
    submodel:
      name: submodel
      in: query
      description: Submodel ID
      schema:
        type:
        - integer
        - 'null'
        pattern: \d+
      required: false
      x-serializer-class: com.partstech.partnerapi.serialization.NullableInt
      example: 113
    region:
      name: region
      in: query
      description: Region
      schema:
        type: string
        enum:
        - US
        - CA
        - MX
      required: false
      example: US
    engine:
      name: engine
      in: query
      description: Base Engine ID
      schema:
        type: integer
        pattern: \d+
      required: false
      x-serializer-class: com.partstech.partnerapi.serialization.NullableInt
      example: 5486
    make:
      name: make
      in: query
      description: Make ID
      schema:
        type: integer
        pattern: \d+
      required: false
      x-serializer-class: com.partstech.partnerapi.serialization.NullableInt
      example: 21
    year:
      name: year
      in: query
      description: Year
      schema:
        type: integer
        minLength: 4
        maxLength: 4
        pattern: \d{4,4}
      required: false
      x-serializer-class: com.partstech.partnerapi.serialization.NullableInt
      example: 2017
    model:
      name: model
      in: query
      description: Model ID
      schema:
        type: integer
        pattern: \d+
      required: false
      x-serializer-class: com.partstech.partnerapi.serialization.NullableInt
      example: 105
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: "Get access to data while protecting your account credentials.\nToken (a JWT token) are also a safer and more secure way to give you access.\n\nIt provides two ways of access:\n - `user` - Give an access to user methods.\n - `partner` - Give an acess to partner methods.\n\nTo use this way you need:\n1. Get an access token. See [\"Authentication and Access\"](#operation/getAcessToken).\n2. Add a header in the request\n```\nAuthorization: Bearer <accessToken>\n```\n3. Refresh tokens, when it expires, using `refreshToken`. See [\"Authentication and Access\"](#operation/refreshAccessToken). **Deprecated**.\nGenerate a new token after an expiration of previous instead of refreshing .\n"
    apiKeyAuth:
      type: apiKey
      in: header
      name: credentials
      description: "It is a deprecated way to get access to the methods, used only in the methods, that were in the previous version.\n\nIt provides two ways of an access:\n - `user` - Give access to user methods.\n - `partner` - Give acess to partner methods.\n\nTo use this way you need to add credentials in the request body, where it is allowed, in a next format:\n - for user methods:\n```\n\"credentials\": {\n    \"user\": {\n      \"id\": \"username\",\n      \"key\": \"APIKey\"\n    },\n    \"partner\": {\n      \"id\": \"username\",\n      \"key\": \"APIKey\"\n    }\n}\n```\n - for partner methods:\n```\n\"credentials\": {\n    \"partner\": {\n      \"id\": \"username\",\n      \"key\": \"APIKey\"\n    }\n}\n```\n\nFor example content of method [`Submit Cart`](#operation/submitCart) will be modified:\n```\n{\n  \"sessionId\": \"123asjkdhyr34234\"\n}\n```\n\n```\n{\n  \"sessionId\": \"123asjkdhyr34234\",\n  \"credentials\": {\n    \"user\": {\n      \"id\": \"mechanic\",\n      \"key\": \"Mechanic's API key\"\n    },\n    \"partner\": {\n      \"id\": \"partner name\",\n      \"key\": \"partner's API key\"\n    }\n  }\n}\n```\n"
x-tagGroups:
- name: Authentication
  tags:
  - auth
- name: Punchout
  tags:
  - punchout_quote
- name: Cart
  tags:
  - punchout-cart
  - session-cart
  - callback-cart
  - punchout-orders
  - custom-cart
- name: Catalog
  tags:
  - vin
  - search
  - quoting
  - parts
  - tires
  - brands
- name: Taxonomy
  tags:
  - pcdb
  - vcdb
  - jobs
- name: Profile
  tags:
  - user
  - shop
  - supplier_preferences
  - orders
- name: Partner
  tags:
  - users
  - shops
  - ex-permissions
  - partner-orders
  - auto-connect
- name: Others
  tags:
  - suppliers
  - local-inventory
- name: Motor Taxonomy
  tags:
  - motor-labor
  - motor-maintenance-schedules
  - motor-fluids
  - motor-specifications
- name: Mitchell1 Taxonomy
  tags:
  - mitchell1
  - mitchell1-labor