Only this pageAll pages
Powered by GitBook
1 of 46

🇬🇧 UK AutoGrab API Doc

AutoGrab Basics

Loading...

Loading...

Loading...

Loading...

Authentication

Loading...

Loading...

Vehicle Search

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Sourcing

Loading...

Loading...

Loading...

Loading...

Vehicle Data

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Valuation

Loading...

Loading...

Loading...

Loading...

Loading...

Embeddable Products

Loading...

Loading...

Loading...

Loading...

Reports

Loading...

Customer Recapture

Loading...

Loading...

Insurance

Loading...

OAuth Authentication

OAuth will only work for agreed AutoGrab api_v2 REST endpoints where an ApiKey has already been provisioned.

OAuth integration consists of 2 basic components:

  1. Token management (ensure your system always has a valid OAuth token available)

  2. REST API call signing using a valid token

Token management

Before implementing token management, make sure you have a valid client_id and client_secret as provided by AutoGrab. (They will be provided by your sales rep.) These are the credentials you will use to get valid tokens from the AutoGrab auth-broker.

auth-broker POST call to receive a valid OAuth token

Copy

POST !!!!!!!!/request-token

Post body
{ grant_type: client_credentials }
Headers 
Content-Type: application/x-www-form-urlencoded
Authorization
Basic Auth of form client_id:client_secret Base64 encoded

Sample success response body
{
    "access_token": "[obfuscated-token-string]",
    "expires_in": 3599,
    "scope": "",
    "token_type": "bearer"
}

A valid token can be stored locally for use in subsequent api calls. It is recommended to calculate a safe expiry timestamp based on the expires_in property of the response body, and use this to pre-emptively refresh your token when it nears expiry.

REST api call signing

With a valid AutoGrab OAuth token to hand, each REST api call that you make can be authorised by encoding the as-provided token string into your Authorization header using Bearer prefix.

Troubleshooting

  • I don’t get a 200 response on my request-token calls Double-check your client_id and client_secret with AutoGrab. Double-check your Basic Auth encoding. Double check your content-type header and post body structure.

FAQ

These are frequently asked questions about AutoGrab and our products.

What is a VIN?

The car's vehicle identification number (VIN) is the identifying code for a specific automobile. The VIN serves as the car's fingerprint, as no two vehicles in operation have the same VIN. A VIN is composed of 17 characters (digits and capital letters) that act as a unique identifier for the vehicle. A VIN displays the car's unique features, specifications and manufacturer. The VIN can be used to track recalls, registrations, warranty claims, thefts and insurance coverage.

What is an AutoGrab ID?

An AutoGrab ID or AGID is a unique identifier for a vehicle in our catalogue. All vehicles inside AutoGrab reference this as the source of metadata about the vehicle.

How do AutoGrab Valuations Work?

AutoGrab’s Valuation captures the asking prices from the past week for a specific vehicle’s year, make, model, and variant at a given mileage, sourced from private sellers and dealers within a selected state. It excludes government charges but includes GST, assuming the vehicles are in good condition and fitted with standard OEM accessories.

Leveraging advanced machine learning and updated weekly, our pricing integrates active listings and recently delisted data from public marketplaces. AutoGrab emphasises the most recent data to deliver comprehensive valuations that reflect current market trends.

Each estimate includes a confidence score, which indicates AutoGrab’s certainty in the valuation. Two key factors determine this score:

  • The number of vehicles listed in the past 365 days for the specific vehicle type

  • A detailed accuracy analysis of the pricing algorithm for that vehicle type

The confidence score ranges from 0 to 1, with 1 representing the highest confidence level

How do I know the current status of each endpoint?

Go to to view the current system state and subscribe to notifications of incidents that are relevant to you.

Where can I get customer support?

You can get assistance by

  • submitting a support ticket at

  • calling or emailing your account representative

  • calling us with non-urgent matters on 1800 531 718

https://status.autograb.com.au/
www.autograbhelp.zendesk.com

API Test Cases

Test your requests in a safe zero-cost way through our test case set.

You can use our test cases to confirm your implementation on our production endpoints. All requests using these values are not billable.

Test Cases

The test cases relate to each other with all related to the same set of vehicle IDs dependant on region.

Type
Region
Value
Outcome

Registration Plate

United Kingdom

REG4SUCCESS

Returns a successful lookup response with a high-quality vehicle match

Registration Plate

United Kingdom

REG4WARNING

Returns a successful lookup response with a low-match quality warning

Registration Plate

United Kingdom

REG4NOMATCH

Returns the VIN and vehicle description but no matching vehicle

Registration Plate

United Kingdom

REG4VINONLY

Only returns the VIN and no other vehicle details

VIN

Australia

00000000000000000

Returns a valid VIN match in Australia

VIN

Malaysia

00000000000000001

Returns a valid VIN match in Malaysia

VIN

New Zealand

00000000000000002

Returns a valid VIN match in New Zealand

Vehicle ID

Australia

1111111111111111

Can be used for /Predict or /Sourcing to return outcomes.

Vehicle ID

Malaysia

2222222222222222

Can be used for /Predict or /Sourcing to return outcomes.

Vehicle ID

New Zealand

3333333333333333

Can be used for /Predict or

/Sourcing to return outcomes.

Supported Endpoints

Test cases are supported across a range of API endpoints listed below. If the endpoint you are testing with is not listed get in touch to request test data.

  • /valuations/predict

  • /valuations/vins

  • /valuations/registrations

  • /valuations/residual

  • /valuations/predict/conditions

  • /sourcing/market_overlay

  • /sourcing/market_overlay/statistics

Implementation Guide

An example implementation could run a test as part of an integration test or development process. For example, you could test a valuation flow by first using a registration plate to get the ID (which is also test data) and send that to a /predict to get a valuation and a market overlay.

MOT & Tax Search

Search for the MOT and Tax status of a vehicle.

Overview

The MOT & Tax Search API allows you to obtain the current MOT and Tax status of a given vehicle based on its registration.

Max Offer Configuration

Set and update your max offer config to refine your price predictions.

Vehicle Searching Basics

Vehicle discovery is the starting place for almost all functions on the AutoGrab API.

The Vehicle Search API set allows you to find matching vehicles within our database. This API requires and an appropriate license attached to it.

Residual Valuations

Predict the future value of a vehicle.

The Residual Value prediction API uses current market trends to influence the depreciation curve of newer vehicles. The API allows you to influence the outcome of the prediction by either mutating stored Recommended Retail Price, or by providing your own Retail Value for the car.

authentication

Text Search

Use this search mechanism if you have a vehicle description or title as a text string and want to resolve to an vehicle ID.

Vehicle Registration Mark Search

Use this search mechanism if you have a VRM and want summary data.

Facet Search

Use this search mechanism if you would like your users to interact with drop downs to resolve to a vehicle ID.

Vehicle ID Search

Use this to get summary data on a vehicle if you already have its ID.

Marketplace ID

A special use case search function for marketplace partners.

Car Analysis

Generate PDF reports of vehicles for users

AutoGrab can service PDF reports over API that can then be handled in your application.

Report Features

The report endpoint has the ability to determine the content of the report based on the information that is handed to it.

Vehicle Identification

Where-ever possible it is recommended to provide as much vehicle information as possible. What the data is used for is controlled by the sources array.

  • VIN

  • Registration/State - If registration is provided, state is mandatory

  • Odometer

Valuation

A previous valuation can be included in the report generation by adding the following data. What data is used for the valuation is determined on priority:

Price Record ID

If the pricing record ID is passed in the request, the associated valuation will populate the report. A valuation ID is generated using the endpoint and contained in the response. So, a valuation call needs to be performed before generating the report.

Lead ID

A lead ID is obtained from the endpoint and is the tier 2 valuation source.

Odometer

If no Pricing or Lead ID is provided but an odometer is, the odometer will be used to perform a valuation with the same logic as the endpoint.

Brand

Controls White labeling of the report

Marketplace Specific Fields

When using reports integrated within a marketplace additional fields can be included in the request to allow for data from the marketplace listing to be displayed in the report.

  • Marketplace Image URL

    • URL to a public image from the marketplace listing, will replace the stock photo contained in a standard CarAnalysis Report

The Marketplace Image URL must end in a jpeg/jpg format. Magic links are not currently supported. i.e. www.marketplace.com/listing/vehicleimage.jpg. listing/vehicleimage/ will fail to generate.

  • Marketplace Price

    • The price displayed on the listing on the marketplace.

    • Note it is not possible to use the marketplace price and the valuation source in the same report.

  • Marketplace Price Type

    • Displays the type of price for the Marketplace price being provided.

Sources

What sources are available with your account are controlled at a feature level. To access particular sources, don't hesitate to get in touch with your AutoGrab representative.

The sources enum determines additional features that are included within the report PDF, the report is modular. However, it is recommended to include Vehicle Details at a minimum

Vehicle Details

Populates the Vehicle Information at the top of the report. It is recommended that vehicle details always be included as it contains the minimum identifiable information into the report.

Odometer History

It will display a table of all recorded odometer listings that AutoGrab has. Based on the odometer from previous listings, it can highlight the possibility of odometer rollback events.

Build Data

It will populate a table with built-data information, which is the same data obtainable from the endpoint in PDF format.

Fitted Options

Not currently available

Valuation

Whether to include an AutoGrab valuation in the report

Report White Labeling

AutoGrab can create custom-branded templates for the Car Analysis report. Please reach out to your AutoGrab representative for more information on building a custom template.

Obtaining Generated Reports

Due to the Car Analysis report reaching out to external endpoints and co-lating data the report is not generated immediately. It is recommended that the ID for the report be stored for future use or that the PDF be obtained again later.

To obtain the requested report, pass the ID from the POST to the get endpoint.

It is highly recommended that you delay the Get by at least 20 seconds before attempting the request to allow sufficient time for the report to be generated.

Example Report

Valuation
Sourcing
Valuation
Factory Build Data
269KB
Standard Car Analysis.pdf
pdf

Vehicle History

Request a vehicles history on marketplaces

Overview

The Vehicle History API allows you to access historical lead listing data from a variety of used car marketplaces. This API requires authentication and an appropriate license attached to it.

The Endpoint operates on a tiered system of queries:

VIN - The first initial call can be made to VIN + Region. However, if VIN does not return any history information, the following data is required as a fallback.

  • Year

  • Make

  • Model

  • Registration

It is recommended to provide all available data points when doing a Vehicle History call, only use VIN if no other data is available.

Title
Parameter
Example

Year

year

2019

Make

make

Volkswagen

Model

model

Polo

Registration Plate

registration_plate

BMT038

Vin

VIN

KL3TA48E9CB053071

The Make, Model fields are format-sensitive and rely on AutoGrabs Vehicle Search or ID lookup formatting. If using unsupported make and model descriptions, the vehicle history will not be returned when otherwise it could have been using the correct formatting.

Vehicle History Events

The Vehicle History endpoint delivers detailed information on events related to a listing. The following events are possible on a given listings.

Listing - the detection of a listing being added to its relevant marketplace.

  {
      "type": "listing",
      "odometer": 100000,
      "price": 100000,
      "marketplace": "Gumtree",
      "timestamp": "2022-09-20T10:22:07.072",
      "seller_type": "string"
    }

Delisting - the detection of a listing being removed from its relevant marketplace, this is frequently and reliably related to a sale of the vehicle.

  {
      "type": "delisting",
      "odometer": 100000,
      "price": 100000,
      "marketplace": "Gumtree",
      "timestamp": "2022-09-20T10:22:07.072",
      "seller_type": "string"
    }

Price Change - the detection of a movement in the price, see the features section below for more information.

Example

To perform an example request:

curl '/v2/sourcing/history?region=au&vin=KL3TA48E9CB053071u' \
      -H 'ApiKey: {API_KEY}'

An example payload is included below to illustrate a potential response.

{
  "success": true,
  "id": "dfe4d117-74e1-4545-9e79-a0baac8208a7",
  "events": [
    {
      "type": "listing",
      "odometer": 100000,
      "price": 100000,
      "marketplace": "Gumtree",
      "timestamp": "2022-09-20T10:22:07.072",
      "seller_type": "string"
    }
  ]
}

Features

You can opt to enrich your vehicle history payload by passing in a feature or features separated by commas.

curl '/v2/sourcing/history?region=au&registration_plate=BMT038&state=VIC&year=2019&make=Volkswagen&features=price_changes&model=Polo&vin=KL3TA48E9CB053071'
      -H 'ApiKey: {API_KEY}'

Price Changes

Currently we support the price_changes feature that will show you fluctuations in the price. Passing this feature will return upward on downward movements in the listings price.

Contact your sales rep to understand your commercial rate card for each feature.

Factory Build Data

Request data the vehicle was fitted with at the factory

Overview

To request an extensive factory build data list call the /build-data endpoint. If the relevant manufacturer is participating in our Options data product, you will see it in the response.

If we are unable to provide build information for the requested VIN we will return an error like this.

{
    "error": true,
    "message": "Invalid or Unsupported VIN"
}

If you are not using a valid VIN we will respond with this.

{
    "error": true,
    "message": "Invalid VIN, must be 17 characters."
}

We are developing a version of this endpoint that groups each item under its relevant options pack. Stay tuned for this release.

For basic fittable options, that is the options packs available on the vehicle refer to the specifications or vehicle endpoints.

Coverage

The Factory build data program covers most major manufacturers back to vehicles built in 1999. Contact us to request if we have coverage of a specific area.

As of 2023 the system has coverage across 40 manufacturers as below:

  • Abarth

  • Alfa Romeo

  • Alpina

  • Audi

  • Bentley

  • BMW

  • Buick

  • Cadillac

  • Chevrolet

  • Chrysler

  • Citroën

  • Dacia

  • Daewoo

  • Dodge

  • DS

  • Fiat

  • Ford

  • GMC

  • Hummer

  • Hyundai

  • Isuzu

  • Jaguar

  • Jeep

  • KIA

  • Lancia

  • Land Rover

  • Lincoln

  • Maybach

  • Mercedes-Benz

  • MINI

  • Opel

  • Porsche

  • Peugeot

  • Renault

  • Rolls-Royce

  • Saab

  • SEAT

  • Skoda

  • smart

  • Vauxhall

  • Volkswagen

  • Volvo

Gauge Widget

AutoGrabs dynamic pricing indicator for your website

The AutoGrab AutoGauge is an iFrame widget that displays a valuation as well as some high-level market data for a vehicle listing. We host a configuration file that controls a range of labelling and styling variables that we will guide you through as part of your integration.

An example gauge configuration

You can access this over API if you would like to make your own implementation over the iFrame, read more here.

Query Parameters

Since the gauge operates in an iFrame, it is controlled using query parameters. These parameters are separated into two distinct groups: Base parameters and vehicle-type parameters. The base parameters are applicable for all use cases, whereas you only need to choose one set of vehicle-type parameters in order to use the gauge.

Base parameters

api_key: string; Your Gauge API Key (locked to your provided domains).

region: Region; The country code (‘au’, ‘nz’, 'uk', or ‘my’)

odometer: number; The odometer reading for the vehicle you are valuing

listing_price: number; The listing price for the vehicle you are valuing

layout?: string; The desired layout style (‘horizontal’ or vertical). If a layout type is not provided, this will default to ‘vertical’.

Vehicle Type Parameters

These parameters are used to determine the type of vehicle that you are valuing, and only one of these sets of properties are required to match a vehicle. Depending on your use case, it may be easier to use certain sets of parameters over others.

vehicle_id The AutoGrab vehicle ID

marketplace and marketplace_id The marketplace domain name where the vehicle is publicly listed (e.g. ‘carsales.com.au’) and the unique listing ID on the marketplace (e.g. ‘OAG-AD-216621’)

vin The vehicle's VIN number

rego The registration plate (e.g. ‘BMT038’).

vehicle_description The plain text vehicle description (e.g. ‘2019 Volkswagen Polo 85TSI Comfortline Auto MY19’)

Example Usage

With VIN

<iframe
src="http://localhost:3000?region=uk&odometer=10000&listing_price=100
00&vin=MM0DK2W7A0W207162&api_key={yourkey}"
/>

With Rego & State

<iframe
src="http://localhost:3000?region=uk&odometer=10000&listing_price=100
00&rego=AOM964&state=VIC&api_key={yourkey}"
/>

With Marketplace/Marketplace ID

<iframe
src="http://localhost:3000/?region=uk&odometer=10000&listing_price=10
000&marketplace=carsales.com.au&marketplace_id=OAG-AD-21662144&api_ke
y={yourkey}"
/>

With Vehicle Description

<iframe
src="http://localhost:3000/?region=uk&odometer=10000&listing_price=10
000&vehicle_description=2017%20Mazda%20CX-3%20Maxx&api_key={yourkey}"
/>

Local Testing

To test the gauge locally, simply create an index.html file with the following contents:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,
initial-scale=1.0" />
<title>Iframe Test</title>
</head>
<body>
<iframe
src="https://gauge.autograb.com.au?region=uk&odometer=10000&listing_p
rice=26005&vin=MM0DK2W7A0W207162&api_key={yourkey}"
width="100%"
height="600px"
></iframe>
</body>
</html>

You can then host this file on localhost:8080 using the npx-server package. You can use the ‘npx’ command line tool to do this:

