Volteras Vehicle Connection API

The Vehicle Connection API from Volteras — 4 operation(s) for vehicle connection.

OpenAPI Specification

volteras-vehicle-connection-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: VOLTERAS CONNECT Accounts Vehicle Connection API
  version: 0.1.0
servers:
- url: https://api.volteras.com
- url: https://api.sandbox.volteras.com
tags:
- name: Vehicle Connection
paths:
  /v1/vehicles/{vehicle_id}:
    delete:
      tags:
      - Vehicle Connection
      summary: Action Disconnect
      description: 'This endpoint allows you to disconnect a specific vehicle from your organization, ceasing the synchronization of its data.

        After disconnection, the vehicle will no longer be accessible through your organization''s account.

        Note that it can take a few minutes for the disconnection to be processed.


        **Note:**

        - Disconnecting a vehicle is an irreversible action, and the vehicle''s data will no longer be synchronized with your organization.



        Possible Codes in Error Response (see [Errors](https://docs.volteras.com/api-reference/errors) for error response schema and meaning of codes):


        - AUTHENTICATION_ERROR

        - REQUEST_VALIDATION_ERROR

        - RESOURCE_NOT_FOUND

        - SERVER_ERROR'
      operationId: action_disconnect_v1_vehicles__vehicle_id__delete
      security:
      - OAuth2ClientCredentialsBearer: []
      parameters:
      - name: vehicle_id
        in: path
        required: true
        schema:
          type: string
          title: Vehicle ID
          description: Unique internal identifier for the vehicle.
        description: Unique internal identifier for the vehicle.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '202':
          description: Accepted
      x-list-error-codes:
      - RESOURCE_NOT_FOUND
  /v1/vehicles/connect:
    post:
      tags:
      - Vehicle Connection
      summary: Bulk Vin Connect
      description: 'Connect multiple VINs to the current organization.

        By default this endpoint is not enabled for organizations, please contact us to get access.

        Limited to 100 VINs per request.



        Possible Codes in Error Response (see [Errors](https://docs.volteras.com/api-reference/errors) for error response schema and meaning of codes):


        - AUTHENTICATION_ERROR

        - DEVICE_LIMIT_REACHED

        - NOT_PERMITTED

        - REQUEST_VALIDATION_ERROR

        - RESOURCE_NOT_FOUND

        - SERVER_ERROR'
      operationId: Bulk_VIN_connect_v1_vehicles_connect_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkConnectVehicleRequest'
        required: true
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkConnectVehicleResponse'
      security:
      - OAuth2ClientCredentialsBearer: []
      x-list-error-codes:
      - NOT_PERMITTED
      - RESOURCE_NOT_FOUND
      - DEVICE_LIMIT_REACHED
      - REQUEST_VALIDATION_ERROR
  /v1/vehicles/connect/{id}:
    get:
      tags:
      - Vehicle Connection
      summary: Bulk Vehicle Connect Group Status
      description: 'This returns the overall status of the connection request for all VINs.



        Possible Codes in Error Response (see [Errors](https://docs.volteras.com/api-reference/errors) for error response schema and meaning of codes):


        - AUTHENTICATION_ERROR

        - REQUEST_VALIDATION_ERROR

        - RESOURCE_NOT_FOUND

        - SERVER_ERROR'
      operationId: bulk_vehicle_connect_group_status_v1_vehicles_connect__id__get
      security:
      - OAuth2ClientCredentialsBearer: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          title: Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkConnectStatusResponse'
      x-list-error-codes:
      - RESOURCE_NOT_FOUND
  /v1/vehicles/connect/{id}/results:
    get:
      tags:
      - Vehicle Connection
      summary: Bulk Vehicle Connect Vin Results
      description: 'Get details of individual VINs that were sent in the connection request.



        Possible Codes in Error Response (see [Errors](https://docs.volteras.com/api-reference/errors) for error response schema and meaning of codes):


        - AUTHENTICATION_ERROR

        - REQUEST_VALIDATION_ERROR

        - RESOURCE_NOT_FOUND

        - SERVER_ERROR'
      operationId: bulk_vehicle_connect_vin_results_v1_vehicles_connect__id__results_get
      security:
      - OAuth2ClientCredentialsBearer: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          title: Id
      - name: maxPageSize
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 1
          - type: 'null'
          title: Max page size
          description: Max size of the returned list.
        description: Max size of the returned list.
      - name: currentPage
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          title: Current page
          description: Current page
        description: Current page
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageResults_VehicleInputResponse_'
      x-list-error-codes:
      - RESOURCE_NOT_FOUND
components:
  schemas:
    BulkConnectStatusResponse:
      properties:
        id:
          type: string
          title: Id
        status:
          $ref: '#/components/schemas/VehicleInputGroupStatusEnum'
        createdAt:
          type: string
          format: date-time
          title: Createdat
      type: object
      required:
      - id
      - status
      - createdAt
      title: BulkConnectStatusResponse
      description: Response for /connect/results/{id} endpoint
    VehicleInputResponseError:
      properties:
        code:
          type: string
          enum:
          - OEM_INCORRECT_REGION
          - OEM_VEHICLE_OFFLINE
          - OEM_VEHICLE_REMOTE_ACCESS_DISABLED
          - OEM_VEHICLE_DATA_SHARING_DISABLED
          - FLEET_CONSENT_MISSING
          - OEM_AUTH_DRIVER_IS_NOT_PRIMARY_USER
          - OEM_DEVICE_NOT_FOUND
          - OEM_VEHICLE_NOT_COMPATIBLE
          - OEM_VEHICLE_UPDATE_REQUIRED
          - DEVICE_LIMIT_REACHED
          - NOT_PERMITTED
          - VIN_UPLOAD_INVALID_FORMAT
          - INVALID_VIN
          - VIN_CHECK_NOT_SUPPORTED
          - VEHICLE_ALREADY_ADDED_TO_ORGANIZATION
          - VEHICLE_ALREADY_ADDED_CONNECTION_REQUIRED
          - VEHICLE_ALREADY_ADDED_INCOMPATIBLE
          - VEHICLE_ALREADY_ADDED_PENDING_CONNECTION
          - VIN_UPLOAD_NOT_SUPPORTED
          - VIN_BLACKLISTED
          - SUBJECTS_NOT_ASSIGNABLE
          title: Code
          description: Error code
        message:
          type: string
          title: Message
          description: Error message
        actionCategory:
          anyOf:
          - type: string
          - type: 'null'
          title: Actioncategory
          description: 'Category indicating who must act on this error: CUSTOMER_ACTION, CONTACT_SUPPORT, or UNDER_REVIEW'
      type: object
      required:
      - code
      - message
      title: VehicleInputResponseError
    VehicleInputGroupStatusEnum:
      type: string
      enum:
      - CREATED
      - PROCESSING
      - COMPLETED
      - FAILED
      title: VehicleInputGroupStatusEnum
    PageResults_VehicleInputResponse_:
      properties:
        results:
          items:
            $ref: '#/components/schemas/VehicleInputResponse'
          type: array
          title: Results
          default: []
        totalResults:
          type: integer
          title: Totalresults
          default: 0
      type: object
      title: PageResults[VehicleInputResponse]
    VehicleInputResponse:
      properties:
        vehicleId:
          anyOf:
          - type: string
          - type: 'null'
          title: Vehicleid
          description: Vehicle ID of the connected vehicle. This will only be set if the vehicle was connected successfully
        vehicleInputId:
          type: string
          title: Vehicleinputid
          description: ID of the vehicle input (IE this specific attempt for the VIN upload).
        status:
          $ref: '#/components/schemas/APIVehicleUploadStatus'
          description: 'Status of the vehicle connection attempt.

            - `CONNECTED`: The vehicle was successfully connected.

            - `PROCESSING`: The VIN is queued and waiting to be processed by the platform.

            - `PENDING`: The VIN has been ingested and is being connected. Check the message field for any required actions (e.g. vehicle must be driven to complete connection).

            - `CONNECTION_REQUIRED`: The vehicle owner needs to authenticate via our consent flow to complete the connection.

            - `INCOMPATIBLE`: The VIN is not compatible with the OEM''s connected vehicle platform.

            - `ERROR`: The connection failed — check the errors field for details.'
        message:
          type: string
          title: Message
          description: Message for the response.
        errors:
          items:
            $ref: '#/components/schemas/VehicleInputResponseError'
          type: array
          title: Errors
          description: Errors for the response, if any were raised
          default: []
        canRetry:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Canretry
          description: Whether the client can retry the upload on error.
        vin:
          anyOf:
          - type: string
          - type: 'null'
          title: Vin
          description: The VIN
        make:
          anyOf:
          - type: string
          - type: 'null'
          title: Make
          description: The vehicle make
        model:
          anyOf:
          - type: string
          - type: 'null'
          title: Model
          description: The vehicle model
        countryCode:
          anyOf:
          - type: string
          - type: 'null'
          title: Countrycode
          description: ISO two-character country code of the vehicle captured during upload, if provided.
        registrationPlate:
          anyOf:
          - type: string
          - type: 'null'
          title: Registrationplate
          description: Vehicle registration plate captured during upload, if provided.
        modelYear:
          anyOf:
          - type: integer
          - type: 'null'
          title: Modelyear
          description: Vehicle model year captured during upload, if provided.
        registrationDate:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Registrationdate
          description: Vehicle registration date captured during upload, if provided.
        owners:
          items:
            type: string
          type: array
          title: Owners
          description: Owner identifiers (emails or group names) captured during upload.
        tags:
          items:
            $ref: '#/components/schemas/Tag'
          type: array
          title: Tags
          description: Tags provided during the upload.
        wasAlreadyConnected:
          type: boolean
          title: Wasalreadyconnected
          description: True when this row landed on a vehicle that was already enrolled — i.e. a re-upload that updated existing tags/owners/etc. False for a fresh enrolment. Always false unless the row completed successfully on an existing vehicle.
          default: false
      type: object
      required:
      - vehicleInputId
      - status
      - message
      title: VehicleInputResponse
    BulkConnectVehicleRequest:
      properties:
        vehicles:
          items:
            $ref: '#/components/schemas/ConnectVehicleRequest'
          type: array
          maxItems: 100
          title: Vehicles
          description: The vehicles to connect
      type: object
      required:
      - vehicles
      title: BulkConnectVehicleRequest
      description: Request model to connect multiple VINs
    ConnectVehicleRequest:
      properties:
        vin:
          type: string
          title: Vin
          description: Vehicle identification number. Unique identifier for the vehicle.
        make:
          type: string
          enum:
          - ABARTH
          - ALFA ROMEO
          - AUDI
          - BMW
          - CHRYSLER
          - CITROEN
          - CUPRA
          - DODGE
          - DS AUTOMOBILES
          - FIAT
          - FORD
          - HYUNDAI
          - JEEP
          - KIA
          - LANCIA
          - LEXUS
          - MASERATI
          - MERCEDES BENZ
          - MINI
          - NISSAN
          - OPEL
          - PEUGEOT
          - POLESTAR
          - RAM
          - RENAULT
          - SEAT
          - SKODA
          - TESLA
          - TOYOTA
          - VAUXHALL
          - VOLKSWAGEN
          - VOLVO
          title: MakeEnum
          description: Manufacturer of the vehicle
        countryCode:
          anyOf:
          - type: string
          - type: 'null'
          title: Countrycode
          description: ISO two-character country code (ISO 3166-1 alpha-2, e.g. 'US', 'GB', 'FR') of the vehicle, used for retrieving vehicle specifications data. If not populated, will use the default setting (if set).
        registrationPlate:
          anyOf:
          - type: string
          - type: 'null'
          title: Registrationplate
          description: Vehicle registration plate
        model:
          anyOf:
          - type: string
          - type: 'null'
          title: Model
          description: Vehicle model
        modelYear:
          anyOf:
          - type: integer
          - type: 'null'
          title: Modelyear
          description: Vehicle model year (the year the model was released, not the year of manufacture)
        batteryCapacity:
          anyOf:
          - type: number
          - type: 'null'
          title: Batterycapacity
          description: Nominal (IE when manufactured) battery capacity in kWh of the vehicle
        horsepower:
          anyOf:
          - type: integer
          - type: 'null'
          title: Horsepower
          description: Vehicle horsepower
        generation:
          anyOf:
          - type: string
          - type: 'null'
          title: Generation
          description: Vehicle generation
        wltpRange:
          anyOf:
          - type: number
          - type: 'null'
          title: Wltprange
          description: WLTP range of the vehicle in km
        registrationDate:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Registrationdate
          description: Vehicle registration date (ISO 8601, day granularity). Must be on or before today. Used as the date-axis baseline for the service-interval cycle when the `DERIVED_SERVICING_REMINDER` setting is enabled for the organization.
        tags:
          anyOf:
          - items:
              $ref: '#/components/schemas/Tag'
            type: array
          - type: 'null'
          title: Tags
          description: Tags to associate with the vehicle, for example IDs you want to associate with it, that will then be returned when you fetch the vehicle and can be used to filter vehicles in the list vehicle endpoint.
      type: object
      required:
      - countryCode
      - vin
      - make
      title: ConnectVehicleRequest
      description: Request model to connect a single VIN
    APIVehicleUploadStatus:
      type: string
      enum:
      - CONNECTED
      - PROCESSING
      - PENDING
      - CONNECTION_REQUIRED
      - INCOMPATIBLE
      - ERROR
      title: APIVehicleUploadStatus
      description: Status of a vehicle connection attempt.
    BulkConnectVehicleResponse:
      properties:
        id:
          type: string
          title: Id
        status:
          $ref: '#/components/schemas/VehicleInputGroupStatusEnum'
        createdAt:
          type: string
          format: date-time
          title: Createdat
      type: object
      required:
      - id
      - status
      - createdAt
      title: BulkConnectVehicleResponse
      description: Response for async bulk vehicle upload endpoint on connect-api
    Tag:
      properties:
        key:
          type: string
          maxLength: 150
          title: Key
        value:
          type: string
          maxLength: 150
          title: Value
      type: object
      required:
      - key
      - value
      title: Tag
  securitySchemes:
    HTTPBasic:
      type: http
      scheme: basic
    OAuth2ClientCredentialsBearer:
      type: oauth2
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /v1/oauth2/token