Developer API · v1
Bid Estimator API
The data behind How Much to Bid? as JSON: comparable Japanese auction results for a model code and their average final price.
1. Get an API key
Keys are issued by the Autocheck team — contact us with your company name and intended use. A key is shown to you once; store it securely and only use it server-side (never in a browser or mobile app). If a key leaks, ask us to revoke it and issue a new one.
2. Authenticate
Send the key as a bearer token on every request. Base URL: https://autocheck.jp/api/v1
Authorization: Bearer <your-api-key>
Accept: application/json
A missing, unknown or revoked key returns 401.
3. Integration flow
- The user enters a model / chassis code (e.g.
AGH30W). - Call options to get the trims, years and colours that actually exist for that code, and fill your dropdowns from it.
- The user picks a year (required), mileage ceiling (required), and optionally trim, colour and body score(s).
- Call estimate and show the average price and the comparable results.
4. GET /bid-estimator/options
Input options for a model code.
| Parameter | Required | Description |
|---|---|---|
| code | yes | Model / chassis code. Case-insensitive. |
curl -H "Authorization: Bearer $AUTOCHECK_API_KEY" \
"https://autocheck.jp/api/v1/bid-estimator/options?code=AGH30W"
Example response (illustrative values):
{
"data": {
"code": "AGH30W",
"exists": true,
"variants": ["2.5S", "2.5S A PACKAGE", "2.5S C PACKAGE", "2.5Z G EDITION"],
"years": [2023, 2022, 2021],
"colors": ["BLACK", "PEARL", "WHITE"],
"scores": ["S", "6", "5", "4.5", "4", "3.5", "3", "R"],
"max_mileage_km": 150000
}
}
existsisfalsewhen there are no auction results for the code at all.variantsonly lists trims with at least one recorded sale.yearsare newest first.
5. GET /bid-estimator/estimate
Comparable auction results and their average. Every filter you send is exact.
| Parameter | Required | Description |
|---|---|---|
| code | yes | Model / chassis code. |
| year | yes | Model year, from options.years. |
| max_mileage | yes | Mileage ceiling in km, 0–150000. |
| variant | no | Trim, from options.variants. Omit for all trims. |
| color | no | Colour, from options.colors. Omit for any colour. |
| scores[] | no | One or more body scores: S 6 5 4.5 4 3.5 3 R. Repeat the parameter for several. Omit for any score. |
curl -G -H "Authorization: Bearer $AUTOCHECK_API_KEY" \
"https://autocheck.jp/api/v1/bid-estimator/estimate" \
--data-urlencode "code=AGH30W" \
--data-urlencode "variant=2.5S C PACKAGE" \
--data-urlencode "year=2023" \
--data-urlencode "max_mileage=150000" \
--data-urlencode "scores[]=4.5" \
--data-urlencode "scores[]=4"
Example response (illustrative values):
{
"data": {
"query": {
"code": "AGH30W", "variant": "2.5S C PACKAGE", "year": 2023,
"max_mileage": 150000, "color": null, "scores": ["4.5", "4"]
},
"count": 2,
"average_price_yen": 4475000,
"results": [
{
"odo": 12, "final_price": 4550,
"scores_body": 4.5, "scores_body_label": "4.5", "scores_interior": "A",
"model": "ALPHARD 2.5S C PACKAGE", "type": "AGH30W", "year": 2023,
"color": "PEARL", "bid_site": "USS Tokyo", "capture_date": "2026-10-28"
},
{
"odo": 25, "final_price": 4400,
"scores_body": 4.0, "scores_body_label": "4", "scores_interior": "B",
"model": "ALPHARD 2.5S C PACKAGE", "type": "AGH30W", "year": 2023,
"color": "BLACK", "bid_site": "TAA Kinki", "capture_date": "2026-10-21"
}
]
}
}
- Up to 15 results, most recently captured first.
- If fewer than 2 results match,
countis 0,resultsis empty andaverage_price_yenisnull— loosen a filter and retry.
6. Units
| Field | Unit | Example |
|---|---|---|
| average_price_yen | JPY | 4475000 = ¥4,475,000 |
| results[].final_price | thousand JPY | 4550 = ¥4,550,000 |
| max_mileage | km | 150000 = 150,000 km |
| results[].odo | thousand km | 12 = 12,000 km |
| results[].scores_body | number | S = 6.5, R = 0.5 (use scores_body_label for display) |
7. Errors and rate limits
| Status | Meaning |
|---|---|
| 401 | Missing, unknown or revoked API key. |
| 422 | Invalid input. errors lists each problem by field. |
| 429 | More than 60 requests in a minute for your key. Wait the number of seconds in the Retry-After header. |
HTTP/1.1 422 Unprocessable Content
{
"message": "The year field is required.",
"errors": { "year": ["The year field is required."] }
}
Results change as new auctions are captured, so cache responses for minutes, not days.