> npx html-server ./index.html

The localhost:8080 URL is whitelisted for your API key, therefore enabling this workflow.

Event Listeners

If the Gauge is successfully rendered, we send a message via the iframe postMessage function. The way for a client to listen for the event is as follows:

window.addEventListener('message', event => {
if (
event.data === 'AUTOGRAB_GAUGE_SHOW' &&
event.origin === 'https://gauge.autograb.com.au'
) {
// show the gauge iframe element
}
});
If there is a redirect to the 500 page, we send a message via the iframes postMessage
function.. The 500 page is used for any error that occurs server side, as well as if the gauge
valuation is below the threshold defined in your configuration (this is per API key).
The way for a client to listen for the event is as follows:
window.addEventListener('message', event => {
if (
event.data === 'AUTOGRAB_GAUGE_HIDE' &&
event.origin === 'https://gauge.autograb.com.au'
) {
// hide the gauge iframe element
}
});

There is no minimum valuation threshold set per API key. We can configure this to your requirements.

Get a vehicle's registration MOT and tax status

get

Get a vehicle's registration MOT and tax status

Authorizations
Path parameters
plate_numberstringRequired

Plate number of the vehicle

Query parameters
regionstringOptional
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
get

Upsert a max offer configuration

put

Upsert a max offer configuration

Authorizations
Query parameters
regionstring · enumOptional

The region to perform this request in

Possible values:
Body
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
put

Get max offer configuration

get

Get max offer configuration

Authorizations
Query parameters
regionstring · enumOptional

The region to perform this request in

Possible values:
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
get

Calculate future values for a vehicle using an AutoGrab ID

post

Calculate future values for a vehicle using an AutoGrab ID

Authorizations
Body
regionstring · enumOptionalPossible values:
vehicle_idstringRequired
initial_kmsnumberOptionalDefault: 0
yearly_kmsnumberRequiredDefault: 10000
rrp_overwritenumberOptional
rrp_adjustmentnumberOptional
colorstringOptional
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
post

Get a listing of vehicle history events

get

Get a listing of vehicle history events

Authorizations
Query parameters
vinstringOptional

The vehicle VIN

registration_platestringOptional

The vehicle registration plate

yearnumberOptional

The vehicle year

makestringOptional

The vehicle make

modelstringOptional

The vehicle model

vehicle_history_idstringOptional

The vehicle history id

marketplacestringOptional

The vehicle marketplace

marketplace_idstringOptional

The vehicle marketplace id

start_datestringOptional

Vehicle history events start date filter as UTC or Unix timestamp string in seconds

end_datestringOptional

Vehicle history events end date filter as UTC or Unix timestamp string in seconds

featuresstringOptional

Comma separated array of additional vehicle history feature codes as specified in your contract

regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
get
get
Authorizations
Path parameters
vinstringRequired

The VIN number that is used to look up the vehicle build data

Query parameters
regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
500
Internal Server Error
application/json
get
GET /v2/vehicles/registrations/{plate_number}/mot-tax HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "is_dvsa_service_available": true,
  "is_dvla_service_available": true,
  "dvla_data": {
    "tax_status": "text",
    "tax_expiry_date": "text"
  },
  "dvsa_data": {
    "vehicle_status_details": {
      "is_possible_classic_vehicle": true,
      "is_possible_ni_registered_vehicle": true
    },
    "dvsa_vehicle_data": {
      "vehicle_registration_mark": "text",
      "manufacturer_desc": "text",
      "model_range_desc": "text",
      "first_registration_date": "text",
      "fuel_type_desc": "text",
      "colour": "text"
    },
    "mot_tests": [
      {
        "mot_test_number": 1,
        "mot_test_date": "text",
        "mot_test_result": "text",
        "mot_expiry_date": "text",
        "observation_mileage": 1,
        "reason_for_refusal_and_comments": [
          {
            "comments": "text",
            "type": "text"
          }
        ]
      }
    ]
  }
}
PUT /v2/valuations/max_offer_configuration HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 200

{
  "reconditioning": {
    "amount": 1,
    "type": "fixed"
  },
  "profit_margin": {
    "amount": 1,
    "type": "fixed"
  },
  "lot": {
    "amount": 1,
    "type": "fixed"
  },
  "transport": {
    "amount": 1,
    "type": "fixed"
  },
  "admin": {
    "amount": 1,
    "type": "fixed"
  }
}
{
  "success": true,
  "max_offer_configuration": {
    "reconditioning_percentage": 1,
    "reconditioning_fixed": 1,
    "profit_margin_percentage": 1,
    "profit_margin_fixed": 1,
    "lot_percentage": 1,
    "lot_fixed": 1,
    "transport_percentage": 1,
    "transport_fixed": 1,
    "admin_percentage": 1,
    "admin_fixed": 1
  }
}
GET /v2/valuations/max_offer_configuration HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "max_offer_configuration": {
    "reconditioning_percentage": 1,
    "reconditioning_fixed": 1,
    "profit_margin_percentage": 1,
    "profit_margin_fixed": 1,
    "lot_percentage": 1,
    "lot_fixed": 1,
    "transport_percentage": 1,
    "transport_fixed": 1,
    "admin_percentage": 1,
    "admin_fixed": 1
  }
}
POST /v2/valuations/residual HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 122

{
  "region": "au",
  "vehicle_id": "text",
  "initial_kms": 0,
  "yearly_kms": 10000,
  "rrp_overwrite": 1,
  "rrp_adjustment": 1,
  "color": "text"
}
{
  "success": true,
  "predictions": [
    {
      "year": 1,
      "kms": 1,
      "valuation": 1,
      "score": 1
    }
  ]
}
GET /v2/sourcing/history HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "message": "text",
  "vehicle_history": {
    "id": "text",
    "events": [
      {
        "type": "listing",
        "odometer": 1,
        "price": 1,
        "marketplace": "text",
        "timestamp": "text",
        "seller_type": "text"
      }
    ]
  }
}
GET /v2/vehicles/vins/{vin}/build-data HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "vehicle": {
    "vin": "text",
    "build_date": "text",
    "make": "text",
    "model": "text",
    "features": [
      {
        "code": "text",
        "value": "text"
      }
    ]
  }
}

Facet Search

Use smart drop downs to find a vehicle.

Search for Vehicles by facets

The Vehicle Facets API allows you to narrow down the matching vehicle based on the vehicle's parameters. The facets available are: year, make, model, badge, series, transmission, body, body_style, fuel, engine and wheelbase.

If you would like to return aggregations of factes, use a comma-separated list in the facets field: eg. facets=badge,series,transmission.

Facets User Interface Example

This function is useful when supplying data to drop-downs for display on a form. A good example of using the Facets API is Westside Auto.

For a preview of how facets in implemented inside the AutoGrab web app see the video below.

Facet Integration Worked Example

Let's work backwards from the end result which is one or a few results for your user to pick from driven by previous drop-down. There are a few ways to make facets work for you, we'll go through the most common integration method.

Form your GET request for Makes

