Vehicle API · Capability

Vehicle Data Workflow

Customer workflow capability for automotive vehicle data research and shopping. Combines Edmunds vehicle catalog (makes, models, styles), TMV pricing, media assets, and dealer inventory into a unified interface for car shoppers, dealer platforms, and automotive application developers.

Run with Naftiko AutomotiveCarsEdmundsInventoryPricingVehicles

What You Can Do

GET
List makes — List all vehicle makes with optional year and availability filtering
/v1/makes
GET
List models — List all models for a given vehicle make
/v1/makes/{makeNiceName}/models
GET
List model years — List available years and trim styles for a make/model
/v1/makes/{makeNiceName}/models/{modelNiceName}/years
GET
Get style — Get complete specs, options, and pricing for a vehicle style
/v1/styles/{styleId}
GET
Get tmv price — Get Edmunds TMV price for a vehicle style by zip code
/v1/pricing/tmv
GET
Get style photos — Get photo assets for a vehicle style
/v1/styles/{styleId}/photos
GET
Search inventory — Search dealer inventory by make, model, and location
/v1/inventory

MCP Tools

list-makes

List all vehicle makes available in the Edmunds catalog

read-only
list-models

List all models for a specific vehicle make

read-only
list-model-years

List available model years and trim styles for a make and model

read-only
get-style

Get complete vehicle style details including specs, options, and pricing

read-only
get-tmv-price

Get Edmunds True Market Value price for a vehicle style at a given zip code

read-only
get-style-photos

Get photo assets for a vehicle style in multiple sizes

read-only
search-inventory

Search dealer inventory near a zip code for a specific make, model, and year

read-only

Capability Spec

vehicle-data.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Vehicle Data Workflow
  description: Customer workflow capability for automotive vehicle data research and shopping. Combines Edmunds vehicle catalog
    (makes, models, styles), TMV pricing, media assets, and dealer inventory into a unified interface for car shoppers, dealer
    platforms, and automotive application developers.
  tags:
  - Automotive
  - Cars
  - Edmunds
  - Inventory
  - Pricing
  - Vehicles
  created: '2026-05-03'
  modified: '2026-05-06'
binds:
- namespace: env
  keys:
    EDMUNDS_API_KEY: EDMUNDS_API_KEY
