Skip to content

Valuation API

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 appropriate license attached to it.

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

Vehicle ID

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

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.

Residual Value prediction API

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 AutoGrab's stored Recommended Retail Price, or by providing your own Retail Value for the car.

Trade & Retail Value prediction API

Example

To perform an example request:

curl -XPOST -H 'ApiKey: {API_KEY}' \
    -H "Content-type: application/json" \
    -d '{
        "region": "au",
        "vehicle_id": "{VEHICLE_ID}",
        "kms": 30000
    }' 'https://api.autograb.com.au/v2/valuations/predict'

You can explore this request further in the API Playground.

Pricing by Registration Plate or VIN

To price a vehicle via the registration plate or VIN, you have two options. You can choose to call the /v2/vehicles/registrations/{REGO} or /v2/vehicles/vins/{VIN} endpoint and then pass the returned vehicle_id to the /v2/valuations/predict endpoint, but to streamline your workflow you may prefer to use the direct registration/vin valuation routes (/v2/valuations/registrations/{REGO} and /v2/valuations/vins/{VIN}.

Pricing 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 AutoGrab price is not already accurate enough.

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

This 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.

To overwrite AutoGrab's stored Recommended Retail Price with your own, use the rrp_overwrite value in the payload which accepts a number.

Predicted Retail and Trade Price Adjustments

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

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

If you set a Retail Price Adjustment for a vehicle, the trade price will also be affected because the trade price is derrived 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.

Predicted Retail/Trade Adjustments do not apply to residual valuations.

Example

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

{
    "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

As well as 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 configurd, 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. In the case where you have both a trade override and a retail override, the two overridden prices will be returned without any pre-processing (except to calculate condition scores, if applicable - see below).

As with Predicted Retail/Trade Adjustments, price overrides do not apply to residual valuations

Example

Below is an example price prediction paylaod where both 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.

{
    "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
                }
            ]
        }
    }
}

Condition Score

Value a vehicle using an AutoGrab ID without requiring a condition_score, return multiple valuations, one for each allowable condition_score [1-5] 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 reccomended you follow the industry standard in the table below.

Condition Condition Score
Poor 1
Fair 2
Average 3
Good 4
Excellent 5

If you would like to show a range to the user highlighting the different prices per condition you should use the /v2/valuations/predict/conditions endpoint which will return an array of conditions and their values.

{
    "success": true,
    "prediction": {
        "id": "d8836090-0558-4137-9d86-9ea9597d023f",
        "vehicle_id": "4857499144421376",
        "kms": 30000,
        "price": 20534,
        "retail_price": 20534,
        "adjustment": null,
        "conditions": [
            {
                "condition_score": 1,
                "trade_price": 11923.8
            },
            {
                "condition_score": 2,
                "trade_price": 13627.2
            },
            {
                "condition_score": 3,
                "trade_price": 15330.6
            },
            {
                "condition_score": 4,
                "trade_price": 16182.3
            },
            {
                "condition_score": 5,
                "trade_price": 17034
            }
        ]
    }

Upper & Lower Bounds

Example

If you would like to understand the market bounds, the range in which the valuation was made, you can use the bounds feature as v2/valuations/predict?features=bounds when invoking any of the following apis:

Endpoint Description
valuations/predict Basic valuation predication
valuations/predict/conditions Prediction using a condition input
valuations/registrations/{plate_number} Valuation on a registration plate
valuations/VINS/{vin} Valuaiton on a VIN

This will result in the example payload below with the upper and lower fields being included.

{
    "success": true,
    "prediction": {
        "id": "44c26d55-5429-413a-b2fa-590de2cfcd9a",
        "vehicle_id": "4857499144421376",
        "kms": 30000,
        "price": 20534,
        "retail_price": 20534,
        "trade_price": 11923.8,
        "adjustment": null
    },
    "bounds": {
        "retail": {
            "lower": 19534,
            "upper": 21784
        },
        "trade": {
            "lower": 10923.8,
            "upper": 13173.8
        }
    }
}

Regional Availability

The bounds system is currently only available in Australia, and is in development for New Zealand and Malaysia.