/v2/vehicles/facets?region=au&facet=make
{
    "success": true,
    "make": [
        {
            "value": "Abarth",
            "count": 47
        },
        {
            "value": "Acura",
            "count": 1
        },
        {
            "value": "Alfa Romeo",
            "count": 713
        },
        {
            "value": "AM General",
            "count": 2
        },
        {
            "value": "Aston Martin",
            "count": 169
// trimmed - this would show all makes in the region

Ask your user to choose a make from the list then call all available models based on that selection. Let's say your user chose Toyota.

Form your request for a list of Models.

/v2/vehicles/facets?region=au&make=Toyota&facet=model
{
    "success": true,
    "model": [
        {
            "value": "4Runner",
            "count": 41
        },
        {
            "value": "86",
            "count": 72
        },
        {
            "value": "Allex",
            "count": 26
  // trimmed - this would show all models in the region

Ask your user to choose a Model from the list then call all available models based on that selection. Let's say your user chose Corolla.

Form your request for a list of Badges

v2/vehicles/facets?model=Corolla&region=au&make=Toyota&facet=badge
{
    "success": true,
    "badge": [
        {
            "value": "SE Ltd",
            "count": 6
        },
        {
            "value": "SE LTD",
            "count": 2
        },
        {
            "value": "Sprint",
            "count": 3
        },
        {
            "value": "Sprinter",
            "count": 5
        },
        {
            "value": "Sprinter SR",
            "count": 1
        },
        {
            "value": "SR",
            "count": 4
        },
 // trimmed - this would show all badges in the region

Select A Badge A Load Vehicles From A Search

Ask your user to choose a badge from the list. Let's say your user chose Sprint. You can see the count is 3, meaning there are only 2 badges. You could send that directly to them or repeat the process with the year (&facet=year) to refine it further.

Let's say you'd like to present the three options to the user.

/v2/vehicles/facets/search?region=nz&badge=Sprint&make=Toyota&model=Corolla
{
    "success": true,
    "vehicles": [
        {
            "id": "5364630897557504",
            "region": "nz",
            "title": "1997 Toyota Corolla Sprint Manual",
            "year": "1997",
            "make": "Toyota",
            "model": "Corolla",
            "badge": "Sprint",
            "series": null,
            "model_year": null,
            "release_month": 9,
            "release_year": 1995,
            "body_type": "Hatchback",
            "body_config": null,
            "transmission": "Manual",
            "transmission_type": "Manual",
            "wheelbase": null,
            "wheelbase_type": null,
            "fuel": "Petrol",
            "fuel_type": "Petrol",
            "engine": "Piston",
            "engine_type": "Piston",
            "drive": "FWD",
            "drive_type": "Front Wheel Drive",
            "num_doors": 5,
            "num_seats": 5,
            "num_gears": 5,
            "num_cylinders": 4,
            "capacity_cc": 1587,
            "power_kw": null,
            "torque_nm": null,
            "range": null,
            "options": []
        },
        {
            "id": "6033133967245312",
            "region": "nz",
            "title": "1999 Toyota Corolla Sprint Manual",
            "year": "1999",
            "make": "Toyota",
            "model": "Corolla",
            "badge": "Sprint",
            "series": null,
            "model_year": null,
            "release_month": 9,
            "release_year": 1995,
            "body_type": "Hatchback",
            "body_config": null,
            "transmission": "Manual",
            "transmission_type": "Manual",
            "wheelbase": null,
            "wheelbase_type": null,
            "fuel": "Petrol",
            "fuel_type": "Petrol",
            "engine": "Piston",
            "engine_type": "Piston",
            "drive": "FWD",
            "drive_type": "Front Wheel Drive",
            "num_doors": 5,
            "num_seats": 5,
            "num_gears": 5,
            "num_cylinders": 4,
            "capacity_cc": 1587,
            "power_kw": null,
            "torque_nm": null,
            "range": null,
            "options": []
        },
        {
            "id": "6563011892346880",
            "region": "nz",
            "title": "1998 Toyota Corolla Sprint Manual",
            "year": "1998",
            "make": "Toyota",
            "model": "Corolla",
            "badge": "Sprint",
            "series": null,
            "model_year": null,
            "release_month": 9,
            "release_year": 1995,
            "body_type": "Hatchback",
            "body_config": null,
            "transmission": "Manual",
            "transmission_type": "Manual",
            "wheelbase": null,
            "wheelbase_type": null,
            "fuel": "Petrol",
            "fuel_type": "Petrol",
            "engine": "Piston",
            "engine_type": "Piston",
            "drive": "FWD",
            "drive_type": "Front Wheel Drive",
            "num_doors": 5,
            "num_seats": 5,
            "num_gears": 5,
            "num_cylinders": 4,
            "capacity_cc": 1587,
            "power_kw": null,
            "torque_nm": null,
            "range": null,
            "options": []
        }
    ],
    "total": 3
}

If you do not pay attention to the counts under each facet, there may be too many vehicles to search for. You will know you have triggered this limitation if you see the error below

{
    "error": true,
    "message": "Too many vehicles, you must return at least make, model, badge, series, year"
}

Retrieve counts of available vehicles according to facet filters

get

Allows caller to retrieve specific counts of available vehicles according to specific facet filters

Authorizations
Query parameters
facetstringRequired
yearstringOptional
makestringOptional
modelstringOptional
badgestringOptional
seriesstringOptional
transmissionstringOptional
body_typestringOptional
fuelstringOptional
drivestringOptional
limitnumber · max: 100Optional

The maximum number of results to return per facet query

regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
get
GET /v2/vehicles/facets/ HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "facets": {
    "year": [
      {
        "year": 1,
        "make": "text",
        "model": "text",
        "count": 1
      }
    ],
    "make": [
      {
        "year": 1,
        "make": "text",
        "model": "text",
        "count": 1
      }
    ],
    "model": [
      {
        "year": 1,
        "make": "text",
        "model": "text",
        "count": 1
      }
    ],
    "badge": [
      {
        "year": 1,
        "make": "text",
        "model": "text",
        "count": 1
      }
    ],
    "series": [
      {
        "year": 1,
        "make": "text",
        "model": "text",
        "count": 1
      }
    ],
    "transmission": [
      {
        "year": 1,
        "make": "text",
        "model": "text",
        "count": 1
      }
    ],
    "body_type": [
      {
        "year": 1,
        "make": "text",
        "model": "text",
        "count": 1
      }
    ],
    "fuel": [
      {
        "year": 1,
        "make": "text",
        "model": "text",
        "count": 1
      }
    ],
    "drive": [
      {
        "year": 1,
        "make": "text",
        "model": "text",
        "count": 1
      }
    ]
  },
  "vehicles": [
    {
      "id": "text",
      "title": "text",
      "score": 1
    }
  ]
}

Search for a vehicle by facet, return matching vehicles

get

Search for vehicles by facets - minimum of year, make and model are required to return results and additional facets

Authorizations
Query parameters
yearstringOptional

The build year of the vehicle

makestringOptional

The make of the vehicle

modelstringOptional

The model of the vehicle

badgestringOptional

The badge of the vehicle

seriesstringOptional

The series of the vehicle

transmissionstringOptional

The specific transmission type (e.g. Sports Automatic, Automated Manual, etc...)

transmission_typestringOptional

The basic transmission type (i.e. Automatic, Manual or Reduction Gear)

body_typestringOptional

The body type of the vehicle (e.g. Hatchback, Sedan, etc...)

fuelstringOptional

The fuel type of the vehicle (e.g. Petrol, Diesel, etc...)

drivestringOptional

The specific drive type (e.g. AWD, 4WD, 4x4 Dual Range, etc...)

drive_typestringOptional

The basic drive type of the vehicle (e.g. Front Wheel Drive, Rear Wheel Drive, etc...)

limitnumber · max: 100Optional

The maximum number of results to return per facet query

regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
get
GET /v2/vehicles/facets/search HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "vehicles": [
    {
      "id": "text",
      "title": "text",
      "year": 1,
      "make": "text",
      "model": "text",
      "badge": "text",
      "series": "text",
      "model_year": "text",
      "release_month": 1,
      "release_year": 1,
      "body_type": "text",
      "body_config": "text",
      "transmission": "text",
      "transmission_type": "text",
      "wheelbase": "text",
      "wheelbase_type": "text",
      "fuel": "text",
      "fuel_type": "text",
      "engine": "text",
      "engine_type": "text",
      "drive": "text",
      "drive_type": "text",
      "num_doors": 1,
      "num_seats": 1,
      "num_gears": 1,
      "num_cylinders": 1,
      "capacity_cc": 1,
      "power_kw": 1,
      "torque_nm": 1,
      "range": 1
    }
  ],
  "total": 1
}

Market Statistics

Get key statistics on any vehicle ID

Overview

The Market Overlay Statistics API delivers statistics we generate on your behalf from the Market Overlay endpoint.

As this endpoint is part of the market overlay route you can enhance your payload with additional features. Refer to the features on the market overlay to see what's available.

Stock Feeds

Pipe your stock feed into a range of AutoGrab products.

Creating a stock feed

Your organisation will need at least one stock feed before uploading stock to the platform.

Recall Search

Check the recall status of a vehicle

Overview

The Recall Check API allows you to access the current recall status of a given vehicle based on the registration. This API requires authentication and an appropriate license attached to it.

Vehicle Data Basics

Get the level of detail you need on the vehicle you want.

The Vehicle Data API set allows you to find descriptive information on a vehicle at the level of granularity you require. This API requires and an appropriate license attached to it.

API Key

We support API Key based authentication, recommended if you build applications to integrate with our platform.

Do you need a key? Contact your sales rep or contact to request one to start developing.

Key Types

Secret API Key

A secret API key is for the server side and should not be shared with the front end.

Example Key: sec_23hcfb8374bfhc833i4uhx

Public API Key

A public API key is used on your website to call the API. These keys are limited to your domain and are safe to share publicly.

Example Key: pub_3ficuhb34u8fnxu34h9fm

Authenticating Requests

When making requests to the APIs, include the key in your request.

Other Authentication Methods

We also support , you can read more about this authentication mechanism here.

Marketplace ID Lookup

A special use case endpoint for our marketplace customers to find their own leads on AutoGrab systems.

Overview

In a scenario where you want to understand the AutoGrabID or data on listed vehicles, you can use the marketplace search system.

Prerequisites to access.

  1. Be approved to access this special use case endpoint, contact your account manager.

  2. Be aware of your listing ID and use that for the marketplace_id parameter.

  3. Be aware of your marketplace identifier, it is your public domain name, e.g drive.com.au

Limitations

You are only able to search for a vehicle once it is present on our service. If you receive the error below this means we are not yet aware of the listing due to its recency.

In this scenario, we recommend falling back to a test lookup using the title in its most descriptive format. E.g 2024 Nissan X-TRAIL Ti Wagon Ti 2.5L SUV 4WD.

Authorization: ApiKey {your API key}
OAuth

Get the lead statistics used to justify pricing for a given AutoGrab Vehicle ID.

get

Get the lead statistics used to justify pricing for a given AutoGrab Vehicle ID.

Authorizations
Path parameters
vehicle_idstringRequired
Query parameters
minimum_daysnumberOptional

The minimum number of days to show listings for

include_adjacent_yearsbooleanOptional

If enabled, vehicles that were manufactured up to one year before and one year after your chosen vehicle will also be included in the results.

exclude_outliersbooleanOptional

If enabled, leads that are considered outliers will be excluded from the results.

exclude_all_delistedbooleanOptional

If enabled, leads that are not currently on the market will be excluded from the results.

include_all_activebooleanOptional

If enabled, all listings that are currently on the market will be returned, instead of only listings which were uploaded within the specified timeframe (minimum_days). Additionally, if this is enabled, delisted leads will be returned based on the number of days since they were sold, rather than the number of days since they were listed.

include_trashbooleanOptional

If enabled, leads that are considered trash, written off, damaged, or missing details will be included in the results. The tag_ids array can then be used to determine if a lead is trash, damaged, etc.

featuresstringOptional

Comma separated array of additional overlay feature codes as specified in your contract

odometer_range_minnumberOptional

The minimum range observed against similar vehicles

odometer_range_maxnumberOptional

The maximum range observed against similar vehicles

regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
get
GET /v2/sourcing/market_overlay/statistics/{vehicle_id} HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "sample_size": 1,
  "days_checked": 1,
  "avg_days_to_sell": 1,
  "outlier_count": 1,
  "days_supply": 1,
  "avg_price": 1,
  "min_price": 1,
  "max_price": 1,
  "avg_odometer": 1,
  "min_odometer": 1,
  "max_odometer": 1
}

Create a stock feed.

post

Create a stock feed.

Authorizations
Query parameters
regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
post
POST /v2/stock/create HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "error": true,
  "message": "text"
}

Post or update a stock item.

post

Post or update a stock item.

Authorizations
Path parameters
stock_feed_idstringRequired
external_dealership_idstringRequired
external_idstringRequired
Query parameters
regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Body
regionstringRequired

The stock item region

created_atstringRequired

ISO 8601 created at utc date and time string

updated_atstringRequired

ISO 8601 updated at utc date and time string

checked_atstringRequired

ISO 8601 checked at utc date and time string

stocked_atstringRequired

ISO 8601 stocked at utc date and time string

removed_atstringOptional

ISO 8601 removed at utc date and time string, only to be supplied for items that have been removed

conditionstringRequired

The stock condition

stock_nostringOptional

The stock number

regostringOptional

The registration plate

rego_expirystringOptional

ISO 8601 rego_expiry utc date and time string

vinstringOptional

The Vehicle Identification Number

yearnumberOptional

The vehicle year

kmsnumberOptional

The vehicle odometer reading

colorstringOptional

The vehicle body colour

descriptionstringOptional

The vehicle description

makestringOptional

The vehicle make

modelstringOptional

The vehicle model

seriesstringOptional

The vehicle series

badgestringOptional

The vehicle badge

tranmissionstringOptional

The vehicle tranmission

locationstringOptional

The vehicle location

suburbstringOptional

The vehicle suburb

postcodestringOptional

The vehicle postcode

latnumberOptional

The vehicle latitude

lngnumberOptional

The vehicle longtitude

price_egcnumberOptional

The vehicle price excluding government charges

price_dapnumberOptional

The vehicle drive away price

purchase_pricenumberOptional

The vehicle purchase price

video_urlstringOptional

The vehicle video url

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
post
POST /v2/stock/{stock_feed_id}/{external_dealership_id}/{external_id} HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 496

{
  "region": "text",
  "created_at": "text",
  "updated_at": "text",
  "checked_at": "text",
  "stocked_at": "text",
  "removed_at": "text",
  "condition": "text",
  "stock_no": "text",
  "rego": "text",
  "rego_expiry": "text",
  "vin": "text",
  "year": 1,
  "kms": 1,
  "color": "text",
  "description": "text",
  "make": "text",
  "model": "text",
  "series": "text",
  "badge": "text",
  "tranmission": "text",
  "location": "text",
  "suburb": "text",
  "postcode": "text",
  "lat": 1,
  "lng": 1,
  "price_egc": 1,
  "price_dap": 1,
  "purchase_price": 1,
  "video_url": "text",
  "images": [
    {
      "url": "text"
    }
  ]
}
{
  "error": true,
  "message": "text"
}

Perform a recall check on a vehicle's registration

get

Perform a recall check on a vehicle's registration

Authorizations
Path parameters
plate_numberstringRequired

Plate number of the vehicle

Query parameters
regionstringOptional
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
get
GET /v2/vehicles/registrations/{plate_number}/recall-check HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "vehicle_registration_mark": "text",
  "vehicle_identification_number": "text",
  "smmt_manufacturer_model_desc": "text",
  "recall_status": "text",
  "recall_status_checked_datetime": "text",
  "recall_qty": 1,
  "recall_data_items": [
    {
      "recall_desc": "text"
    }
  ]
}

Valuation Widget

The Valuation Widget offers an easy-to-configure and install instant cash offer journey for your website.

Overview

The widget can capture leads by auto-filling vehicle information, asking key questions and making a conditional offer informed by your preset valuation strategy.

It is highly customisable to your dealership brand or corporate imagery requirements, feeling at home on your existing website.

The resulting leads are deployed over email or select LMS providers depending on your region.

Example Implementations

You can find an example of the valuation widget operating on the AutoGrab corporate homepage here. For a more brand / corporate imagery-compliant implementation refer to Berwick Motor Group.

Implementation

Speak to your sales rep about your desired implementation pattern. We will supply you with staging and production iFrame url code as part of your deployment process.

Position On Page

You have two options to embed the iframe inside your website. In both these options, it is critical that you set the iframe width to 650px and centred.

Popup - holding the iframe in a popup container and ensuring you conform to the AUTOGRAB_VALUATION_HIDE to event listening to close the popup container and AUTOGRAB_VALUATION_DIMENSIONS resize the height dynamically.

On Page - holding the iframe on a page ensuring you let us know so we can remove the close button. Since the page can still extend vertically you need to respond to the AUTOGRAB_VALUATION_DIMENSIONS alert.

Event Listeners

Please ensure your implementation meets the minimum event listener requirements.

The valuation widget will send messages you need to pay attention to via the iframe postMessage function. The messages are as follows.

AUTOGRAB_VALUATION_SUCCESS

The widget loaded successfully, no intervention is needed.

AUTOGRAB_VALUATION_ERROR

There was an exception or error delivering the iframe contents.

AUTOGRAB_VALUATION_HIDE

The close button at the end of the workflow or close X in the interface has been pressed.

AUTOGRAB_VALUATION_DIMENSIONS

The iframe has resized due to changed in the contents. Please respond by resizing the iframe container to hold the new contents without cropping.

Get a vehicle by its marketplace

get

Get a vehicle by its marketplace

Authorizations
Query parameters
marketplacestringRequired
marketplace_idstringRequired
regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
get
{
  "error": true,
  "message": "Vehicle via marketplace drive.com.au/969515013 not found in database"
}
Refer to the text searching guide here.
authentication

Recall Search

Perform a recall check on a vehicle's registration

MOT & Tax Search

Get a vehicle's registration MOT and tax status

Vehicle History

Use this if you require a history-style description of the vehicle's pricing and listing history.

Factory Build Data

Get the vehicles build sheet to inform your user interface.

Factory Fitted Options

Get the options fitted to a given vehicle by VIN.

Embeddable Basics

AutoGrab hosts a range a embeddable products you can use to rapidly deploy solutions to the market to engage new customers and delight existing ones.

Vehicle ID Search

Get summary data on a vehicle by searching for its ID

If you know a vehicles ID already and would like summary data you can leverage a basic vehicle search.

Example Response

{
    "vehicle": {
        "id": "5655899674771456",
        "region": "uk",
        "title": "2017 Toyota Hilux SR5 Auto 4x4 Double Cab",
        "year": "2017",
        "make": "Toyota",
        "model": "Hilux",
        "badge": "SR5",
        "series": "GUN126R",
        "model_year": "MY17",
        "release_month": 7,
        "release_year": 2015,
        "body_type": "Utility",
        "body_config": "Dual Cab",
        "transmission": "Sports Automatic",
        "transmission_type": "Automatic",
        "wheelbase": null,
        "wheelbase_type": null,
        "fuel": "Diesel",
        "fuel_type": "Diesel",
        "engine": "Piston",
        "engine_type": "Piston",
        "drive": "4x4 Dual Range",
        "drive_type": "Four Wheel Drive",
        "num_doors": 4,
        "num_seats": 5,
        "num_gears": 6,
        "num_cylinders": 4,
        "capacity_cc": 2755,
        "power_kw": 130,
        "torque_nm": 450,
        "range": 1127,
        "options": [
        ]
    },
    "success": true
}

Sourcing Basics

Find the right market data to inform your decision making

The Sourcing API set allows you to find listing data for comparative and market insights. This API requires authentication and an appropriate license attached to it.

Customer Recapture

The Customer Recapture API allows you to upload, view and delete Customer Recapture customers.

This API requires and an appropriate license attached to it.

Uploading Customer Lists

The main purpose of the Customer Recapture API is to facilitate the automated upload of new Recapture customers.

Customer lists are often very long, so the Customer Recapture API allows you to queue customer uploads without immediately processing every customer in the list. There is an endpoint to queue the upload, and separate endpoints to check the status of the upload, and cancel it, if necessary.

Upload a list of customers

A POST request to https://api.autograb.com.au/v2/recapture/upload?region=uk will initiate a new queued customer list upload.

The request body has three key parameters:

  • name: A name to assign to the upload, for personal reference

  • enable_rego_lookups: When rego lookups are enabled, if the registration plate is provided, but no VIN is provided for a customer, we will perform a VIN lookup (at additional cost to you) and save the VIN along with the customer. When a customer record includes a VIN number, we can cross-reference the VIN with new vehicle listings posted in the future, and use this to verify that the car being sold is definitely the same car that you are tracking.

  • customers: An array of the customers that you want to upload. Customers can have any of the following properties, but everything is optional (however, at least a rego OR a vin is necessary for tracking purposes):

  • rego: The registration plate of the customer's vehicle

  • vin: The Vehicle Identification Number corresponding to the customer's vehicle

  • client_name: The name of the customer/client, for reference purposes

  • mobile_number: The customer's phone number. This is used for reference purposes, as well as to find other listings that the same customer has posted online.

  • sale_date: The date that the vehicle was sold to the customer, if applicable. For reference only.

  • expiry_date: If provided, the customer will be automatically deleted from our system on this date. This may be useful for insurance clients where the customer is no longer of interest after a policy ends, for instance.

  • additional_fields: A map of any other properties that should be saved along with the customer record.

If you try to upload an empty list, you will receive a You must upload at least one customer record error.

Example

To perform an example request:

An example response payload is:

You can explore this request further in the .

Check upload status

Once you've queued a customer upload, you may want to check on the upload progress. Sending a GET request to /v2/recapture/upload/{UPLOAD_ID}?region=uk will return information about the upload, including the progress and the number of errors.

The key properties to check the upload progress are total_uploaded_customers and total_processed_customers. Creating a new Recapture customer consists of two steps - uploading and processing - and these two counters reflect the progress made for each of these steps.

Once total_processed_customers is equal to total_uploaded_customers, the upload is complete. If there are any unexpected errors during the upload, total_errors will increase to signify this, but total_processed_customers is inclusive of errors.

Example

To perform an example request:

An example response payload is:

Cancel an upload

If you queue a customer upload and later change your mind, you can cancel the upload, stopping the creation of any more customer records.

The response payload will include the details of the deleted upload.

Example

To perform an example request:

An example response payload is:

Viewing and updating customers

Once you have uploaded a customer list, you are able to use the Customer Recapture API to view your newly uploaded customers, as well as edit and delete individual customer records.

Get a list of all customers

You can use the /v2/recapture/customers?region=uk endpoint to retrieve a list of all your Recapture customers.

This list is paginated, and you can move between pages using the offset and limit query parameters.

If you want to get customer records associated with a specific upload, you can pass the unique Upload ID to the upload_id query parameter.

Example

To perform an example request:

An example response payload is:

Get an individual customer's records

You can get individual customer details using the GET method on /v2/recapture/customers/${CUSTOMER_ID}?region=uk.

Trying to lookup an invalid customer ID returns the Invalid Customer ID error, and trying to look up a customer that you don't have access to returns an You don't have permission to access that customer error. If you try to lookup a customer that exists in a different region than the one specified in the request, you will receive an Incorrect Region error.

Example

To perform an example request:

An example response payload is:

Update an individual customer record

If you need to make changes to an individual customer's details, you can use the PATCH method on the /v2/recapture/customers/${CUSTOMER_ID}?region=uk endpoint.

Only the fields that you specify in the request body will be affected, and providing an empty value ("") will set the field to null where applicable.

The response payload will include the updated customer object.

You can update any of the following customer properties: - client_name - mobile_number - sale_date - expiry_date

Example

To perform an example request:

An example response payload is:

Delete a customer

You can delete an individual customer by using the DELETE method on the /v2/recapture/customers/{CUSTOMER_ID}?region=uk endpoint.

The response payload includes the details of the customer that was deleted, and there is no way to retrieve the customer other than manually re-creating it.

The same error messages apply as with the Get Customer endpoint.

Example

To perform an example request:

An example response payload is:

Integration Overview

Key things to know before you start.

Overview

Our API uses the OpenAPI 2.0 specification, making it easy for our partners to integrate. We want to ensure the best possible experience when integrating with our stack.

Environments

Environment
URL

Regions

Certain API endpoints require that a region be passed as part of the request URL. Where necessary it is expected that region=uk be included where region is required.

For example: https://api.autograb.com.au/v2/vehicle/239c8928fnc934fc?region=uk

Supported Regions

Country
Region Code

API Keys

Your account manager will provision API keys for your account. If you require a key to be revoked please get in touch with your account manager.

Quota Limits

APIs have soft quota limits that are enforced based on your contract agreement. To discuss these limits please get in touch with your account manager.

Rate Limiting

We strictly monitor the number of requests per second — if you exceed your allocation the API will respond with HTTP 429 Too Many Requests. We will also return additional headers to help you better understand when rate limits will be applied.

The limits are applied per API product and are decided based on your contract agreement. Rate limits do not relate to quotas.

Header
Example
Description

Valuation Basics

The Valuation API set allows you to predict current and future prices on vehicles. This API requires and an appropriate license attached to it.

Pre-Accident Valuation

Deliver you own PAV style product by leveraging a range of AutoGrab API products.

To deliver a PAV-style experience you can leverage existing API endpoints to deliver your desired UX. Below is a broad guide on how to achieve a similar outcome. Each integration will have nuances and specific commercial differences - don't hesitate to speak to your Integrations support person or sales executive for guidance.

Workflow Overview

Isolate The Vehicle ID

To begin the journey you will need to convert a real-world identifier into a vehicle ID to progress through the wider set of data. You can do this in four common ways;

  1. - the most common identifier consumers and agents are familiar with.

  2. - for unregistered or for scenarios where a plate is not known

  3. - for scenarios where a standard identifier is not known or where the data delivered from upstream (Road Authority) is not reliable.

Explore

For example, the response from a Registration search is below. Importantly you want to identify the ID, "id": "5932950835167232" for use in future steps.

We offer a range of data enrichment packs to deliver more information in your registration or VIN lookups, . Consider the usage of the compliance information or vehicle age products.

Extrapolate Into Your Workflows

Get Market Data

To understand the position of that vehicle in the market you would call on the y service. This would deliver you a large payload of information on the competitive set of the vehicle.

To enrich your Overlay information we suggest employing additional features. For this use case, those are

  1. - to get all the images attached to the lead inside AutoGrab.

  2. - to get the primary detailed description of each listing for UI display purposes.

Perform A Valuation

To understand the value of the vehicle you will want to run a Valuation using the endpoint. That will give you the current retail and trade values for the vehicle. Consider employing the to understand the valuation upper and lower thresholds as part of this calculation.

Gauge API

Create your own price indication and benchmarking gauge.

The AutoGrab AutoGauge is an endpoint that delivers market benchmarking information with inputs of listing information. It supports a range of inputs depending on your use case.

Example Post Body

The body of the request can accept a range of inputs depending on your listing data. All available inputs are below.

The response for this request is below. The AutoGauge can be presented with a broad range of vehicle identifiers and will consider them dependent on your commercial agreement. In the scenario above, the AutoGrab ID was presented and used, and all other inputs were supplied as backups.

Use Case Driven Implementation Examples

Marketplace Implementation

If you are a marketplace you will store your own marketplace IDs against each listing. You can submit those via the request body to produce an AutoGauge response.

Dealer Website Implementation (AutoGrab Customer)

As a customer with an existing AutoGrab API integration, you will likely have stored the AutoGrab IDs from vehicle search steps you've previously taken. In this case supply your known vehicle_id as part of the request. This is the lowest-cost implementation as it does not require a VIN or Registration search.

Dealer Website Implementation (Non-Direct Customer)

As an app or new customer, you may only have the VIN and registration information for your vehicles. You can pass them into the request body as below.

Registration or VIN-driven AutoGauge requests attract an additional lookup fee. Speak to your account representative for commercial implications.

GET /v2/vehicles/marketplace/ HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "vehicle": {
    "id": "text",
    "region": "au",
    "title": "text",
    "year": 1,
    "make": "text",
    "model": "text",
    "badge": "text",
    "series": "text",
    "body_type": "text",
    "body_config": "text",
    "transmission": "text",
    "wheelbase": "text",
    "fuel": "text",
    "engine": "text",
    "drive": "text",
    "num_doors": 1
  }
}

Production V2

https://api.autograb.com.au/v2/

United Kingdom

uk

Rate-Limit-Remaining

60

Number of remaining requests until the limit is reset.

Rate-Limit-Total

60

Number of total requests that can be made until the limit is reset.

Rate-Limit-Reset

1609459200

The timestamp of when the limit will reset.

Monthly-Base-Request-Quota

100

Number of requests included in your contract.

Monthly-Max-Request-Quota

100000

Maximum number of requests allowed in your contract.

Monthly-Request-Total

100

Monthly requests performed for this request type.

curl -XPOST -H 'ApiKey: {API_KEY}' \
    -H "Content-type: application/json" \
    -d '{
        "name": "June 2022 New Customers",
        "enable_rego_lookups": false,
        "customers": [
            {
                "rego": "ZEN407",
                "state": "VIC",
                "client_name": "Maya",
                "expiry_date": "2023-05-01"
            }
        ]
    }' 'https://api.autograb.com.au/v2/recapture/upload?region=au'
{
    "success": true,
    "upload": {
        "id": "99aa2d8e-348b-4321-beeb-f2fa67bab3eb",
        "created_at": "2022-07-21T08:07:16.580Z",
        "enable_rego_lookups": false,
        "name": "June 2022 New Customers",
        "total_uploaded_customers": 1,
        "total_processed_customers": 0,
        "total_errors": 0
    }
}
curl "https://api.autograb.com.au/v2/recapture/upload/{UPLOAD_ID}?region=uk" \
     -H 'ApiKey: {API_KEY}'
{
    "success": true,
    "upload": {
        "id": "80230301-9d26-45d7-85d6-fbb8c519c014",
        "created_at": "2022-07-16T06:22:05.289Z",
        "enable_rego_lookups": false,
        "name": "August 2022 New Customers",
        "total_uploaded_customers": 1000,
        "total_processed_customers": 800,
        "total_errors": 0
    }
}
curl -XDELETE "https://api.autograb.com.au/v2/recapture/upload/{UPLOAD_ID}?region=uk" \
     -H 'ApiKey: {API_KEY}'
{
    "success": true,
    "upload": {
        "id": "80230301-9d26-45d7-85d6-fbb8c519c014",
        "created_at": "2022-07-16T06:22:05.289Z",
        "enable_rego_lookups": false,
        "name": "August 2022 New Customers",
        "total_uploaded_customers": 1000,
        "total_processed_customers": 850,
        "total_errors": 0
    }
}
curl -XDELETE "https://api.autograb.com.au/v2/recapture/customers/{UPLOAD_ID}?region=uk&limit=100&offset=0" \
     -H 'ApiKey: {API_KEY}'
{
    "success": true,
    "customers": [
        {
            "id": "000005cb-6d2f-49bc-a5a3-b596ede9202b",
            "last_updated": "2022-07-21T05:41:02.941Z",
            "rego": null,
            "state": 'VIC',
            "vin": '1N4AL11D16N337720',
            "client_name": "Jack",
            "mobile_number": null,
            "sale_date": "2022-01-07T00:00:00.000Z",
            "expiry_date": null,
            "vehicle_title": null,
            "sightings": [],
            "additional_fields": {}
        },
        {
            "id": "0000993c-f21a-445e-9829-21786098df16",
            "last_updated": "2022-07-21T05:45:05.174Z",
            "rego": null,
            "vin": '4T1BE46K28U742135',
            "client_name": "Jeffery",
            "mobile_number": null,
            "sale_date": "2020-03-31T00:00:00.000Z",
            "expiry_date": null,
            "vehicle_title": null,
            "sightings": [],
            "additional_fields": {}
        }
    ]
}
curl "https://api.autograb.com.au/v2/recapture/customers/{CUSTOMER_ID}?region=uk" \
     -H 'ApiKey: {API_KEY}'
{
    "success": true,
    "customer": {
        "id": "0000c339-1fb4-4d15-9b46-6509f2c5a2a4",
        "last_updated": "2022-07-21T02:27:03.543Z",
        "rego": '1EW2WA',
        "vin": null,
        "client_name": "Johnny",
        "mobile_number": null,
        "sale_date": "2020-07-18T00:00:00.000Z",
        "expiry_date": null,
        "vehicle_title": null,
        "sightings": [],
        "additional_fields": {}
    }
}
curl -XPATCH -H 'ApiKey: {API_KEY}' \
    -H "Content-type: application/json" -d '{
        "mobile_number": "+61 111 222 333",
    }' 'https://api.autograb.com.au/v2/recapture/customers/{CUSTOMER_ID}?region=uk'
{
    "success": true,
    "customer": {
        "id": "0000c339-1fb4-4d15-9b46-6509f2c5a2a4",
        "last_updated": "2022-07-21T02:27:03.543Z",
        "rego": '1EW2WA',
        "vin": null,
        "client_name": "Johnny",
        "mobile_number": "+61 111 222 333",
        "sale_date": "2020-07-18T00:00:00.000Z",
        "expiry_date": null,
        "vehicle_title": null,
        "sightings": [],
        "additional_fields": {}
    }
}
curl -XDELETE "https://api.autograb.com.au/v2/recapture/customers/{CUSTOMER_ID}?region=uk" \
     -H 'ApiKey: {API_KEY}'
{
    "success": true,
    "customer": {
        "id": "0000c339-1fb4-4d15-9b46-6509f2c5a2a4",
        "last_updated": "2022-07-21T02:27:03.543Z",
        "rego": '1EW2WA',
        "vin": null,
        "client_name": "Johnny",
        "mobile_number": null,
        "sale_date": "2020-07-18T00:00:00.000Z",
        "expiry_date": null,
        "vehicle_title": null,
        "sightings": [],
        "additional_fields": {}
    }
}
authentication
API Playground

