The CarsXE Ruby gem provides a simple and powerful way to integrate vehicle data into your Ruby applications. This guide will help you get started quickly.

For more information, see the <a href="https://rubygems.org/gems/carsxe" target="\_blank" style={{textDecoration: 'underline'}}>gem on RubyGems</a>.

## Installation

Install the CarsXE Ruby gem using gem or bundler:

`gem install carsxe`

Or add it to your Gemfile:

<CodeGroup title="Gemfile">
```ruby 
gem 'carsxe' 
```
</CodeGroup>

Then run `bundle install`.

## Setup

First, require the CarsXE client and initialize it with your API key:

<CodeGroup title="app.rb">
```ruby
require 'carsxe' # Initialize the client
API_KEY = 'YOUR_API_KEY_HERE'
carsxe = Carsxe::CarsXE.new(api_key: API_KEY)
```
</CodeGroup>

## Basic Usage

### VIN Specifications

<CodeGroup title="app.rb">
```ruby
vin = 'WBAFR7C57CC811956'
begin
  vehicle = carsxe.specs('vin' => vin)
  puts vehicle['input']['vin']
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### International VIN Decoder

<CodeGroup title="app.rb">
```ruby
begin
  intvin = carsxe.int_vin_decoder('vin' => 'WF0MXXGBWM8R43240')
  puts intvin
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### Market Value

<CodeGroup title="app.rb">
```ruby
begin
  marketvalue = carsxe.market_value('vin' => 'WBAFR7C57CC811956')
  puts marketvalue
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### Vehicle History

<CodeGroup title="app.rb">
```ruby
begin
  history = carsxe.history('vin' => 'WBAFR7C57CC811956')
  puts history
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### License Plate Decoder

<CodeGroup title="app.rb">
```ruby
begin
  decoded_plate = carsxe.plate_decoder('plate' => '7XER187', 'state' => 'CA', 'country' => 'US')
  puts decoded_plate
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### Vehicle Images

<CodeGroup title="app.rb">
```ruby
begin
  images = carsxe.images('make' => 'BMW', 'model' => 'X5', 'year' => '2019')
  puts images
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### Vehicle Recalls

<CodeGroup title="app.rb">
```ruby
begin
  recalls = carsxe.recalls('vin' => '1C4JJXR64PW696340')
  puts recalls
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### Plate Image Recognition

<CodeGroup title="app.rb">
```ruby
begin
  plateimg = carsxe.plate_image_recognition('upload_url' =>
  'https://imagedelivery.net/moyiiSImjJPI_EZVxNMBBw/f49aed53-d736-4370-f3f4-97418841c800/public')
  puts plateimg
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### VIN OCR from Image

<CodeGroup title="app.rb">
```ruby
begin
  vinocr = carsxe.vin_ocr('upload_url' => 'https://imagedelivery.net/moyiiSImjJPI_EZVxNMBBw/f49aed53-d736-4370-f3f4-97418841c800/public')
  puts vinocr
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### Year-Make-Model Search

<CodeGroup title="app.rb">
```ruby
begin
  yymm = carsxe.year_make_model('year' => '2012', 'make' => 'BMW', 'model' => '5 Series')
  puts yymm
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### OBD Code Decoder

<CodeGroup title="app.rb">
```ruby
begin
  obdcode = carsxe.obd_codes_decoder('code' => 'P0115')
  puts obdcode
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

### Lien and Theft

<CodeGroup title="app.rb">
```ruby
begin
  lien_and_theft = carsxe.lien_and_theft('vin' => '2C3CDXFG1FH762860')
  puts lien_and_theft
rescue StandardError => error
  puts "Error: #{error.message}"
end
```
</CodeGroup>

Start building powerful automotive applications with CarsXE's Ruby gem!
