Volkswagen Configuration API

Configure vehicles — check buildability, recover, and resolve configurations.

OpenAPI Specification

volkswagen-configuration-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Volkswagen OKAPI - Open Konfigurator Catalog Configuration API
  description: The Volkswagen OKAPI (Open Konfigurator API) provides access to Volkswagen AG product data, enabling developers to browse vehicle catalogs, configure cars iteratively, validate buildability, retrieve WLTP emissions data, get configuration images, and obtain pricing and technical order information. Supports all VW Group brands across global markets.
  version: v3
  contact:
    name: Volkswagen OKAPI Developer Portal
    url: https://okapi-ddp.productdata.volkswagenag.com/dev-portal/
  license:
    name: Volkswagen OKAPI Terms and Conditions
    url: https://productdata.volkswagenag.com/condition-of-use.html
servers:
- url: https://productdata.volkswagenag.com/v3
  description: Volkswagen OKAPI API v3
security:
- BearerAuth: []
tags:
- name: Configuration
  description: Configure vehicles — check buildability, recover, and resolve configurations.
paths:
  /operation/{countryCode}/check:
    post:
      operationId: checkBuildability
      summary: Check Configuration Buildability
      description: Validates whether a given set of selected options forms a buildable vehicle configuration. Returns conflict information if options are incompatible.
      tags:
      - Configuration
      parameters:
      - $ref: '#/components/parameters/countryCode'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigurationRequest'
      responses:
        '200':
          description: Buildability check result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildabilityResult'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '406':
          $ref: '#/components/responses/NotAcceptable'
  /operation/{countryCode}/recover:
    post:
      operationId: recoverConfiguration
      summary: Recover Buildable Configuration
      description: Given an unbuildable configuration, returns the nearest valid buildable configuration by resolving conflicts between selected options.
      tags:
      - Configuration
      parameters:
      - $ref: '#/components/parameters/countryCode'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigurationRequest'
      responses:
        '200':
          description: Recovered buildable configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigurationResult'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /operation/{countryCode}/configure:
    post:
      operationId: getConfigurationOptions
      summary: Get Configuration Options
      description: Returns available options and choices for the current vehicle configuration, showing which options are selectable, unavailable, or required given current selections.
      tags:
      - Configuration
      parameters:
      - $ref: '#/components/parameters/countryCode'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigurationRequest'
      responses:
        '200':
          description: Available configuration choices.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigurationOptions'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /operation/{countryCode}/resolve:
    post:
      operationId: resolveConfiguration
      summary: Resolve Configuration
      description: Completes a partial configuration by resolving ambiguities and returning the fully distinct configuration with all options specified.
      tags:
      - Configuration
      parameters:
      - $ref: '#/components/parameters/countryCode'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigurationRequest'
      responses:
        '200':
          description: Fully resolved configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigurationResult'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    ConfigurationOptions:
      type: object
      properties:
        available:
          type: array
          items:
            type: string
          description: Option UUIDs currently selectable.
        unavailable:
          type: array
          items:
            type: string
          description: Option UUIDs not selectable with current selections.
        required:
          type: array
          items:
            type: string
          description: Option UUIDs required given current selections.
    ConfigurationResult:
      type: object
      properties:
        configId:
          type: string
          description: Session ID for continuing this configuration.
        typeId:
          type: string
        selectedOptions:
          type: array
          items:
            type: string
        buildable:
          type: boolean
    BuildabilityResult:
      type: object
      properties:
        buildable:
          type: boolean
          description: Whether the configuration is buildable.
        conflicts:
          type: array
          items:
            type: object
            properties:
              optionId:
                type: string
              reason:
                type: string
    ConfigurationRequest:
      type: object
      properties:
        typeId:
          type: string
          description: Vehicle type UUID.
        selectedOptions:
          type: array
          items:
            type: string
          description: UUIDs of currently selected configuration options.
        configId:
          type: string
          description: Optional configuration session ID for continuing a saved configuration.
  responses:
    Unauthorized:
      description: Missing or invalid bearer token.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
    NotAcceptable:
      description: Configuration has unresolvable conflicts (HTTP 406).
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
  parameters:
    countryCode:
      name: countryCode
      in: path
      required: true
      description: ISO 3166-2 market identifier (e.g. DE, AT, GB, US).
      schema:
        type: string
        example: DE
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Bearer token obtained by requesting client credentials from the Volkswagen OKAPI Developer Portal.