Get a vehicle by its ID

get

Get a vehicle by its ID

Authorizations
Path parameters
vehicle_idstringRequired

ID of the vehicle returned from a search

Query parameters
regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
get
GET /v2/vehicles/{vehicle_id} HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "vehicle": {
    "id": "text",
    "region": "au",
    "title": "text",
    "year": 1,
    "make": "text",
    "model": "text",
    "badge": "text",
    "series": "text",
    "body_type": "text",
    "body_config": "text",
    "transmission": "text",
    "wheelbase": "text",
    "fuel": "text",
    "engine": "text",
    "drive": "text",
    "num_doors": 1
  }
}

Deal Gauge & Indicator

Used to provide snapshot pricing information on a vehicle's position in the market.

Valuation Widget

Used to provide an instant cash offer journey to your websites.

Market Insights Snapshot

Used to provide insights into the marketability of a given car in a regional marketplace.

Market Overlay

Use this to get a view of the market as it relates to a specific vehicle.

Market Statistics

Use this to get key statistics on any vehicle ID.

Produce the inputs to make a gauge UI based on vehicle or listing-driven inputs

post

Produce the inputs to make a gauge UI based on vehicle or listing-driven inputs

Authorizations
Query parameters
regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Body
regionstring · enumRequiredPossible values:
odometerintegerRequired
listing_priceintegerRequired
vehicle_idstringOptional
vinstringOptional
regostringOptional
statestringOptional
vehicle_descriptionstringOptional
marketplacestringOptional
marketplace_idstringOptional
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
post
{
  "region": "au",
  "odometer": 10000,
  "listing_price": 30000,
  "vehicle_id": "5257788510961664",
  "vin": "2T1BY32E95C347786",
  "rego": "BMT038",
  "state": "VIC",
  "vehicle_description": "2015 Toyota Corolla Ascent Automatic",
  "marketplace": "autotrader.com.au",
  "marketplace_id": "13495712"
}
{
  "success": true,
  "gauge": {
    "id": "b2824bfd-d4a4-45e4-a81a-bed7b92c5cd9",
    "fill": 0.5,
    "listing_price": 24000,
    "market_range_min": 21000,
    "market_range_max": 26000,
    "confidence": 0.85,
    "sample_size": 10,
    "vehicle_title": "2015 Toyota Corolla Ascent Automatic"
  }
}
{
  "region": "au",
  "odometer": 10000,
  "listing_price": 30000,
  "marketplace": "example.com.au",
  "marketplace_id": "53445712"
}
{
  "region": "au",
  "odometer": 10000,
  "listing_price": 30000,
  "vehicle_id": "5257788510961664",
  "vehicle_description": "2015 Toyota Corolla Ascent Automatic",
}
{
  "region": "au",
  "odometer": 10000,
  "listing_price": 30000,
  "vin": "2T1BY32E95C347786",
  "rego": "BMT038",
  "state": "VIC",
  "vehicle_description": "2015 Toyota Corolla Ascent Automatic",
}
authentication

Current Valuation

Use this to generate market accurate predictions for vehicles.

Residual Valuation

Use this to predict the future value of a vehicle.

VIN & Rego Valuation

Generate a valuation with a Registration Plate or VIN

Max Offer Configuration

Use this to set your in app or API level max offer config.

AutoGauge

Use this to generate inputs for your own AutoGauge

Registration Plate Search
VIN Search
Facet (Drop Down) Search
other vehicle discovery mechanisms here.
explore them all here
Market Overla
All Images
Primary Description
Pricing
Bounds feature
A basic overview of the PAV-Style integration workflow

AutoGrab Developer Hub

Welcome to the developer hub, this is your reference to integrate with all aspects of the system. We've got guides and reference materials to support and accelerate your development.

You can explore our endpoints by searching or asking questions through the AI-powered doc system. See what product fits your user case by clicking a top-level grouping below.

Market Overlay Widget

The Market Overlay widget system provides insights into the marketability of a given car in a marketplace.

Overview

The widget can show regionalised market insights based on input vehicles. It is customisable to your brand via a hero brand icon. The resulting market information can help your customers understand the market reception to a given vehicle.

Implementation

Speak to your sales rep about your desired implementation pattern. We will supply you with staging and production iFrame url code as part of your deployment process.

Implementation of the trigger to present this iframe is the responsibility of the site owner.

There are two options for the implementation of the overlay:

  • Auto-Search

    • By providing a stringified vehicle description, AutoGrab will automatically match the vehicle based on the description and value based on the odometer provided when triggering the overlay widget. If the vehicle is incorrect, the user can override it.

  • Manual Selection

    • If no vehicle description and odo are provided, the overlay will prompt the user to select a vehicle manually from a set of dropdowns.

You must implement you own trigger button to launch the iframe and load in all required inputs as below.

Example Implementation Inputs

To load the iframe you need to share the following input variables.

Label
Description
Example
Requirement

Example Implementation iFrame

Example UI

Position On Page

You have two options to embed the iframe inside your website. In both these options, it is critical that you set the iframe width to 650px and centered.

Popup - holding the iframe in a popup container and ensuring you conform to the AUTOGRAB_INSIGHTS_HIDE to event listening to close the popup container and AUTOGRAB_INSIGHTS_DIMENSIONS resize the height dynamically.

On Page - holding the iframe on a page ensuring you let us know so we can remove the close button. Since the page can still extend vertically you need to respond to the AUTOGRAB_INSIGHTS_DIMENSIONS alert.

Event Listeners

Please ensure your implementation meets the minimum event listener requirements.

The valuation widget will send messages you need to pay attention to via the iframe postMessage function. The messages are as follows.

AUTOGRAB_INSIGHTS_SUCCESS

The widget loaded successfully, no intervention is needed.

AUTOGRAB_INSIGHTS_ERROR

There was an exception or error delivering the iframe contents.

AUTOGRAB_INSIGHTS_HIDE

The close button at the end of the workflow or close X in the interface has been pressed.

AUTOGRAB_INSIGHTS_DIMENSIONS

The iframe has resized due to changed in the contents. Please respond by resizing the iframe container to hold the new contents without cropping.

POST /v2/valuations/gauge/ HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 182

{
  "region": "au",
  "odometer": 1,
  "listing_price": 1,
  "vehicle_id": "text",
  "vin": "text",
  "rego": "text",
  "state": "text",
  "vehicle_description": "text",
  "marketplace": "text",
  "marketplace_id": "text"
}
{
  "success": true,
  "gauge": {
    "id": "text",
    "fill": 1,
    "listing_price": 1,
    "market_range_min": 1,
    "market_range_max": 1,
    "confidence": 1,
    "sample_size": 1,
    "vehicle_title": "text"
  }
}

Vehicle Search

Find vehicles in our comprehensive, regional databases using plain text search, aggregate field lookup & state vehicle registration.

Vehicle Valuation

Value new & used vehicles from our database, and calculate trade-in price & future value using our highly accurate pricing model.

Vehicle Data

Find descriptive data on vehicles to enrich your user experiences or power your backend workflows.

Vehicle History

View a vehicle's history as it moves through marketplaces over time.

Sourcing

The Sourcing API allows you to access lead and listing data from a variety of used car marketplaces.

Customer Recapture

Track your past customers and get notified when they list vehicles for sale online.

Embeddable Products

Explore products like Valuation Widget, Deal Gauge and more.

Reports

Generate PDF certificates to show valuations or vehicle details in your own workflows.

Webhooks

The Webhooks API allows you to configure endpoints that will receive PUSH events from the platform.

Region

The country you would like to load insights for.

UK

Required

Odometer

The odometer of the vehicle used in the valuation process

1000

Optional

Vehicle_Description

The most descriptive title of the vehicle you can provide so we can match it to our catalogue.

2014 Tesla MODEL S Model S Electric Sedan

Required

API_Key

Your API key used to securely load the iframe and load your brand configuration.

123ABC

Required

src="https://offer.autograb.com.au/?api_key=1234567&vehicle_description=2014%20Mitsubishi%20Outlander%20GF7W%2020G%20Auto&odometer=365489&reference_id=Fjord_Motors" />
Vehicle Confirmation
Manual Vehicle Selection
The Market Output

Market Overlay

Get a view of the market as it relates to a specific vehicle.

When viewing a lead on the web app, a view of similar leads currently listed for sale or recently sold is available on the side of the page (the 'Market Overlay'). The Market Overlay API gives you programmatic access to this data, enabling you to show price justifications or re-create our market comparison view for your purposes.

To access a Market Overlay, you must specify a Vehicle ID to search for relevant listings. To retrieve a Vehicle ID, use any of the Vehicle Search APIs.

When retrieving market data for a Vehicle ID, a best-effort attempt is made to find at least four listings. This search begins by looking at the latest 60 days, and if there is not enough data in this period, another 10 days of data is added until the minimum quota of four is reached.

If you would like a larger sample of market data, you can specify a minimum_days value and this will override the default minimum of 60 days.

Request Parameters

Name
Description

vehicle_id

The ID of the vehicle you are requesting a market overlay on.

minimum_days

The minimum number of days to show listings for

Default value : 60

include_adjacent_years

If enabled, vehicles that were manufactured up to one year before and one year after your chosen vehicle will also be included in the results.

Default value : false

--true / false

exclude_outliers

If enabled, leads that are considered outliers will be excluded from the results.

Default value : false

--true / false

exclude_all_delisted

If enabled, leads that are not currently on the market will be excluded from the results.

Default value : false

--true / false

include_all_active

If enabled, all listings that are currently on the market will be returned, instead of only listings which were uploaded within the specified timeframe (minimum_days). Additionally, if this is enabled, delisted leads will be returned based on the number of days since they were sold, rather than the number of days since they were listed.

Default value : false

--true / false

include_trash

If enabled, leads that are considered trash, written off, damaged, or missing details will be included in the results. The tag_ids array can then be used to determine if a lead is trash, damaged, etc.

Default value : false

--true / false

features

Comma-separated array of additional overlay feature codes as specified in your contract

odometer_range_min

The minimum range observed against similar vehicles

Example : 50000

odometer_range_max

The maximum range observed against similar vehicles

Example : 100000

region

--au

Features

Passing option feature parameters can enhance the market overlay. You can request a single feature or combine them to enrich your responses. Your sales representative must enable a unique permission for each feature.

Dealer Contact Details

