openapi: 3.0.0
info:
  title: 'API Auctions'
  description: 'REST/JSON API over publicly listed Copart / IAAI / Emirates Auction lots. Two production versions are served on the same host: v1 (`/api/v1/*`) and v2 (`/api/v2/*`). Authentication: `Authorization: Bearer <token>` is the primary method; the same token is also accepted as the legacy `?api_token=<token>` query parameter.'
  version: 2.0.0
servers:
  -
    url: /
    description: 'Current host'
paths:
  /api/v1/get-car-vin:
    post:
      tags:
        - 'API Version 1'
      summary: 'Getting a vechicle and its trading history by VIN number'
      operationId: a07cfd1f21a12195cfedd0664d416509
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - vin_number
              properties:
                vin_number:
                  description: 'Vechicle VIN number'
                  type: string
                  example: 5UXKR0C52G0P21189
                only_with_color:
                  description: 'Get car only with color'
                  type: integer
                  example: 0
                without_hidden_cars_by_resource_id:
                  description: 'Exclude cars hidden by the given resource id'
                  type: integer
              type: object
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
        422:
          description: 'Unprocessable content - either the required request parameters were not passed or were passed incorrectly.'
  /api/v1/buy-now-cars:
    post:
      tags:
        - 'API Version 1'
      summary: 'Listing of only buy now vehicles with trading history'
      operationId: 3e756a0fedded0e68dce82464a4d079a
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - page
              properties:
                make:
                  description: 'Vichecle make (mark)'
                  type: string
                  example: BMW
                model:
                  description: 'Vichecle model'
                  type: string
                  example: X3
                year_from:
                  description: 'Vichecle release year (from)'
                  type: string
                  example: '2018'
                year_to:
                  description: 'Vichecle release year (to)'
                  type: string
                  example: '2020'
                auction_name:
                  description: 'Filter by auction name'
                  type: string
                  example: COPART
                auction_date_from:
                  description: "Date of the auction in which the vechicle could participate (from). Field REQUIRED if 'auction_date_to' is present and not empty."
                  type: string
                  example: '2023-10-01'
                auction_date_to:
                  description: 'Date of the auction in which the vechicle could participate (to)'
                  type: string
                  example: '2023-12-31'
                sale_price_from:
                  description: "Filter sale price by last sale (from). Field REQUIRED if 'sale_price_to' is present and not empty."
                  type: integer
                  example: 0
                sale_price_to:
                  description: "Filter sale price by last sale (to). Field REQUIRED if 'sale_price_from' is present and not empty."
                  type: integer
                  example: 100000
                created_at_from:
                  description: 'Filter created_at field (from).'
                  type: string
                  example: '2020-01-01'
                created_at_to:
                  description: "Filter created_at field (from). Field REQUIRED if 'created_at_from' is present and not empty."
                  type: string
                  example: '2030-12-31'
                per_page:
                  description: 'Number of elements per page'
                  type: integer
                  example: 10
                page:
                  description: 'Page number of pagination'
                  type: integer
                  example: 1
                without_hidden_cars_by_resource_id:
                  description: 'Exclude cars hidden by the given resource id'
                  type: integer
              type: object
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
  /api/v1/get-car-lot:
    post:
      tags:
        - 'API Version 1'
      summary: 'Getting a car and its trading history by lot number'
      operationId: 5eaba82b54b9376b62e1d226d4b7274e
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - lot_number
              properties:
                lot_number:
                  description: 'Vechicle lot number'
                  type: integer
                  example: 40365342
                only_with_color:
                  description: 'Get car only with color'
                  type: integer
                  example: 0
                without_hidden_cars_by_resource_id:
                  description: 'Exclude cars hidden by the given resource id'
                  type: integer
              type: object
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
        422:
          description: 'Unprocessable content - either the required request parameters were not passed or were passed incorrectly.'
  /api/v1/get-car-count-history:
    post:
      tags:
        - 'API Version 1'
      summary: 'Number of records in the history of the auction of the car by vin number'
      operationId: 5eb993f7f70ca8eccb62cc3da3f0dbdd
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - vin_number
              properties:
                vin_number:
                  description: 'Vechicle VIN number'
                  type: string
                  example: 5UXKR0C52G0P21189
                without_hidden_cars_by_resource_id:
                  description: 'Exclude cars hidden by the given resource id'
                  type: integer
              type: object
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
        422:
          description: 'Unprocessable content - either the required request parameters were not passed or were passed incorrectly.'
  /api/v1/get-makes:
    post:
      tags:
        - 'API Version 1'
      summary: 'Getting a list of car brands. The method is not available with a demo api token, use your personal api token'
      operationId: b241cecdbd025ae1b4e37fee1fd0103b
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
  /api/v1/get-models:
    post:
      tags:
        - 'API Version 1'
      summary: 'Getting a list of car models. The method is not available with a demo api token, use your personal api token'
      operationId: 9b63a6b71dce2c2eb1db43a70811366a
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
  /api/v1/get-series:
    post:
      tags:
        - 'API Version 1'
      summary: 'Getting a series of cars. The method is not available with a demo api token, use your personal api token'
      operationId: 08619e074400d356e01ef9fa9d56041c
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
  /api/v1/get-vehicles-type:
    post:
      tags:
        - 'API Version 1'
      summary: 'Getting car types. The method is not available with a demo api token, use your personal api token'
      operationId: 293ff71c8687521874eecbe459bbc379
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
  /api/v1/get-body-classes:
    post:
      tags:
        - 'API Version 1'
      summary: 'Get car body types. The method is not available with a demo api token, use your personal api token'
      operationId: 72406cf3b2a8b3adbd4ac9fc3070d431
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
  '/api/v1/get-model-by-make/{makeId}':
    post:
      tags:
        - 'API Version 1'
      summary: 'Get a model by car brand. The method is not available with a demo api token, use your personal api token'
      operationId: 58b37e2da6bb2f5210343d952079ae98
      parameters:
        -
          name: makeId
          in: path
          description: 'Vechicle make id'
          required: true
          schema:
            type: integer
          example: 2
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
  '/api/v1/get-series-by-model/{modelId}':
    post:
      tags:
        - 'API Version 1'
      summary: 'Get a series by car model. The method is not available with a demo api token, use your personal api token'
      operationId: 46142b3c16bb310969dc578f9a7cdfdd
      parameters:
        -
          name: modelId
          in: path
          description: 'Vechicle model id'
          required: true
          schema:
            type: integer
          example: 2
      responses:
        200:
          description: 'OK - Vechicle info.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
  /api/get-similar-active-car:
    post:
      tags:
        - 'API Version 1'
      summary: 'Get similar active lots'
      operationId: 96f2ff3dfa36a202cdfa6ad6fdff903a
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - make
                - model
                - year
              properties:
                make:
                  type: string
                  example: TOYOTA
                model:
                  type: string
                  example: CAMRY
                year:
                  type: integer
                  example: 2020
                price:
                  description: 'Optional current price. Similar lots are searched up to 30 percent above it.'
                  type: integer
                  example: 15000
                  nullable: true
                count:
                  type: integer
                  example: 8
                  nullable: true
                  maximum: 20
                  minimum: 1
                exclude_hidden_cars_by_resource:
                  type: string
                  example: hideautovin
                  nullable: true
                without_hidden_cars_by_resource_id:
                  type: integer
                  example: 9
                  nullable: true
              type: object
      responses:
        200:
          description: 'OK - Similar active lots.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
        422:
          description: 'Unprocessable content - the request parameters are invalid.'
  /api/v1/service/last-active-lots:
    post:
      tags:
        - 'API Version 1 Service'
      summary: 'Listing of latest active lots'
      operationId: 14fb6fbeff26af5501fd84fb35d23a15
      requestBody:
        required: false
        content:
          application/json:
            schema:
              properties:
                without_hidden_cars_by_resource_id:
                  description: 'Exclude lots hidden for the specified resource.'
                  type: integer
                  example: 9
                  nullable: true
                  maximum: 999
                  minimum: 1
                required_fields:
                  description: 'Only return lots with values for every listed field.'
                  type: array
                  items:
                    type: string
                    enum:
                      - color
                      - engine_type
                  example:
                    - color
                    - engine_type
                  nullable: true
                  maxItems: 50
              type: object
      responses:
        200:
          description: 'OK - latest active lots.'
        401:
          description: Unauthorized.
        402:
          description: 'Payment Required.'
        422:
          description: 'Validation error.'
  /api/v1/service/get-seller-reserve:
    post:
      tags:
        - 'API Version 1 Service'
      summary: 'Getting seller reserve values for lots'
      operationId: 948e612f5a8242f229f70f6d1abd696c
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                page:
                  description: 'Result page'
                  type: integer
                  example: 1
                vin:
                  description: 'Filter by VIN list'
                  type: array
                  items:
                    type: string
                lot_number:
                  description: 'Filter by lot number list'
                  type: array
                  items:
                    type: integer
              type: object
      responses:
        200:
          description: 'OK - Seller reserve list.'
        404:
          description: 'Not Found - The api_token key is invalid or the user is not an admin.'
        422:
          description: 'Unprocessable content - request parameters were passed incorrectly.'
  /api/v1/service/get-lots:
    post:
      tags:
        - 'API Version 1 Service'
      summary: 'Listing of vehicles with trading history for admin service API'
      operationId: 3a06e4ad016ad5395f688ad589e6d297
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - page
              properties:
                page:
                  description: 'Result page'
                  type: integer
                  example: 1
                per_page:
                  description: 'Items per page'
                  type: integer
                  example: 10
              type: object
      responses:
        200:
          description: 'OK - List of vehicles.'
        404:
          description: 'Not Found - The api_token key is invalid or the user is not an admin.'
        422:
          description: 'Unprocessable content - request parameters were passed incorrectly.'
  /api/v1/service/get-active-lots:
    post:
      tags:
        - 'API Version 1 Service'
      summary: 'Listing of active lots for admin service API'
      operationId: 4ef53a2700999ad0e074e22a4a633801
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - page
              properties:
                page:
                  description: 'Result page'
                  type: integer
                  example: 1
                per_page:
                  description: 'Items per page'
                  type: integer
                  example: 10
              type: object
      responses:
        200:
          description: 'OK - List of active lots.'
        404:
          description: 'Not Found - The api_token key is invalid or the user is not an admin.'
        422:
          description: 'Unprocessable content - request parameters were passed incorrectly.'
  /api/v1/service/searched-cars-for-google-index/index:
    get:
      tags:
        - 'API Version 1 Service'
      summary: 'Get searched cars that were not yet sent to Google Index'
      description: 'Get unset vin numbers'
      operationId: 56ae36a93b461ba99a67d0628ffb469d
      parameters:
        -
          name: resource
          in: query
          description: 'Filter by resource name'
          required: false
          schema:
            type: string
          example: copart
      responses:
        200:
          description: 'OK - List of searched cars for Google Index.'
        401:
          description: 'Unauthorized - The api_token key is invalid.'
        422:
          description: 'Unprocessable content - request parameters were passed incorrectly.'
  /api/v1/service/searched-cars-for-google-index/create:
    post:
      tags:
        - 'API Version 1 Service'
      summary: 'Create a searched car record for Google Index'
      operationId: 3d9e0bdf136dd29ea514fb487c639230
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - vin
                - resource
              properties:
                vin:
                  description: 'Vehicle VIN number'
                  type: string
                  example: 1HGCM82633A004352
                resource:
                  description: 'Resource name'
                  type: string
                  example: copart
              type: object
      responses:
        200:
          description: 'OK - Searched car was created or returned if it already exists for the current day.'
        401:
          description: 'Unauthorized - The api_token key is invalid.'
        422:
          description: 'Unprocessable content - request parameters were passed incorrectly.'
  /api/v1/service/searched-cars-for-google-index/update:
    post:
      tags:
        - 'API Version 1 Service'
      summary: 'Update Google Index sending status for searched cars'
      operationId: 5150cdc7b1f59a9d59b486b31c552237
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - vin_numbers
                - resource
                - resource_source
                - is_sended_google_index
              properties:
                vin_numbers:
                  description: 'List of VIN numbers to update'
                  type: array
                  items:
                    type: string
                resource:
                  description: 'Resource name for searched cars'
                  type: string
                  example: copart
                resource_source:
                  description: 'Resource name that should be written to Google Index accounting'
                  type: string
                  example: copart
                is_sended_google_index:
                  description: 'Google Index sending flag'
                  type: string
                  example: 'yes'
                  enum:
                    - 'yes'
                    - 'no'
              type: object
      responses:
        200:
          description: 'OK - Searched cars update result.'
        401:
          description: 'Unauthorized - The api_token key is invalid.'
        422:
          description: 'Unprocessable content - request parameters were passed incorrectly.'
  /api/v2/get-cars:
    post:
      tags:
        - 'API Version 2'
      summary: 'Listing of vehicles with trading history'
      operationId: 2f83c3b90c0947d3621098853dfe449c
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - page
              properties:
                make:
                  description: 'Vichecle make (mark)'
                  type: string
                  example: BMW
                model:
                  description: 'Vichecle model'
                  type: string
                  example: X3
                year_from:
                  description: 'Vichecle release year (from)'
                  type: string
                  example: '2018'
                year_to:
                  description: 'Vichecle release year (to)'
                  type: string
                  example: '2018'
                auction_name:
                  description: 'Filter by auction name'
                  type: string
                  example: COPART
                auction_date_from:
                  description: "Date of the auction in which the vechicle could participate (from). Field REQUIRED if 'auction_date_to' is present and not empty."
                  type: string
                  example: '2023-01-01'
                auction_date_to:
                  description: 'Date of the auction in which the vechicle could participate (to)'
                  type: string
                  example: '2023-02-01'
                sale_price_from:
                  description: "Filter sale price by last sale (from). Field REQUIRED if 'sale_price_to' is present and not empty."
                  type: integer
                  example: 0
                sale_price_to:
                  description: "Filter sale price by last sale (to). Field REQUIRED if 'sale_price_from' is present and not empty."
                  type: integer
                  example: 100000
                is_buy_now:
                  description: 'Is only buy now lots'
                  type: integer
                  example: 0
                odometer_from:
                  description: 'Filter odometer value (from)'
                  type: integer
                  example: 0
                odometer_to:
                  description: 'Filter odometer value (to)'
                  type: integer
                  example: 100000
                updated_at_from:
                  description: "Filter by updated record date (from). Field REQUIRED if 'updated_at_to' is present and not empty."
                  type: string
                  example: '2023-01-01'
                updated_at_to:
                  description: 'Filter by updated record date (to)'
                  type: string
                  example: '2023-12-31'
                estimate_retail_from:
                  description: 'Filter estimate retail value (from)'
                  type: integer
                  example: 0
                estimate_retail_to:
                  description: 'Filter estimate retail value (to)'
                  type: integer
                  example: 100000
                created_at_from:
                  description: 'Filter created_at field (from).'
                  type: string
                  example: '2020-01-01'
                created_at_to:
                  description: "Filter created_at field (from). Field REQUIRED if 'created_at_from' is present and not empty."
                  type: string
                  example: '2030-12-31'
                car_info_vehicle_type:
                  description: 'Car info vehicle type'
                  type: string
                  example: ''
                without_hidden_cars_by_resource_id:
                  description: 'Exclude cars hidden by the given resource id'
                  type: integer
                  example: 0
                per_page:
                  description: 'Number of elements per page'
                  type: integer
                  example: 10
                page:
                  description: 'Page number of pagination'
                  type: integer
                  example: 1
              type: object
      responses:
        200:
          description: 'OK - List of vechicles.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
        422:
          description: 'Unprocessable content - either the required request parameters were not passed or were passed incorrectly.'
  /api/v2/get-active-lots:
    post:
      tags:
        - 'API Version 2'
      summary: 'List of cars in active trading status with trading history'
      operationId: 90ecc1def5c0b8101006f6223a900ee0
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - page
              properties:
                make:
                  description: 'Vichecle make (mark)'
                  type: string
                  example: BMW
                model:
                  description: 'Vichecle model'
                  type: string
                  example: X3
                year_from:
                  description: 'Vichecle release year (from)'
                  type: string
                  example: '2015'
                year_to:
                  description: 'Vichecle release year (to)'
                  type: string
                  example: '2023'
                auction_name:
                  description: 'Filter by auction name'
                  type: string
                  example: IAAI
                auction_names:
                  description: 'Filter by auction names'
                  type: array
                  items:
                    type: string
                  example:
                    - 'COPART FINLAND'
                    - 'COPART CANADA'
                auction_date_from:
                  description: "Date of the auction in which the vechicle could participate (from). Field REQUIRED if 'auction_date_to' is present and not empty."
                  type: string
                  example: '2023-01-01'
                auction_date_to:
                  description: 'Date of the auction in which the vechicle could participate (to)'
                  type: string
                  example: '2026-12-31'
                current_bid_from:
                  description: "Filter current bid (from). Field REQUIRED if 'current_bid_to' is present and not empty."
                  type: integer
                  example: 0
                current_bid_to:
                  description: "Filter current bid (to). Field REQUIRED if 'current_bid_from' is present and not empty."
                  type: integer
                  example: 200000
                is_buy_now:
                  description: 'Is only buy now lots'
                  type: integer
                  example: 0
                estimate_retail_from:
                  description: 'Filter estimate retail value (from)'
                  type: integer
                  example: 1
                estimate_retail_to:
                  description: 'Filter estimate retail value (to)'
                  type: integer
                  example: 100000
                buy_now_price_from:
                  description: 'Filter buy now price (from)'
                  type: integer
                  example: 0
                buy_now_price_to:
                  description: 'Filter buy now price (to)'
                  type: integer
                  example: 100000
                highlights:
                  description: 'Filter by lot highlights. Latin and Cyrillic letters, digits, spaces, &, apostrophe, #, ;, and hyphen are allowed.'
                  type: string
                  example: 'RUN AND DRIVE'
                created_at_from:
                  description: 'Filter created_at field (from).'
                  type: string
                  example: '2020-01-01'
                created_at_to:
                  description: "Filter created_at field (from). Field REQUIRED if 'created_at_from' is present and not empty."
                  type: string
                  example: '2030-12-31'
                car_info_vehicle_type:
                  description: 'Car info vehicle type'
                  type: string
                  example: ''
                without_sale_date:
                  description: 'Only car without sale date in active bidding.'
                  type: boolean
                  example: 0
                without_hidden_cars_by_resource_id:
                  description: 'Exclude cars hidden by the given resource id'
                  type: integer
                  example: 0
                per_page:
                  description: 'Number of elements per page'
                  type: integer
                  example: 10
                page:
                  description: 'Page number of pagination'
                  type: integer
                  example: 1
              type: object
      responses:
        200:
          description: 'OK - List of vechicles.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
        422:
          description: 'Unprocessable content - either the required request parameters were not passed or were passed incorrectly.'
  /api/v2/get-auctions:
    post:
      tags:
        - 'API Version 2'
      summary: 'List of auctions'
      operationId: 23ac10f50eca11fe41b41c6be48e7f33
      responses:
        200:
          description: 'OK - List of auctions.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
        422:
          description: 'Unprocessable content - either the required request parameters were not passed or were passed incorrectly.'
  /api/v2/vin-decoding:
    post:
      tags:
        - 'API Version 2'
      summary: 'Car info by VIN number'
      operationId: 123373061a39de2a8ad310ebb629641c
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
                - vin
              properties:
                vin:
                  description: 'VIN number searched car'
                  type: string
                  example: 5UXWX9C57D0A29763
              type: object
      responses:
        200:
          description: 'OK - Decoded info by VIN.'
        401:
          description: 'Unauthorized - The api_token key is specified incorrectly, or there is no user with this token.'
        402:
          description: 'Payment Required - The client did not have a single active paid tariff package for using the API.'
        422:
          description: 'Unprocessable content - either the required request parameters were not passed or were passed incorrectly.'
components:
  securitySchemes:
    bearerAuth:
      type: http
      description: 'Primary authentication — send the API token as `Authorization: Bearer <token>`.'
      scheme: bearer
    apiTokenQuery:
      type: apiKey
      description: 'Legacy fallback — the same API token passed as the `api_token` query parameter. Kept for backward compatibility with older integrations.'
      name: api_token
      in: query
security:
  -
    bearerAuth: []
  -
    apiTokenQuery: []
tags:
  -
    name: 'API Version 1'
    description: 'API Version 1'
  -
    name: 'API Version 1 Service'
    description: 'API Version 1 Service'
  -
    name: 'API Version 2'
    description: 'API Version 2'