capability:
  consumes:
  - type: http
    namespace: vehicle-api
    baseUri: https://api.edmunds.com/api
    description: Edmunds Vehicle API v2
    authentication:
      type: apikey
      key: api_key
      value: '{{env.EDMUNDS_API_KEY}}'
      placement: query
    resources:
    - name: makes
      path: /vehicle/v2/makes
      description: List all vehicle makes with optional year and state filtering
      operations:
      - name: list-makes
        method: GET
        description: Return all vehicle makes filtered by state and year
        inputParameters:
        - name: state
          in: query
          type: string
          required: false
          description: new, used, or future
        - name: year
          in: query
          type: integer
          required: false
          description: 4-digit model year
        - name: view
          in: query
          type: string
          required: false
          description: basic or full
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: models
      path: /vehicle/v2/makes/{makeNiceName}/models
      description: List vehicle models for a given make
      operations:
      - name: list-models
        method: GET
        description: Return all models for a vehicle make
        inputParameters:
        - name: makeNiceName
          in: path
          type: string
          required: true
          description: URL-friendly make name (e.g. toyota)
        - name: state
          in: query
          type: string
          required: false
          description: new, used, or future
        - name: year
          in: query
          type: integer
          required: false
          description: 4-digit model year
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: model-years
      path: /vehicle/v2/makes/{makeNiceName}/models/{modelNiceName}/years
      description: List available model years and styles for a make/model
      operations:
      - name: list-model-years
        method: GET
        description: Return all model years and trims for a make and model
        inputParameters:
        - name: makeNiceName
          in: path
          type: string
          required: true
          description: URL-friendly make name
        - name: modelNiceName
          in: path
          type: string
          required: true
          description: URL-friendly model name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: style
      path: /vehicle/v2/styles/{styleId}
      description: Get complete details for a vehicle style (trim)
      operations:
      - name: get-style
        method: GET
        description: Return complete vehicle style data including specs and pricing
        inputParameters:
        - name: styleId
          in: path
          type: integer
          required: true
          description: Edmunds style ID
        - name: view
          in: query
          type: string
          required: false
          description: basic or full
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: tmv-price
      path: /vehicle/v2/price/tmv/simple
      description: Get True Market Value pricing for a vehicle style
      operations:
      - name: get-tmv-price
        method: GET
        description: Return TMV pricing for a vehicle style by zip code
        inputParameters:
        - name: styleId
          in: query
          type: integer
          required: true
          description: Edmunds style ID
        - name: zip
          in: query
          type: string
          required: true
          description: 5-digit US ZIP code
        - name: state
          in: query
          type: string
          required: false
          description: new or used
        - name: mileage
          in: query
          type: integer
          required: false
          description: Mileage for used vehicle pricing
        - name: condition
          in: query
          type: string
          required: false
          description: Outstanding, Clean, Average, or Rough
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: photos
      path: /vehicle/v2/media/{styleId}/photos
      description: Get vehicle photos for a style
      operations:
      - name: get-style-photos
        method: GET
        description: Return photo assets for a vehicle style in multiple sizes
        inputParameters:
        - name: styleId
          in: path
          type: integer
          required: true
          description: Edmunds style ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: inventory
      path: /vehicle/v2/inventory
      description: Search dealer inventory by make, model, and location
      operations:
      - name: search-inventory
        method: GET
        description: Search dealer inventory with make, model, year, and zip code filters
        inputParameters:
        - name: make
          in: query
          type: string
          required: true
          description: Make nice name (e.g. toyota)
        - name: model
          in: query
          type: string
          required: true
          description: Model nice name (e.g. camry)
        - name: year
          in: query
          type: integer
          required: false
          description: Model year
        - name: zip
          in: query
          type: string
          required: true
          description: 5-digit ZIP code
        - name: radius
          in: query
          type: integer
          required: false
          description: Search radius in miles
        - name: pageSize
          in: query
          type: integer
          required: false
          description: Results per page
        - name: pageNum
          in: query
          type: integer
          required: false
          description: Page number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: vehicle-data-api
    description: Unified REST API for vehicle data research and automotive shopping workflows.
    resources:
    - path: /v1/makes
      name: makes
      description: List vehicle makes
      operations:
      - method: GET
        name: list-makes
        description: List all vehicle makes with optional year and availability filtering
        call: vehicle-api.list-makes
        with:
          state: rest.state
          year: rest.year
          view: rest.view
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/makes/{makeNiceName}/models
      name: models
      description: List models for a vehicle make
      operations:
      - method: GET
        name: list-models
        description: List all models for a given vehicle make
        call: vehicle-api.list-models
        with:
          makeNiceName: rest.makeNiceName
          state: rest.state
          year: rest.year
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/makes/{makeNiceName}/models/{modelNiceName}/years
      name: model-years
      description: List model years and trim styles
      operations:
      - method: GET
        name: list-model-years
        description: List available years and trim styles for a make/model
        call: vehicle-api.list-model-years
        with:
          makeNiceName: rest.makeNiceName
          modelNiceName: rest.modelNiceName
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/styles/{styleId}
      name: style
      description: Get vehicle style details
      operations:
      - method: GET
        name: get-style
        description: Get complete specs, options, and pricing for a vehicle style
        call: vehicle-api.get-style
        with:
          styleId: rest.styleId
          view: rest.view
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/pricing/tmv
      name: tmv-pricing
      description: Get True Market Value pricing
      operations:
      - method: GET
        name: get-tmv-price
        description: Get Edmunds TMV price for a vehicle style by zip code
        call: vehicle-api.get-tmv-price
        with:
          styleId: rest.styleId
          zip: rest.zip
          state: rest.state
          mileage: rest.mileage
          condition: rest.condition
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/styles/{styleId}/photos
      name: photos
      description: Get vehicle photos
      operations:
      - method: GET
        name: get-style-photos
        description: Get photo assets for a vehicle style
        call: vehicle-api.get-style-photos
        with:
          styleId: rest.styleId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/inventory
      name: inventory
      description: Search dealer inventory
      operations:
      - method: GET
        name: search-inventory
        description: Search dealer inventory by make, model, and location
        call: vehicle-api.search-inventory
        with:
          make: rest.make
          model: rest.model
          year: rest.year
          zip: rest.zip
          radius: rest.radius
          pageSize: rest.pageSize
          pageNum: rest.pageNum
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: vehicle-data-mcp
    transport: http
    description: MCP server for AI-assisted automotive vehicle research and shopping.
    tools:
    - name: list-makes
      description: List all vehicle makes available in the Edmunds catalog
      hints:
        readOnly: true
        openWorld: false
      call: vehicle-api.list-makes
      with:
        state: tools.state
        year: tools.year
      outputParameters:
      - type: object
        mapping: $.
    - name: list-models
      description: List all models for a specific vehicle make
      hints:
        readOnly: true
        openWorld: false
      call: vehicle-api.list-models
      with:
        makeNiceName: tools.makeNiceName
        state: tools.state
        year: tools.year
      outputParameters:
      - type: object
        mapping: $.
    - name: list-model-years
      description: List available model years and trim styles for a make and model
      hints:
        readOnly: true
        openWorld: false
      call: vehicle-api.list-model-years
      with:
        makeNiceName: tools.makeNiceName
        modelNiceName: tools.modelNiceName
      outputParameters:
      - type: object
        mapping: $.
    - name: get-style
      description: Get complete vehicle style details including specs, options, and pricing
      hints:
        readOnly: true
        openWorld: false
      call: vehicle-api.get-style
      with:
        styleId: tools.styleId
        view: tools.view
      outputParameters:
      - type: object
        mapping: $.
    - name: get-tmv-price
      description: Get Edmunds True Market Value price for a vehicle style at a given zip code
      hints:
        readOnly: true
        openWorld: true
      call: vehicle-api.get-tmv-price
      with:
        styleId: tools.styleId
        zip: tools.zip
        state: tools.state
        mileage: tools.mileage
        condition: tools.condition
      outputParameters:
      - type: object
        mapping: $.
    - name: get-style-photos
      description: Get photo assets for a vehicle style in multiple sizes
      hints:
        readOnly: true
        openWorld: false
      call: vehicle-api.get-style-photos
      with:
        styleId: tools.styleId
      outputParameters:
      - type: object
        mapping: $.
    - name: search-inventory
      description: Search dealer inventory near a zip code for a specific make, model, and year
      hints:
        readOnly: true
        openWorld: true
      call: vehicle-api.search-inventory
      with:
        make: tools.make
        model: tools.model
        year: tools.year
        zip: tools.zip
        radius: tools.radius
        pageSize: tools.pageSize
      outputParameters:
      - type: object
        mapping: $.