This feature will deliver the contact details of the advertising dealership as per the listing. Use features=dealer_contact_details

"contact_name": "Example Motors",
"contact_number": "+61 3 2568 6587",

Lead Starting Price

This feature will deliver the initial price the lead was advertised at. Use features=lead_starting_price

"starting_price": 73990,

Lead Price Drops

wantThis feature will deliver the count of times the price has been dropped. If you would like to know what each drop (or increase) was consider the Vehicle History endpoint. Use features=lead_price_drops

"price_drop_count": 2,

Vehicle RRP

This feature will deliver the RRP of the vehicle when it was new according to our vehicle data catalogue, the same data and more is available via our Specifications endpoint. Use features=vehicle_rrp

"price_when_new": 46990,

All Listing URLs

This feature will deliver the listing URLs related to the lead across all sites it is listed on. Use features=listing_urls

"listing_details": [
                {
                    "source": "gumtree.com.au",
                    "url": "https://www.gumtree.com.au/s-ad/1319103332/"
                },
                {
                    "source": "autotrader.com.au",
                    "url": "https://www.autotrader.com.au/car/13462144/toyota/hilux/sa/cheltenham/dual-cab/"
                }
            ]

Primary Cover Image

This feature will deliver the cover image for each record where available. Each image is stored for 90 days after delisting. Use features=cover_image

"cover_image_url": "https://storage.googleapis.com/download/storage/v1/b/ag-img/o/1700380596629%2F402495842_660380.jpg?generation=1700380597213918&alt=media"

All Images

This feature will deliver all primary images for each record where available. Each image is stored for 90 days after delisting. Use features=all_images

"all_images": [
                "https://storage.googleapis.com/download/storage/v1/b/ag-img/o/1713129285535%2Fd7ec39ad-671b-4b.jpg?generation=1713129287041771&alt=media",
                "https://storage.googleapis.com/download/storage/v1/b/ag-img/o/1713129291498%2Fd3c1928d-a0f4-4f.jpg?generation=1713129292538543&alt=media",
                "https://storage.googleapis.com/download/storage/v1/b/ag-img/o/1713129296398%2Ff982ef2b-a25f-47.jpg?generation=1713129297432084&alt=media",
                "https://storage.googleapis.com/download/storage/v1/b/ag-img/o/1713129300707%2Fb4350079-4f04-4c.jpg?generation=1713129302187962&alt=media",
                "https://storage.googleapis.com/download/storage/v1/b/ag-img/o/1713129306170%2F2a88d686-c4b7-4a.jpg?generation=1713129307655700&alt=media"
            ]

Primary Listing Description

This feature will deliver the primary listing description for each record where available. Use features=primary_description

 "primary_description": "Near new condition 2022 Jeep Grand Cherokee Limited 4x4 <br> <br> <br> * Panormaic roof <br> * All Wheel Drive <br> * 20-inch Alloy Wheels <br> * 10.1-inch Touchscreen Display <br> * Wireless Apple CarPlay and Android Auto <br> * Leather Seats <br> * Heated & Ventillated front seats <br> * Heated steering wheel <br> * 9 Speaker Premium Audio System <br> * Power liftgate with adjustable height settings <br> * Automatic LED headlamps with Automatic highbeam <br> * Automatic Windscreen Wipers <br> * 10.25\" Multiview Display cluster <br> * 360 ParkView Rear Back-up Camera <br> * Front and Rear Park Assist with Stop <br> * Tyre Pressure Monitoring <br> * Keyless Entry with Push Button Start <br> * Blind Spot Monitoring with Rear Cross-Path Detection <br> * Adaptive Cruise Control with Stop and Go <br> * Active Lane Management <br> * Pedestrian Automatic Emergency Braking (with cyclist detection) <br> <br> We also accept trade ins, So bring down your pride and joy and we can price it on the spot! <br> <br> With easy onsite finance pre approvals available you can be in your new car in no time. <br> <br> WE ARE A PRIVATE OWNED DEALERSHIP JUST 20 MINUTES NORTH OF PERTH CITY,<br/><strong>Motor Mall WA</strong><br/>41 Buckingham Drive Wangara, WA 6065<br/>License number: 29875"

Registration Plate

This feature will deliver the vehicle's registration plate in the market overlay payload. Use features=rego

"rego": "FDT46H",

VIN

This feature will deliver the vehicle's VIN in the market overlay payload. Use features=VIN

"vin": "MR0BA3CD900173054",

Stock Number

This feature will deliver the vehicle's stock number in the market overlay payload. Use features=stock_no

"stock_no": 123ABC,

Average Kms

This feature will deliver the average kms and average odometer of the overlay calculated for you in the response. Use features=avg_kms

"avg_odo": 123000,
"avg_kms":2300,

Average Price

This feature will deliver the average price of the overlay calculated for you in the response. Use features=avg_price

"avg_price": 67664,

See available features here.

Get the leads used to justify pricing for a given AutoGrab Vehicle ID.

get

Get the leads used to justify pricing for a given AutoGrab Vehicle ID.

Authorizations
Path parameters
vehicle_idstringRequired
Query parameters
minimum_daysnumberOptional

The minimum number of days to show listings for

include_adjacent_yearsbooleanOptional

If enabled, vehicles that were manufactured up to one year before and one year after your chosen vehicle will also be included in the results.

exclude_outliersbooleanOptional

If enabled, leads that are considered outliers will be excluded from the results.

exclude_all_delistedbooleanOptional

If enabled, leads that are not currently on the market will be excluded from the results.

include_all_activebooleanOptional

If enabled, all listings that are currently on the market will be returned, instead of only listings which were uploaded within the specified timeframe (minimum_days). Additionally, if this is enabled, delisted leads will be returned based on the number of days since they were sold, rather than the number of days since they were listed.

include_trashbooleanOptional

If enabled, leads that are considered trash, written off, damaged, or missing details will be included in the results. The tag_ids array can then be used to determine if a lead is trash, damaged, etc.

featuresstringOptional

Comma separated array of additional overlay feature codes as specified in your contract

odometer_range_minnumberOptional

The minimum range observed against similar vehicles

odometer_range_maxnumberOptional

The maximum range observed against similar vehicles

regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
get
GET /v2/sourcing/market_overlay/{vehicle_id} HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "sample_size": 1,
  "days_checked": 1,
  "avg_days_to_sell": 1,
  "outlier_count": 1,
  "days_supply": 1,
  "avg_price": 1,
  "min_price": 1,
  "max_price": 1,
  "avg_odometer": 1,
  "min_odometer": 1,
  "max_odometer": 1,
  "leads": [
    {
      "id": "text",
      "color": "text",
      "drive_away_price": 1,
      "is_outlier": true,
      "kms": 1,
      "listing_url": "text",
      "listing_sources": [
        "text"
      ],
      "listed_at": "text",
      "price": true,
      "price_before_govt_charges": [
        1
      ],
      "price_includes_govt_charges": [
        true
      ],
      "release_year": 1,
      "release_month": 1,
      "removed_at": "text",
      "seller_type": "private",
      "state": "text",
      "tag_ids": [
        "text"
      ],
      "vehicle_id": "text",
      "year": 1,
      "all_images": [
        "text"
      ],
      "primary_description": "text"
    }
  ]
}

Factory Fitted Options

Get the options fitted to a given vehicle by VIN.

Overview

The Factory Fitted Options (FFO) API provides a record of the optional features (as opposed to standard features) that a vehicle had when it left the factory. It achieves this by:

  • Obtaining a vehicle ID using

  • Requesting a from OEM partners to determine the original factory specifications.

  • Using advanced machine learning models to distinguish between standard and optional features.

  • Scoring and structuring the data into an API response for downstream use.

The final output is a list of fitted options, including a confidence score and other relevant details.

Response Data Definitions

The response provides a fitted option report and can be interpreted using the following table.

Match Category Data Definitions

Option Match Score Definitions

The “Technical Description” is for integration partners who need to understand what's at play behind the scenes. The “Public Facing Description” is a simplification of the technical description that boils it down to a basic likelihood scale.

The match score runs from 0.6 to 1 with no other responses supported outside this range.

Fitted Options Response Time

Due to the multiple external and internal API calls and the nature of LLM model responses below covers expected average response times for the fitted options API based on AutoGrabs internal benchmarking.

  • certain OEM build sheet providers have widely varying response times

  • some DVLA responses are slower

  • Couples with the compute time for the model to generate the fitted options, this can extend the processing time before a successful response is returned by the API.

Excluding VRM Lookup below is our average benchmark across our internal test set of 100 VINs:

Our DVLA VRM connection benchmarks at the following speeds across our test set:

Example Response

build_sheet_lines

"LEVER FINISHing - METAL PAINT", "FUEL FILLER Door FINISHing - BODY COLOR

These are the lines in the build sheet, received from the OEM, that the FFO system has determined to be correlated to an optional extra.

option_id

1037

This is the option_ID as available in the JATO dataset.

option_code

JATOMET

This is the option_code as available in the JATO dataset.

option_title

Metallic paint

This is the option_title as available in the JATO dataset.

option_details

Metallic paint, two-tone metallic paint

This gives a detailed description of the option specified in the option_title

match_score

0.7

This is the confidence score of the match.

The match_score categories are given below. Refer to the “Understanding The Option Match Score” section below for more information.

match_category

Matched

The various values for match_category are explained below.

msrp

600

This is the MSRP (the price of the option) as available in the JATO dataset. Expressed in local currency.

Matched

The option was included on the build sheet. The confidence is based on the similarity of the build sheet description(s) to the JATO option title and details.

Included directly by <option>

Because <option> is fitted, this option is included free of charge. This option may or may not have also been matched from the build sheet. If this option was also matched from the build sheet, the confidence may be increased.

Required directly by <option>

Because <option> is fitted, this option must be included at an additional cost. This option may or may not have also been matched from the build sheet - if so the confidence may be increased.

Price changed directly by <option>

Because <option> is fitted, this option is charged at an adjusted price. The MSRP will be updated to reflect this. This option may or may not also be matched on the build sheet, and if so the confidence may be increased.

Included recursively by <option>

This option is included free of charge due to a chain of dependencies that involves <option>. This option was not matched directly, and the confidence will be lowered to indicate this.

Required recursively by <option>

Because of an existing chain of option dependencies, this option must be included. However, this option was not matched directly, so the confidence will be lowered.

Prerequisites Met

All of the included options in this option pack were already matched, so this pack has been added as well, because it causes the overall price to be lower than if the options were individually included.

Average

2.75

Min

1.00

Max

19.8

Average

0.44

Min

0.21

Max

0.76

{
  "success": true,
  "fitted_options": [
    {
      "build_sheet_lines": [
        "4 alloy wheels \"Ventura\" 7.5J x 17",
        "Tires 225/45 R17 91W",
        "\"Ventura\" 7.5J x 17, tires 225/45 R17"
      ],
      "option_id": "1245",
      "option_code": "PJ3",
      "option_title": "Alloy wheels 17\" 'Ventura'",
      "option_details": [
        "Front and rear wheels: 17 inch two-tone alloy rims ; width: 7.5 inches",
        "Front and rear tyres: 17 inch diameter, 225mm wide, 45% profile (official data)"
      ],
      "match_score": 0.9,
      "match_category": "Matched",
      "msrp": 675
    },
    {
      "build_sheet_lines": [
        "\"drive select\""
      ],
      "option_id": "1248",
      "option_code": "PDD",
      "option_title": "Dynamic Chassis Control (DCC)",
      "option_details": [
        "Driver selectable electronic responsive suspension",
        "Selectable driving modes that affect suspension"
      ],
      "match_score": 0.7,
      "match_category": "Matched",
      "msrp": 1045
    },
    {
      "build_sheet_lines": [
        "Side windows in heat-insulating glass, from B-pillar and rear window dark tinted"
      ],
      "option_id": "1249",
      "option_code": "4KF",
      "option_title": "Rear tinted glass",
      "option_details": [
        "Privacy glass on the rear window and on the rear side windows"
      ],
      "match_score": 0.7,
      "match_category": "Matched",
      "msrp": 275
    },
    {
      "build_sheet_lines": [
        "Automatic headlight control with LED separate daytime running light and entry and exit lighting"
      ],
      "option_id": "1271",
      "option_code": "PXD",
      "option_title": "IQ.Light - LED Matrix headlights inc dynamic cornering",
      "option_details": [
        "LED low beam LED high beam headlights",
        "LED dipped headlights, rear lights and main beam headlights",
        "Headlight control systems: steering sensor, speed sensor, active high beam, automatic height adjustment, internal height adjustment and matrix"
      ],
      "match_score": 0.7,
      "match_category": "Matched",
      "msrp": 1940
    },
    {
      "build_sheet_lines": [
        "voice control"
      ],
      "option_id": "1256",
      "option_code": "QH1",
      "option_title": "Voice Control",
      "option_details": [
        "Voice activating system includes audio player, phone, sat nav and air-con"
      ],
      "match_score": 0.7,
      "match_category": "Matched",
      "msrp": 225
    },
    {
      "build_sheet_lines": [
        "multifunction camera"
      ],
      "option_id": "1265",
      "option_code": "KA2",
      "option_title": "Rear view camera",
      "option_details": [
        "Rear sensor & camera-type parking distance system",
        "Rear/reverse parking guidance display"
      ],
      "match_score": 0.7,
      "match_category": "Matched",
      "msrp": 330
    }
  ]
}
VRM Search
Build Sheet

Get fitted options for a vehicle

post

Get fitted options for a vehicle

Authorizations
Body
regionstring · enumOptionalPossible values:
vehicle_idstringRequired

The Vehicle ID to get fitted options for, using the specified catalogue

Example: 829630320230801
cataloguestringRequired

The vehicle catalogue that you are using (autograb or jato)

Example: jato
vinstringRequired

Plate number of the registered vehicle

Example: WVWZZZCD3RW836864
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
post
POST /v2/vehicles/fitted_options HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 118

{
  "region": "au",
  "vehicle_id": "829630320230801",
  "catalogue": "jato",
  "vin": "WVWZZZCD3RW836864",
  "features": [
    "build_sheet"
  ]
}
{
  "success": true,
  "fitted_options": [
    {
      "build_sheet_lines": [
        "text"
      ],
      "option_id": "text",
      "option_code": "text",
      "option_title": "text",
      "option_details": [
        "text"
      ],
      "match_score": 1,
      "match_category": "text",
      "msrp": 1
    }
  ],
  "debug_log": [
    "text"
  ],
  "build_sheet": [
    {
      "code": "text",
      "description": "text"
    }
  ],
  "grouped_options": {
    "common_matches": [
      [
        {
          "id": "text",
          "type": "text",
          "title": "text",
          "details": [
            "text"
          ],
          "msrp": 1,
          "matches": [
            {
              "input_line": "text",
              "score": 1,
              "detail_idx": 1
            }
          ]
        }
      ]
    ],
    "mutually_exclusive_matches": [
      {
        "common_matches": [
          {
            "input_line": "text",
            "score": 1,
            "detail_idx": 1
          }
        ],
        "options": [
          {
            "id": "text",
            "type": "text",
            "title": "text",
            "details": [
              "text"
            ],
            "msrp": 1,
            "matches": [
              {
                "input_line": "text",
                "score": 1,
                "detail_idx": 1
              }
            ]
          }
        ]
      }
    ]
  }
}

VRM Search

Find vehicle information from a vehicle registration mark.

Overview

The Vehicle Registration API allows you to search for a vehicle by supplying its number plate. The request requires a region, the state (dependent on the region), the number plate, and the API key. It will return either a matching vehicle or a null.

If a matching vehicle cannot be identified in all cases, we will return the upstream_vehicle field, allowing you to identify how the relevant road transport authority describes the car. Depending on your use case, you may wish to allow front-end users to manually classify the vehicle using the guide to fill out a Facet-style search.

Features

You can request more data than the standard payload by leveraging the features described below.

Ensure your commercial agreement has these features enabled if you require them.

Additional Upstream

This feature will return structured descriptive data from the registration authority. Use features=additional_upstream_data to receive this payload.

"additional_upstream_data": {
        "vehicle_details": {
            "vehicle_identification": {
                "ukvd_id": "V-JZTYRS",
                "ukvd_uvc": "M-NPGXL",
                "vehicle_registration_mark": "KW73NKE",
                "vehicle_identification_number": "W1K5J5BB4PN369431",
                "dvla_manufacturer_desc": "MERCEDES-BENZ",
                "dvla_model_desc": "AMG CLA 35 PREMIUM 4MATIC AUTO",
                "dvla_wheelplan": "2 AXLE RIGID BODY",
                "registration_date": "2023-11-20",
                "first_registration_date": "2023-11-20",
                "used_before_first_registration": false,
                "manufactured_year": 2023,
                "v5c_qty": 2,
                "date_v5c_issued": "2023-11-20",
                "engine_number": "26092030493649",
                "prior_ni_vrm": "",
                "dvla_body_desc": "COUPE",
                "dvla_fuel_desc": "PETROL"
            },
            "vehicle_status_details": {
                "is_non_eu_import": false,
                "is_imported": false,
                "certificate_of_destruction_issued": false,
                "is_exported": false,
                "exported_date": null,
                "is_scrapped": false,
                "scrapped_date": null
            },
            "vehicle_excise_duty_details": {
                "co2_gkm": 191,
                "dvla_co2_band": null,
                "12_month_rfl_y1": 1650,
                "6_month_rfl_y2_to_y6_premium": 330,
                "12_month_rfl_y2_to_y6_premium": 600,
                "6_month_rfl_y2_to_y6": 104.5,
                "12_month_rfl_y2_to_y6": 190
            },
            "colour_details": {
                "colour": "WHITE",
                "colour_changes_qty": 0,
                "original_colour": "WHITE",
                "last_colour": null,
                "date_of_last_colour_change": null
            },
            "keeper_change_list": [
                {
                    "number_previous_keepers": 1,
                    "date_of_last_keeper_change": "2024-06-08"
                }
            ],
            "plate_change_list": []
        },
        "model_details": {
            "ukvd_variant_code": 1,
            "model_data": {
                "manufacturer_desc": "Mercedes-AMG",
                "model_range_desc": "CLA",
                "model_desc": "AMG CLA 35 Premium 4Matic Auto",
                "model_variant": null,
                "ukvd_series_desc": "C118",
                "ukvd_mark": null,
                "model_start_date": "2022-07-22",
                "model_end_date": null,
                "emission_class": "6d",
                "country_of_origin": "Germany",
                "ukvd_fuel_type_desc": "Petrol",
                "cab_type_desc": null,
                "type_approval_category": "M1",
                "market_sector_code": null,
                "vehicle_type": "Car",
                "vehicle_taxation_class": "Car"
            },
            "body_details": {
                "ukvd_body_shape": null,
                "ukvd_body_type_desc": "Coupe",
                "fuel_capacity_litres": 51,
                "number_axles": 2,
                "number_doors": 4,
                "number_seats": 5,
                "payload_volume_square_metres": null,
                "wheelbase_type_desc": "Short Wheelbase",
                "platform_desc": null,
                "is_platform_shared": null
            },
            "dimensions": {
                "vehicle_height_mm": 1404,
                "vehicle_length_mm": 4695,
                "vehicle_width_mm": 1834,
                "vehicle_wheelbase_mm": null,
                "load_length_mm": null
            },
            "weights": {
                "min_kerbweight_kg": 1615,
                "gross_trainweight_kg": null,
                "unladen_weight_kg": null,
                "payload_weight_kg": null,
                "gross_vehicleweight_kg": 2115,
                "gross_combined_weight_kg": 2115
            },
            "power_source": {
                "power_source_vehicle_type": "ICE",
                "ice_details": {
                    "engine_family": null,
                    "engine_stroke_mm": 92,
                    "valves_per_cylinder": 4,
                    "aspiration": "Turbocharged",
                    "number_cylinders": 4,
                    "engine_location": "Front",
                    "cylinder_arrangement": "Inline",
                    "valve_gear": "DOHC",
                    "ukvd_engine_desc": "M260 E20DEH LA G AMG",
                    "engine_bore_mm": 83,
                    "engine_manufacturer": "Mercedes Cars",
                    "fuel_delivery": null,
                    "power_delivery": "Normal",
                    "engine_capacity_cc": 1991,
                    "engine_badged_size_litres": 2
                },
                "electric_details": null
            },
            "euro_ncap": {
                "ncap_overall_rating": 5,
                "ncap_child_occupant_protection_percentage": 91,
                "ncap_adult_occupant_protection_percentage": 96,
                "ncap_pedestrian_protection_percentage": 91,
                "ncap_safety_assist_percentage": 75
            },
            "emissions": {
                "is_fuel_catalyst": true,
                "co2_gkm": null
            },
            "performance": {
                "torque": {
                    "torque_nm": 400,
                    "torque_lbft": 295.2,
                    "torque_rpm": 4000,
                    "torque_derived_from": null
                },
                "power": {
                    "power_bhp": 301.7,
                    "power_ps": 305.9,
                    "kilowatt": 225,
                    "power_rpm": 5800
                },
                "statistics": {
                    "0to60_mph": null,
                    "0to100_kmph": null,
                    "max_speed_kmh": 250,
                    "top_speed_mph": 155
                }
            },
            "fuel_economy": {
                "nedc_extra_urban_litres_100km": null,
                "nedc_extra_urban_mpg": null,
                "nedc_extra_urban_cold_litres_100km": null,
                "nedc_extra_urban_cold_mpg": null,
                "combined_litres_100km": 8.4,
                "combined_mpg": 33.6
            },
            "sound_levels": {
                "stationary_soundlevel_db": null,
                "stationary_soundlevel_rpm": null,
                "driveby_soundlevel_db": null
            },
            "transmission": {
                "driving_axle": "All Permanent",
                "number_gears": 7,
                "transmission_type": "Automatic",
                "drive_type_desc": "4x4"
            }
        }
    },

Build Data

"build_data": {
        "vin": "WAUZZZ8V7K1028938",
        "make": "AUDI",
        "model": "A3",
        "features": [
            {
                "code": "0A1",
                "value": "2 doors"
            },
            {
                "code": "0AE",
                "value": "Front stabilizer bar"
            },
            {
                "code": "0B2",
                "value": "Wheelbase"
            },
        ],
        "build_date": "2019-03-20"

Refer to Factory Build Data reference material for more information on supported OEMs.

Valuation Predictions

Generate market accurate predictions for vehicles.

Overview

The Valuation API can be used to determine the present retail & trade values, as well as the residual values of new vehicles.

This API requires authentication and an appropriate license attached to it.

To use the API, a Vehicle ID returned from the Vehicle Search API or Vehicle Facet API is required.

How is a valuation provided?

AutoGrab’s Valuation captures the asking prices from the past week for a specific vehicle’s year, make, model, and variant at a given mileage, sourced from private sellers and dealers within a selected state. It excludes government charges but includes GST, assuming the vehicles are in good condition and fitted with standard OEM accessories.

Leveraging advanced machine learning and updated weekly, our pricing integrates active listings and recently delisted data from public marketplaces. AutoGrab emphasises the most recent data to deliver comprehensive valuations that reflect current market trends.

Each estimate includes a confidence score, which indicates AutoGrab’s certainty in the valuation. Two key factors determine this score:

  • The number of vehicles listed in the past 365 days for the specific vehicle type

  • A detailed accuracy analysis of the pricing algorithm for that vehicle type

The confidence score ranges from 0 to 1, with 1 representing the highest confidence level

Example

Request

To retrieve a Vehicle ID, use the Vehicle Search APIs.

Starting with a vehicle ID post it to /v2/valuations/predict

{
    "region": "uk",
    "vehicle_id": "5804870883868672"
    "kms": 30000,
    "condition_score": 2
}

The condition score is optional and can be used to further refine your pricing prediction.

The Catalogue field is optional and will default to 'autograb' and the vehicle ID for performing a valuation. If you have access to Jato catalogue information, 'jato' can be passed as the catalogue and a JATO ID as the vehicle_id. The valuation will then be performed using the JATO information.

Response

{
    "success": true,
    "prediction": {
        "id": "a2955915-9611-40ef-8b98-b827dad76ff4",
        "vehicle_id": "5804870883868672",
        "kms": 57306,
        "price": 20622,
        "score": 0.9239,
        "retail_price": 20622,
        "trade_price": 17122,
        "adjustment": null
    }
}

Pricing ID

The payload returned by price prediction requests will include an ID, which you can use to refer to the pricing request in the future. The /v2/valuations/history/{PRICING_ID method will return the response from a previous pricing request, and you can also use the Pricing ID to track price changes with the Price Changes API, if licenced.

To get a paginated list of all your previous price predictions, you can use the /v2/valuations/history endpoint.

Condition Score

By supplying a condition score, you can manipulate the trade_price returned by the prediction endpoint. The condition score can be between 1 and 5. A condition of 1 being poor condition and a condition of 5 excellent condition.

Supplying any other numbers will return the default trade_price which assumes excellent condition.

If you're building a user interface where you allow the user to choose a condition it is recommended you follow the industry standard in the table below.

Condition
Condition Score

Poor

1

Fair

2

Average

3

Good

4

Excellent

5

Features

Positive Equity

The positive equity feature identifies if the vehicle is in positive equity and the current equity position. To add an equity calculation to the Predict call, use features=equity

Copy

{
    "success": true,
    "prediction": {
        "id": "599aff94-7c79-4b9c-a976-ff39c3892190",
        "vehicle_id": "4825547834130432",
        "kms": 20000,
        "price": 32669,
        "score": 0.8515,
        "retail_price": 32669,
        "trade_price": 27769,
        "adjustment": null
    },
    "equity": {
        "positive_equity": true,
        "equity_position": 15769
    }
}

Valuation Bounds

If you require the upper and lower bounds used to calculate a prediction, you can use features=bounds.

Copy

{
    "success": true,
    "prediction": {
        "id": "e2813b16-1012-41b5-9ea3-3b65675c50fd",
        "vehicle_id": "5804870883868672",
        "kms": 57306,
        "price": 20622,
        "score": 0.9239,
        "retail_price": 20622,
        "trade_price": 17122,
        "adjustment": null
    },
    "bounds": {
        "retail": {
            "lower": 19622,
            "upper": 21872
        },
        "trade": {
            "lower": 16122,
            "upper": 18372
        }
    }
}

Adjustments

Both the Residual Value and Used Value APIs support pricing adjustments. These can be used to retrieve a more accurate price prediction of a vehicle if the provided price is not already accurate enough.

Recommended Retail Price Adjustment

CommentTo adjust the stored Recommended Retail Price you can supply a rrp_adjustment value in the payload which accepts a number — positive or negative.CommentThis is useful when a car is fitted with factory extras, the Price When New can be increased for each of the options to get a better price prediction.Comment

Recommended Retail Price Overwrite

To adjust the stored Recommended Retail Price you can supply a rrp_adjustment value in the payload which accepts a number — positive or negative.

Predicted Retail and Trade Price Adjustments

The Pricing Adjustments API (/v2/valuations/adjustments) allows you to configure fixed or percentage adjustments for specific Vehicle IDs.

Per-Vehicle pricing adjustments will apply to price predictions that you perform using the same API Key and for the same Vehicle ID.

If you set a Retail Price Adjustment for a vehicle, the trade price will also be affected because the trade price is derived from the retail price. If you set an adjustment for both the retail price and the trade price, both adjustments will be applied to the trade price while the retail price is only affected by the retail price adjustment.

When you perform a price prediction, you will receive a summary of the price adjustments that were applied, if any.

Example

Below is an example price prediction payload with predicted trade and retail adjustments applied.

Copy

{
    "success": true,
    "prediction": {
        "id": "d028809e-0ef5-42de-9699-8b71fd1aee65",
        "vehicle_id": "5631424535199744",
        "price": 12347,
        "score": 0.81820,
        "retail_price": 14847,
        "trade_price": 2042.46,
        "adjustment": {
            "vehicle_id": "5631424535199744",
            "enabled": true,
            "retail_adjustment": {
                "type": "fixed",
                "amount": 2500,
                "overridden": false
            },
            "trade_adjustment": {
                "type": "percentage",
                "amount": 0.2,
                "overridden": false
            },
            "overrides": []
        }
    }
}

Predicted Retail and Trade Price Overrides

In addition to price adjustments, you also have the option to override retail and trade prices for specific vehicle IDs where the odometer reading falls within a set range. Price overrides are configured using the Price Override API at /v2/valuations/adjustments/{VEHICLE_ID}/overrides.

If you have configured a retail or trade price override that applies to a price prediction, the overridden price will be returned instead of the AutoGrab valuation. This will bypass any price adjustments that you may have configured, and the response payload will indicate this with the {overridden: true} flag.

Retail price overrides will impact the predicted trade price in the same way that retail price adjustments impact the trade-price - unless you have configured a trade price override. Suppose you have both a trade override and a retail override. In that case, the two overridden prices will be returned without pre-processing (except for calculating condition scores, if applicable - see below).

Example

Below is an example price prediction payload where price adjustments and price overrides have been configured. In this example, the retail price adjustment has been overridden by the retail price override, and the trade price adjustment has been applied.

Copy

{
    "success": true,
    "prediction": {
        "id": "faa847f1-d428-46e1-b2d6-b47a00173d6e",
        "vehicle_id": "5631424535199744",
        "price": 11697,
        "score": 0.81820,
        "retail_price": 12000,
        "trade_price": 1700,
        "adjustment": {
            "vehicle_id": "5631424535199744",
            "retail_adjustment": {
                "type": "fixed",
                "amount": 2500,
                "overridden": true
            },
            "trade_adjustment": {
                "type": "percentage",
                "amount": 0.2,
                "overridden": false
            },
            "overrides": [
                {
                    "id": "1ef42b79-c580-4055-a39b-e5257f81d0d9",
                    "min_kms": 80000,
                    "max_kms": 90000,
                    "trade_price": null,
                    "retail_price": 12000
                }
            ]
        }
    }
}

VIN Search

Get vehicle details from a VIN.

The Vehicle VIN API allows you to search for vehicles by VIN. The request requires only a region, VIN, and API key. It will either return a matching vehicle with possible option packs or a null.

Example Response

Features

You can request more data than the standard payload by leveraging the features described below.

Ensure your commercial agreement has these features enabled if you require them.

Extended Data

This feature will return structured descriptive data from the registration authority. Use features=additional_upstream_data to receive this payload.

Build Data

Get a vehicle by its registration number

get

Get a vehicle by its registration number

Authorizations
Path parameters
plate_numberstringRequired

Plate number of the registered vehicle

Query parameters
statestringOptional

State is used in the AU region to narrow down a numberplate

prefer_more_resultsbooleanOptional

If enabled, a larger selection of vehicles may be returned and a manual selection would be required to select the correct vehicle. This is disabled by default in favor of a system which will infer the correct vehicle and order the results by likelihood of behind correct.

featuresstringOptional

Comma separated list of additional registration lookup data codes, if using (e.g. additional_upstream_data)

regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
404
Not Found
application/json
get
GET /v2/vehicles/registrations/{plate_number} HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "vehicle": {
    "id": "text",
    "region": "au",
    "title": "text",
    "year": 1,
    "make": "text",
    "model": "text",
    "badge": "text",
    "series": "text",
    "body_type": "text",
    "body_config": "text",
    "transmission": "text",
    "wheelbase": "text",
    "fuel": "text",
    "engine": "text",
    "drive": "text",
    "num_doors": 1
  },
  "upstream_vehicle": "text",
  "confidence": "standard",
  "colour": "text",
  "vin": "text",
  "additional_vehicles": [
    {
      "id": "text",
      "region": "au",
      "title": "text",
      "year": 1,
      "make": "text",
      "model": "text",
      "badge": "text",
      "series": "text",
      "body_type": "text",
      "body_config": "text",
      "transmission": "text",
      "wheelbase": "text",
      "fuel": "text",
      "engine": "text",
      "drive": "text",
      "num_doors": 1
    }
  ],
  "extended_data": null,
  "registration_status": {
    "expiry_date": "text",
    "status": "text"
  },
  "vehicle_age": {
    "compliance_plate": "text",
    "year_of_manufacture": 1
  },
  "writeoff_info": {},
  "build_data": {
    "vin": "text",
    "build_date": "text",
    "make": "text",
    "model": "text",
    "features": [
      {
        "code": "text",
        "value": "text"
      }
    ]
  },
  "odo_history": [
    {
      "read_date": "text",
      "odometer": 1
    }
  ],
  "odo_prediction": {
    "prediction": 1,
    "days_since_read": 1,
    "avg_yearly": 1,
    "avg_daily": 1,
    "ag_market_avg": 1
  },
  "vsrr": {
    "fuel_economy": {
      "star_rating": 1,
      "consumption": 1
    },
    "emissions": {
      "co2": 1,
      "star_rating": 1
    },
    "pollutants": {
      "star_rating": 1,
      "test_regime": "text"
    },
    "safety": {
      "driver": {
        "star_rating": 1,
        "test_regime": "text"
      }
    }
  }
}

Value a vehicle using an AutoGrab ID

post

Value a vehicle using an AutoGrab ID

Authorizations
Body
regionstring · enumOptionalPossible values:
vehicle_idstringRequired

The AutoGrab Vehicle ID which corresponds to the vehicle that should be valued

kmsnumberOptional

The odometer reading of the vehicle. If no reading is provided, the average value will be subsituted

rrp_overwritenumberOptional
rrp_adjustmentnumberOptional
condition_scorenumberOptional
regostringOptional

The registration plate of the vehicle, for reference purposes only

statestringOptional

The registration state of the vehicle, if applicable

vinstringOptional

The VIN of the vehicle, for reference purposes only

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
post
POST /v2/valuations/predict HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 142

{
  "region": "au",
  "vehicle_id": "text",
  "kms": 1,
  "rrp_overwrite": 1,
  "rrp_adjustment": 1,
  "condition_score": 1,
  "rego": "text",
  "state": "text",
  "vin": "text"
}
{
  "success": true,
  "prediction": {
    "id": "text",
    "vehicle_id": "text",
    "created_at": "text",
    "kms": 1,
    "price": 1,
    "score": 1,
    "retail_price": 1,
    "trade_price": 1,
    "adjustment": {
      "vehicle_id": "text",
      "type": "account",
      "enabled": true,
      "trade_adjustment": {
        "amount": 1,
        "type": "fixed"
      },
      "retail_adjustment": {
        "amount": 1,
        "type": "fixed"
      },
      "overrides": [
        {
          "id": "text",
          "min_kms": 1,
          "max_kms": 1,
          "trade_price": 1,
          "retail_price": 1
        }
      ]
    }
  },
  "bounds": {
    "retail": {
      "lower": 1,
      "upper": 1
    },
    "trade": {
      "lower": 1,
      "upper": 1
    }
  },
  "max_offer": {
    "reconditioning": 1,
    "profit_margin": 1,
    "lot": 1,
    "transport": 1,
    "admin": 1,
    "price": 1
  }
}

Get a vehicle by its VIN

get

Get a vehicle by its VIN

Authorizations
Path parameters
vinstringRequired

Plate number of the registered vehicle

Query parameters
featuresstringOptional

Comma separated list of additional registration lookup data codes, if using (e.g. additional_upstream_data)

prefer_more_resultsbooleanOptional

If enabled, a larger selection of vehicles may be returned and a manual selection would be required to select the correct vehicle. This is disabled by default in favor of a system which will infer the correct vehicle and order the results by likelihood of behind correct.

regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
get
{
    "success": true,
    "vehicle": {
        "id": "1122175340772663",
        "region": "uk",
        "title": "2019 Jeep Renegade Limited MY19 1.6 120hp E6d MT FWD LIMITED",
        "year": "2019",
        "make": "Jeep",
        "model": "Renegade",
        "badge": "Limited",
        "series": null,
        "model_year": "MY19",
        "release_month": null,
        "release_year": 2019,
        "body_type": "SUV",
        "body_config": null,
        "transmission": "Manual",
        "transmission_type": "Manual",
        "wheelbase": null,
        "wheelbase_type": null,
        "fuel": "Diesel",
        "fuel_type": "Diesel",
        "engine": "Piston",
        "engine_type": "Piston",
        "drive": "FWD",
        "drive_type": "Front Wheel Drive",
        "num_doors": 5,
        "num_seats": 5,
        "num_gears": 6,
        "num_cylinders": 4,
        "capacity_cc": 1598,
        "power_kw": 88,
        "torque_nm": null,
        "range": null,
        "options": []
    },
    "upstream_vehicle": "2019 Jeep Renegade Limited Edition MultiJet II BU Diesel 5 dr 5 seat 4 cyl 6 speed SUV Manual 1598cc 88.4kw",
    "confidence": "standard",
    "additional_vehicles": []
}
"additional_upstream_data": {
        "vehicle_details": {
            "vehicle_identification": {
                "ukvd_id": "V-JZTYRS",
                "ukvd_uvc": "M-NPGXL",
                "vehicle_registration_mark": "KW73NKE",
                "vehicle_identification_number": "W1K5J5BB4PN369431",
                "dvla_manufacturer_desc": "MERCEDES-BENZ",
                "dvla_model_desc": "AMG CLA 35 PREMIUM 4MATIC AUTO",
                "dvla_wheelplan": "2 AXLE RIGID BODY",
                "registration_date": "2023-11-20",
                "first_registration_date": "2023-11-20",
                "used_before_first_registration": false,
                "manufactured_year": 2023,
                "v5c_qty": 2,
                "date_v5c_issued": "2023-11-20",
                "engine_number": "26092030493649",
                "prior_ni_vrm": "",
                "dvla_body_desc": "COUPE",
                "dvla_fuel_desc": "PETROL"
            },
            "vehicle_status_details": {
                "is_non_eu_import": false,
                "is_imported": false,
                "certificate_of_destruction_issued": false,
                "is_exported": false,
                "exported_date": null,
                "is_scrapped": false,
                "scrapped_date": null
            },
            "vehicle_excise_duty_details": {
                "co2_gkm": 191,
                "dvla_co2_band": null,
                "12_month_rfl_y1": 1650,
                "6_month_rfl_y2_to_y6_premium": 330,
                "12_month_rfl_y2_to_y6_premium": 600,
                "6_month_rfl_y2_to_y6": 104.5,
                "12_month_rfl_y2_to_y6": 190
            },
            "colour_details": {
                "colour": "WHITE",
                "colour_changes_qty": 0,
                "original_colour": "WHITE",
                "last_colour": null,
                "date_of_last_colour_change": null
            },
            "keeper_change_list": [
                {
                    "number_previous_keepers": 1,
                    "date_of_last_keeper_change": "2024-06-08"
                }
            ],
            "plate_change_list": []
        },
        "model_details": {
            "ukvd_variant_code": 1,
            "model_data": {
                "manufacturer_desc": "Mercedes-AMG",
                "model_range_desc": "CLA",
                "model_desc": "AMG CLA 35 Premium 4Matic Auto",
                "model_variant": null,
                "ukvd_series_desc": "C118",
                "ukvd_mark": null,
                "model_start_date": "2022-07-22",
                "model_end_date": null,
                "emission_class": "6d",
                "country_of_origin": "Germany",
                "ukvd_fuel_type_desc": "Petrol",
                "cab_type_desc": null,
                "type_approval_category": "M1",
                "market_sector_code": null,
                "vehicle_type": "Car",
                "vehicle_taxation_class": "Car"
            },
            "body_details": {
                "ukvd_body_shape": null,
                "ukvd_body_type_desc": "Coupe",
                "fuel_capacity_litres": 51,
                "number_axles": 2,
                "number_doors": 4,
                "number_seats": 5,
                "payload_volume_square_metres": null,
                "wheelbase_type_desc": "Short Wheelbase",
                "platform_desc": null,
                "is_platform_shared": null
            },
            "dimensions": {
                "vehicle_height_mm": 1404,
                "vehicle_length_mm": 4695,
                "vehicle_width_mm": 1834,
                "vehicle_wheelbase_mm": null,
                "load_length_mm": null
            },
            "weights": {
                "min_kerbweight_kg": 1615,
                "gross_trainweight_kg": null,
                "unladen_weight_kg": null,
                "payload_weight_kg": null,
                "gross_vehicleweight_kg": 2115,
                "gross_combined_weight_kg": 2115
            },
            "power_source": {
                "power_source_vehicle_type": "ICE",
                "ice_details": {
                    "engine_family": null,
                    "engine_stroke_mm": 92,
                    "valves_per_cylinder": 4,
                    "aspiration": "Turbocharged",
                    "number_cylinders": 4,
                    "engine_location": "Front",
                    "cylinder_arrangement": "Inline",
                    "valve_gear": "DOHC",
                    "ukvd_engine_desc": "M260 E20DEH LA G AMG",
                    "engine_bore_mm": 83,
                    "engine_manufacturer": "Mercedes Cars",
                    "fuel_delivery": null,
                    "power_delivery": "Normal",
                    "engine_capacity_cc": 1991,
                    "engine_badged_size_litres": 2
                },
                "electric_details": null
            },
            "euro_ncap": {
                "ncap_overall_rating": 5,
                "ncap_child_occupant_protection_percentage": 91,
                "ncap_adult_occupant_protection_percentage": 96,
                "ncap_pedestrian_protection_percentage": 91,
                "ncap_safety_assist_percentage": 75
            },
            "emissions": {
                "is_fuel_catalyst": true,
                "co2_gkm": null
            },
            "performance": {
                "torque": {
                    "torque_nm": 400,
                    "torque_lbft": 295.2,
                    "torque_rpm": 4000,
                    "torque_derived_from": null
                },
                "power": {
                    "power_bhp": 301.7,
                    "power_ps": 305.9,
                    "kilowatt": 225,
                    "power_rpm": 5800
                },
                "statistics": {
                    "0to60_mph": null,
                    "0to100_kmph": null,
                    "max_speed_kmh": 250,
                    "top_speed_mph": 155
                }
            },
            "fuel_economy": {
                "nedc_extra_urban_litres_100km": null,
                "nedc_extra_urban_mpg": null,
                "nedc_extra_urban_cold_litres_100km": null,
                "nedc_extra_urban_cold_mpg": null,
                "combined_litres_100km": 8.4,
                "combined_mpg": 33.6
            },
            "sound_levels": {
                "stationary_soundlevel_db": null,
                "stationary_soundlevel_rpm": null,
                "driveby_soundlevel_db": null
            },
            "transmission": {
                "driving_axle": "All Permanent",
                "number_gears": 7,
                "transmission_type": "Automatic",
                "drive_type_desc": "4x4"
            }
        }
    },
"build_data": {
        "vin": "WAUZZZ8V7K1028938",
        "make": "AUDI",
        "model": "A3",
        "features": [
            {
                "code": "0A1",
                "value": "2 doors"
            },
            {
                "code": "0AE",
                "value": "Front stabilizer bar"
            },
            {
                "code": "0B2",
                "value": "Wheelbase"
            },
        ],
        "build_date": "2019-03-20"
GET /v2/vehicles/vins/{vin} HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "vehicle": {
    "id": "text",
    "region": "au",
    "title": "text",
    "year": 1,
    "make": "text",
    "model": "text",
    "badge": "text",
    "series": "text",
    "body_type": "text",
    "body_config": "text",
    "transmission": "text",
    "wheelbase": "text",
    "fuel": "text",
    "engine": "text",
    "drive": "text",
    "num_doors": 1
  },
  "upstream_vehicle": "text",
  "confidence": "standard",
  "colour": "text",
  "vin": "text",
  "additional_vehicles": [
    {
      "id": "text",
      "region": "au",
      "title": "text",
      "year": 1,
      "make": "text",
      "model": "text",
      "badge": "text",
      "series": "text",
      "body_type": "text",
      "body_config": "text",
      "transmission": "text",
      "wheelbase": "text",
      "fuel": "text",
      "engine": "text",
      "drive": "text",
      "num_doors": 1
    }
  ],
  "extended_data": null,
  "registration_status": {
    "expiry_date": "text",
    "status": "text"
  },
  "vehicle_age": {
    "compliance_plate": "text",
    "year_of_manufacture": 1
  },
  "writeoff_info": {},
  "build_data": {
    "vin": "text",
    "build_date": "text",
    "make": "text",
    "model": "text",
    "features": [
      {
        "code": "text",
        "value": "text"
      }
    ]
  },
  "odo_history": [
    {
      "read_date": "text",
      "odometer": 1
    }
  ],
  "odo_prediction": {
    "prediction": 1,
    "days_since_read": 1,
    "avg_yearly": 1,
    "avg_daily": 1,
    "ag_market_avg": 1
  },
  "vsrr": {
    "fuel_economy": {
      "star_rating": 1,
      "consumption": 1
    },
    "emissions": {
      "co2": 1,
      "star_rating": 1
    },
    "pollutants": {
      "star_rating": 1,
      "test_regime": "text"
    },
    "safety": {
      "driver": {
        "star_rating": 1,
        "test_regime": "text"
      }
    }
  }
}

Plain-text Search

Get results with a text string search

The Vehicle Search API allows you to search for matching vehicles by plain-text input. The API will return an array of vehicles and the confidence score in a match for that given vehicle.

The request requires a region, search string & API key. The default page length is 10, however, you can adjust this based on your requirements.

Example

/v2/vehicles?region=uk&search=2019 Volkswagen Polo S

Example Payload

{
    "success": true,
    "vehicles": [
        {
            "id": "4678970977026048",
            "legacy_id": "4678970977026048",
            "badge": "GTI",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo GTI AW Auto MY19",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Automatic",
            "wheelbase_type": null,
            "capacity_cc": 1984,
            "power_kw": 147,
            "torque_nm": 320,
            "range": 784,
            "num_cylinders": 4,
            "num_doors": 5,
            "num_gears": 6,
            "num_seats": 5,
            "model_year": "MY19",
            "release_month": 8,
            "release_year": 2018
        },
        {
            "id": "4960445953736704",
            "legacy_id": "4960445953736704",
            "badge": "70TSI Trendline",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo 70TSI Trendline AW Manual MY19",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Manual",
            "wheelbase_type": null,
            "capacity_cc": 999,
            "power_kw": 70,
            "torque_nm": 175,
            "range": 1000,
            "num_cylinders": 3,
            "num_doors": 5,
            "num_gears": 5,
            "num_seats": 5,
            "model_year": "MY19",
            "release_month": 8,
            "release_year": 2018
        },
        {
            "id": "5241920930447360",
            "legacy_id": "5241920930447360",
            "badge": "85TSI Comfortline",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo 85TSI Comfortline AW Manual MY19",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Manual",
            "wheelbase_type": null,
            "capacity_cc": 999,
            "power_kw": 85,
            "torque_nm": 200,
            "range": 909,
            "num_cylinders": 3,
            "num_doors": 5,
            "num_gears": 6,
            "num_seats": 5,
            "model_year": "MY19",
            "release_month": 8,
            "release_year": 2018
        },
        {
            "id": "5804870883868672",
            "legacy_id": "5804870883868672",
            "badge": "85TSI Comfortline",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo 85TSI Comfortline AW Auto MY19",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Automatic",
            "wheelbase_type": null,
            "capacity_cc": 999,
            "power_kw": 85,
            "torque_nm": 200,
            "range": 909,
            "num_cylinders": 3,
            "num_doors": 5,
            "num_gears": 7,
            "num_seats": 5,
            "model_year": "MY19",
            "release_month": 8,
            "release_year": 2018
        },
        {
            "id": "6367820837289984",
            "legacy_id": "6367820837289984",
            "badge": "70TSI Trendline",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo 70TSI Trendline AW Auto MY19",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Automatic",
            "wheelbase_type": null,
            "capacity_cc": 999,
            "power_kw": 70,
            "torque_nm": 175,
            "range": 930,
            "num_cylinders": 3,
            "num_doors": 5,
            "num_gears": 7,
            "num_seats": 5,
            "model_year": "MY19",
            "release_month": 8,
            "release_year": 2018
        },
        {
            "id": "4936256697925632",
            "legacy_id": "4936256697925632",
            "badge": "85TSI Comfortline",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo 85TSI Comfortline AW Auto MY20",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Automatic",
            "wheelbase_type": null,
            "capacity_cc": 999,
            "power_kw": 85,
            "torque_nm": 200,
            "range": 889,
            "num_cylinders": 3,
            "num_doors": 5,
            "num_gears": 7,
            "num_seats": 5,
            "model_year": "MY20",
            "release_month": 7,
            "release_year": 2019
        },
        {
            "id": "5217731674636288",
            "legacy_id": "5217731674636288",
            "badge": "85TSI Style",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo 85TSI Style AW Auto MY20",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Automatic",
            "wheelbase_type": null,
            "capacity_cc": 999,
            "power_kw": 85,
            "torque_nm": 200,
            "range": 889,
            "num_cylinders": 3,
            "num_doors": 5,
            "num_gears": 7,
            "num_seats": 5,
            "model_year": "MY20",
            "release_month": 7,
            "release_year": 2019
        },
        {
            "id": "5499206651346944",
            "legacy_id": "5499206651346944",
            "badge": "70TSI Trendline",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo 70TSI Trendline AW Auto MY20",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Automatic",
            "wheelbase_type": null,
            "capacity_cc": 999,
            "power_kw": 70,
            "torque_nm": 175,
            "range": 909,
            "num_cylinders": 3,
            "num_doors": 5,
            "num_gears": 7,
            "num_seats": 5,
            "model_year": "MY20",
            "release_month": 7,
            "release_year": 2019
        },
        {
            "id": "6062156604768256",
            "legacy_id": "6062156604768256",
            "badge": "85TSI Comfortline",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo 85TSI Comfortline AW Manual MY20",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Manual",
            "wheelbase_type": null,
            "capacity_cc": 999,
            "power_kw": 85,
            "torque_nm": 200,
            "range": 909,
            "num_cylinders": 3,
            "num_doors": 5,
            "num_gears": 6,
            "num_seats": 5,
            "model_year": "MY20",
            "release_month": 7,
            "release_year": 2019
        },
        {
            "id": "6343631581478912",
            "legacy_id": "6343631581478912",
            "badge": "GTI",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo GTI AW Auto MY20",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Automatic",
            "wheelbase_type": null,
            "capacity_cc": 1984,
            "power_kw": 147,
            "torque_nm": 320,
            "range": 784,
            "num_cylinders": 4,
            "num_doors": 5,
            "num_gears": 6,
            "num_seats": 5,
            "model_year": "MY20",
            "release_month": 7,
            "release_year": 2019
        },
        {
            "id": "6625106558189568",
            "legacy_id": "6625106558189568",
            "badge": "70TSI Trendline",
            "make": "Volkswagen",
            "model": "Polo",
            "series": "AW",
            "title": "2019 Volkswagen Polo 70TSI Trendline AW Manual MY20",
            "year": "2019",
            "body_config_type": null,
            "body_type": "Hatchback",
            "drive_type": "Front Wheel Drive",
            "engine_type": "Piston",
            "fuel_type": "Petrol",
            "transmission_type": "Manual",
            "wheelbase_type": null,
            "capacity_cc": 999,
            "power_kw": 70,
            "torque_nm": 175,
            "range": 976,
            "num_cylinders": 3,
            "num_doors": 5,
            "num_gears": 5,
            "num_seats": 5,
            "model_year": "MY20",
            "release_month": 7,
            "release_year": 2019
        }
    ],
    "total": 11,
    "confidence": "standard"
}

Search for a vehicle with a query string

get

Search for a vehicle with a query string

Authorizations
Query parameters
searchstringRequired

The query by which to search the cars

countnumber · max: 100Optional

The number of vehicles to be returned

prefer_more_resultsbooleanOptional

If enabled, a larger selection of vehicles may be returned and a manual selection would be required to select the correct vehicle. This is disabled by default in favor of a system which will infer the correct vehicle and order the results by likelihood of behind correct.

regionstring · enumOptional

The region to perform this request in

Possible values:
reference_idstringOptional

An optional reference id which will be stored against usage records if supplied

Responses
200
Success
application/json
Responseall of
400
Bad Request
application/json
401
Unauthorized
application/json
get
GET /v2/vehicles/ HTTP/1.1
Host: api.autograb.com.au
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "vehicles": [
    {
      "id": "text",
      "title": "text",
      "year": 1,
      "make": "text",
      "model": "text",
      "badge": "text",
      "series": "text",
      "model_year": "text",
      "release_month": 1,
      "release_year": 1,
      "body_type": "text",
      "body_config": "text",
      "transmission": "text",
      "transmission_type": "text",
      "wheelbase": "text",
      "wheelbase_type": "text",
      "fuel": "text",
      "fuel_type": "text",
      "engine": "text",
      "engine_type": "text",
      "drive": "text",
      "drive_type": "text",
      "num_doors": 1,
      "num_seats": 1,
      "num_gears": 1,
      "num_cylinders": 1,
      "capacity_cc": 1,
      "power_kw": 1,
      "torque_nm": 1,
      "range": 1
    }
  ],
  "total": 1,
  "confidence": "standard"
}

Webhooks

Receive notifications from AutoGrab system on events to power your own experiences.

The Webhooks API allows you to configure endpoints which will receive PUSH events from AutoGrab.

This API requires authentication and an appropriate license attached to it.

Webhook Events

There are several types of events that you can listen to using the Webhooks API. The names and descriptions of each of these events are included below.

You can find example payloads for each of these events at the bottom of this page.

Name
Definition

ping

If you use the POST /v2/webhooks/{WEBHOOK_ID}/ping endpoint, your webhook will be called with the ping event to test the connection.

recapture_new

One of your Recapture customers was spotted on a used car listing website.

recapture_price_change

The listing price on one of your active Recapture customers changed.

recapture_delist

One of your Recapture customers removed their vehicle listing - either to cancel the sale or because it has been sold.

valuation_change

One of your previous price predictions has changed by (at least) the threshold defined in your valuation changes config (/valuations/changes)

Currently, only the ping, recapture_new and price_change events are in use. You can still configure your webhooks to listen to the other events to enable these events once they are supported.

If you need immediate access to Recapture price change and delist events for your use case, please reach out to us at [email protected]

Create a new Webhook

To set up a webhook event subscriber, you'll first need to create the webhook using the webhook API.

You must provide a few options in the request body:

  • name: A name for the webhook. This is used for reference only.

  • region: The region that you want to subscribe to events in (uk)

  • format: The format that you want the PUSH events to be sent in (Currently, only json is supported)

  • endpoint: The HTTP endpoint that you want the webhook to push to. You can include URL parameters in this to facilitate token-based auth.

Example

To perform an example request:

curl -XPOST -H 'ApiKey: {API_KEY}' \
    -H "Content-type: application/json" \
    -d '{
        "region": "uk",
        "name": "Sandbox Webhook",
        "format": "json",
        "endpoint": "https://sandbox.webhook.new"
    }' 'https://api.autograb.com.au/v2/webhooks'

An example response payload is:

{
    "success": true,
    "webhook": {
        "id": "a9fb47f6-3d1d-4945-9f4d-f45b12a63797",
        "created_at": "2022-07-15T03:53:59.872Z",
        "name": "Sandbox Webhook",
        "format": "json",
        "events": ["recapture_new"],
        "endpoint": "https://example.com/push"
    }
}

You can explore this request further in the API Playground.

Get a list of your webhooks

A GET request to /v2/webhooks?region=uk will return a list of all your configured webhooks in the given region.

Example

To perform an example request:

curl "https://api.autograb.com.au/v2/webhooks?region=uk" \
     -H 'ApiKey: {API_KEY}'

An example response payload is:

{
  "success": true,
  "webhooks": [
    {
      "id": "9a275d4f-5476-4d86-b691-f0f37d985909",
      "created_at": "2022-07-15T03:54:07.431Z",
      "name": "Sandbox Webhook",
      "format": "json",
      "events": ["recapture_new", "recapture_delist"],
      "endpoint": "https://sandbox.example.com/push"
    },
    {
      "id": "a9fb47f6-3d1d-4945-9f4d-f45b12a63797",
      "created_at": "2022-07-15T03:53:59.872Z",
      "name": "Production Webhook",
      "format": "json",
      "events": ["recapture_new"],
      "endpoint": "https://example.com/push"
    }
  ]
}

You can explore this request further in the API Playground.

Get the configuration of a single webhook

A GET request to /v2/webhooks/{WEBHOOK_ID}?region={REGION} will return the configuration of the webhook with the corresponding ID.

The payloads are the same as the /v2/webhooks route but only a single webhook is returned instead of an array.

If you try to access a webhook in a different region to the one specified in the request, you will receive an Invalid Region error. Additionally, accessing a webhook that your account does not have permission to view will return a You don't have permission to access that webhook error.

If you attempt to view a webhook that doesn't exist, you will receive an Invalid Webhook ID error.

Example

To perform an example request:

curl "https://api.autograb.com.au/v2/webhooks/{WEBHOOK_ID}?region=uk" \
     -H 'ApiKey: {API_KEY}'

An example response payload is:

{
    "success": true,
    "webhook": {
        "id": "a9fb47f6-3d1d-4945-9f4d-f45b12a63797",
        "created_at": "2022-07-15T03:53:59.872Z",
        "name": "Sandbox Webhook",
        "format": "json",
        "events": ["recapture_price_change"],
        "endpoint": "https://example.com/push"
    }
}

You can explore this request further in the API Playground.

Modify the configuration of a single webhook

A PATCH request to /v2/webhooks/{WEBHOOK_ID}?region={REGION} allows you to modify any of the properties of the corresponding Webhook.

Only the fields specified in the request body will be modified, and passing a blank ("") value will remove the property from the webhook where applicable.

The response includes the updated webhook, as well as a map of every property that changed.

The same errors as the above (GET /v2/webhooks/${WEBHOOK_ID}) request apply, and a Request validation failed error may also be thrown if you provide any invalid Webhook Event names. Refer to the top of this page for a list of Webhook Events and their descriptions.

Example

To perform an example request:

curl -XPATCH -H 'ApiKey: {API_KEY}' \
    -H "Content-type: application/json" -d '{
        "name": "Updated Sandbox Webhook",
        "endpoint": "https://sandbox.example.com/push",
        "events": ["recapture_new"]
    }' 'https://api.autograb.com.au/v2/webhooks/{WEBHOOK_ID}?region=uk'

An example response payload is:

{
    "success": true,
    "webhook": {
        "id": "a9fb47f6-3d1d-4945-9f4d-f45b12a63797",
        "created_at": "2022-07-15T03:53:59.872Z",
        "name": "Updated Sandbox Webhook",
        "format": "json",
        "events": ["recapture_new"],
        "endpoint": "https://example.com/push"
    },
    "updates": {
        "name": "Updated Sandbox Webhook",
        "endpoint": "https://sandbox.example.com/push",
        "events": ["recapture_new"]
    }
}

You can explore this request further in the API Playground.

Delete a webhook

A DELETE request to /v2/webhooks/{WEBHOOK_ID}?region={REGION} will permenantly delete the webhook.

The response payload includes the configuration of the deleted webhook, as seen in the examples below.

You may receive a small number of additional messages on your webhook's endpoint after deleting the webhook due to queued messages being sent through, but no new messages will be sent to your webhook after it has been deleted, and there is no way to recover the webhook without re-creating it.

Example

To perform an example request:

curl -XDELETE "https://api.autograb.com.au/v2/webhooks/{WEBHOOK_ID}?region=au" \
     -H 'ApiKey: {API_KEY}'

An example response payload is:

{
    "success": true,
    "webhook": {
        "id": "a9fb47f6-3d1d-4945-9f4d-f45b12a63797",
        "created_at": "2022-07-15T03:53:59.872Z",
        "name": "Sandbox Webhook",
        "format": "json",
        "events": ["recapture_price_change"],
        "endpoint": "https://example.com/push"
    }
}

You can explore this request further in the API Playground.

Ping a webhook

A POST request to /v2/webhooks/{WEBHOOK_ID}/ping?region={REGION} will send a ping event to your webhook with an example payload.

You can't explicitly subscribe to ping events, as it is a special event type that is only sent when requested using this endpoint.

Example

To perform an example request:

curl -XPOST "https://api.autograb.com.au/v2/webhooks/{WEBHOOK_ID}/ping?region=au" \
     -H 'ApiKey: {API_KEY}'

An example response payload is:

{
    "success": true,
    "ping": {
        "webhook_id": "a9fb47f6-3d1d-4945-9f4d-f45b12a63797",
        "at": "2022-07-15T03:53:59.872Z",
        "format": "json",
        "endpoint": "https://example.com/push",
        "response_time_ms": 83,
        "response_status": 200
    }
}

You can explore this request further in the API Playground.

Webhook Payloads

Example payloads for the webhook events that are currently in use are included below.

ping

{
    // The Webhook Event type (required)
    "event": "ping",
    // The webhook event payload (required)
    "data": {
        "webhook_id": "a9fb47f6-3d1d-4945-9f4d-f45b12a63797",
        "at": "2022-09-03T00:37:57.095Z"
    }
}

recapture_new

{
    // The Webhook Event type (required)
    "event": "recapture_new",
    // The Webhook Event payload (required)
    "data": {
        // The Recapture record which has been seen online
        "customer": {
            // The internal ID of the Recapture client (required)
            "id": "05df2f33-1d03-404c-b0c2-dfbecaa65fff", // Required
            // The ISO timestamp when the event took place (required)
            "last_updated": "2022-09-03T00:37:57.095Z",
            // The registration plate that you were tracking (nullable)
            "rego": "BMT038",
            // The VIN uploaded for the Recapture customer (nullable)
            "vin": null,
            // The name uploaded for the Recapture Customer (nullable)
            "client_name": "Raph",
            // The mobiule number uploaded for the Recapture Customer (nullable)
            "mobile_number": "+61 123 456 789",
            // The ISO formatted sale date uploaded alongside the customer record, if applicable (nullable)
            "sale_date": "2022-03-02T00:00:00.000Z",
            // The ISO formatted expiry date for the Recapture customer record, if applicable (nullable)
            "expiry_date": "2022-11-20T00:00:00.000Z",
            // The vehicle title, determined by a registration or listing lookup (nullable)
            "vehicle_title": "2019 Volkswagen Polo 85TSI Comfortline",
            // Any additional data that was uploaded alongside the customer record (required)
            "additional_fields": {
                "notes": "Three free services included in package"
            },
            // An array including details for each time one of the customer's vehicles was spotted online (required)
            "sightings": [
                {
                    // The date when the vehicle was spotted online (required)
                    "at": "2022-09-03T00:37:57.095Z", 
                    // The AutoGrab Lead ID that includes the listing where the vehicle was spotted online (required)
                    "lead_id": "au_volkswagen_bmt038",
                    // The URL where the vehicle was listed online (required)
                    "listing_url": "https://www.carsales.com.au/cars/details/2019-volkswagen-polo-85tsi-comfortline-aw-auto-my19/OAG-AD-20356677",
                    // The title of the listing (required)
                    "listing_title": "2019 Volkswagen Polo 85TSI Comfortline AW Auto MY19",
                    // The price that the vehicle was listed for at the time of capture (nullable)
                    "listing_price": 26890,
                }
            ]
        }
    }
}

valuation_change

{
    // The Webhook Event type (required)
    "event": "valuation_change",
    // The webhook event payload (required)
    "data": {
        // The pricing record which has changed in value
        "pricing_record": {
            // The unique Pricing Record ID (required)
            "id": "a9fb47f6-3d1d-4945-9f4d-f45b12a63797",
            // The AutoGrab Vehicle ID associated with the pricing record (required)
            "vehicle_id": "5478860653068288",
            // The ISO timestamp when the pricing record was first created (required)
            "created_at": "2022-08-20T07:20:32.412Z",
            // The registration plate associated with the pricing record (nullable)
            "rego": "ZXX678",
            // The VIN associated with the pricing record (nullable)
            "vin": null,
            // The odometer input for the pricing record (required)
            "kms": 32000,
            // The current price prediction for the given vehicle at the kilometers entered (required)
            "price": 36782,
            // The current predicted retail price (required)
            "retail_price": 36782,
            // The current predicted trade price (required)
            "trade_price": 32100,
            // The adjustments and overrides that are currently applied to the pricing record (nullable)
            // Matches the adjustment schema from the `/v2/valuations/predict` endpoint
            "adjustment": null,
            // An array of all the recorded valuation changes that this pricing record has had (required)
            "changes": [
                {
                    // The unique change ID (required)
                    "id": "ba4b3912-ae25-44c1-8a66-36ca68fac859",
                    // The change type (valuation or configuration) (required)
                    // A valuation change implies that the market has shifted, 
                    // whereas a configuration change is simply a result of your 
                    // adjustments/overrides configuration changing
                    "type": "valuation",
                    // The ISO timestamp when the change occurred (required)
                    "at": "2022-09-03T01:03:55.382Z",
                    // The new price (required)
                    "new_price": 36782,
                    // The new retail price (required)
                    "new_retail_price": 36782,
                    // The new trade price (required)
                    "new_trade_price": 32100,
                    // The old price (required)
                    "old_price": 38520,
                    // The old retail price (required)
                    "old_retail_price": 38520,
                    // The old trade price (required)
                    "old_trade_price": 34200
                },
                {
                    // Any previous changes to the pricing record will also be
                    // included here, following the same schema as above
                    "id": "46610b56-f3c7-4744-8adf-021c0aba1cc4",
                    "type": "configuration",
                    "at": "2022-09-01T03:12:32.524Z",
                    "new_price": 38520,
                    "new_retail_price": 38520,
                    "new_trade_price": 34200,
                    "old_price": 38520,
                    "old_retail_price": 37520,
                    "old_trade_price": 33900 
                }
            ]
        },
        // This is a copy of the specific valuation change that caused the webhook to trigger (required)
        // in case many changes occur in a short timespan, this is the source of truth for the
        // exact change that triggered the event.
        "change": {
            "id": "ba4b3912-ae25-44c1-8a66-36ca68fac859",
            "type": "valuation",
            "at": "2022-09-03T01:03:55.382Z",
            "new_price": 36782,
            "new_retail_price": 36782,
            "new_trade_price": 32100,
            "old_price": 38520,
            "old_retail_price": 38520,
            "old_trade_price": 34200
        }
    }
}

Generate a CarAnalysis report

post

Generate a CarAnalysis report

Authorizations
Query parameters
regionenum · enumOptional

The region to perform this request in

Example: {"value":"au"}Possible values:
Body
vinstringOptional
regostringOptional
statestringOptionalExample: VIC
pricing_record_idstringOptional

The ID of a previous valuation

lead_idstringOptional

The ID of a lead

odometernumberOptional

The odometer reading of the vehicle, if known

brandstringOptional

Branding to generate report for

marketplace_pricenumberOptional

Marketplace price to plot instead of valuation

marketplace_price_typestring · enumOptional

Type of the marketplace price (required if price supplied)

Possible values:
marketplace_image_urlstringOptional

URL of an external image to show in the report

Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
post
POST /v2/reports/car-analysis HTTP/1.1
Host: 
ApiKey: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 267

{
  "vin": "text",
  "rego": "text",
  "state": "VIC",
  "pricing_record_id": "text",
  "lead_id": "text",
  "odometer": 1,
  "sources": [
    "ppsr",
    "vehicle_details",
    "odometer_history",
    "build_data"
  ],
  "brand": "text",
  "marketplace_price": 1,
  "marketplace_price_type": "EGC",
  "marketplace_image_url": "text"
}
{
  "success": true,
  "report": {
    "id": "b2824bfd-d4a4-45e4-a81a-bed7b92c5cd9",
    "status": "in_progress"
  }
}

Retrieve your CarAnalysis report

get

Retrieve your CarAnalysis report

Authorizations
Path parameters
idstringRequired

ID of the CarAnalysis report

Query parameters
regionenum · enumOptional

The region to perform this request in

Example: {"value":"au"}Possible values:
Responses
200
Success
application/json
400
Bad Request
application/json
401
Unauthorized
application/json
get
GET /v2/reports/car-analysis/{id} HTTP/1.1
Host: 
ApiKey: YOUR_API_KEY
Accept: */*
{
  "success": true,
  "report": {
    "id": "b2824bfd-d4a4-45e4-a81a-bed7b92c5cd9",
    "status": "success",
    "url": "text"
  }
}