The MarketCheck API sandbox is a free, self-service copy of the API for building and testing integrations. It runs on its own infrastructure with its own sample data, accepts only sandbox API keys, and never produces billable usage. Use it to develop and test your application before you subscribe to a production plan.
| Environment | Host | Base Path | Key prefix |
|---|---|---|---|
| Sandbox | api.sandbox.marketcheck.com | /v2/ | mc_test_ |
Endpoints, parameters and response formats are the same as production. Moving to production is a change of host and key only.
A sandbox key is offered during onboarding when you sign up on the Marketcheck Developers Portal. You can also create one at any time from your account:
No subscription is required. Sandbox keys start with mc_test_ so they are easy to tell apart from production keys. One sandbox key is issued per account; you can rotate or delete it from the same page.
Authenticate exactly as in production by passing the key in the api_key query parameter. See Authentication.
The sandbox and production are fully separate environments. Every API key belongs to exactly one of them and is accepted only by that environment's host.
| Environment | Host | Accepted keys |
|---|---|---|
| Sandbox | api.sandbox.marketcheck.com | mc_test_... |
| Production | api.marketcheck.com | mc_live_... |
403 Forbidden, so it can never read production data403 Forbidden, so it can never be billed for sandbox callsSearch active car inventory in the sandbox:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.sandbox.marketcheck.com/v2/search/car/active',
params: {api_key: 'YOUR_SANDBOX_API_KEY', car_type: 'used', make: 'Toyota', rows: '3'},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Search active UK car inventory in the sandbox:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.sandbox.marketcheck.com/v2/search/car/uk/active',
params: {api_key: 'YOUR_SANDBOX_API_KEY', make: 'Ford', rows: '3'},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
The VIN endpoints work in the sandbox for every VIN in the sample dataset:
| Endpoint | Path | What it returns |
|---|---|---|
| Basic VIN Decoder | /v2/decode/car/{vin}/specs | Year, make, model, trim and standard specifications |
| NeoVIN Decoder | /v2/decode/car/neovin/{vin}/specs | Trim, options packages, installed equipment, features and MSRP |
| History by VIN | /v2/history/car/{vin} | Past listings with price, miles, seller and first and last seen dates |
vin returned by a sandbox inventory search is available on all three endpoints. The sample is built so that each vehicle has its decode, NeoVIN and listing history data. Fetch VINs from a search at the start of a test run instead of hard-coding them, because the sample is replaced when it is refreshed.The sandbox contains sample vehicles for every vertical the API serves, in the same response format as production:
num_found, prices, mileage, days on market and listing dates do not describe today's market.The following endpoints are not included in sandbox plans. Calling them with a sandbox key returns 403 Forbidden.
| Service | Endpoints |
|---|---|
| AutoRecalls | /v2/car/autorecalls/{vin} |
| VINData AAMVA reports | /v2/vindata/generate-report/aamva/{vin}, /v2/vindata/access-report/aamva/{vin} |
| CarsXE plate decoder | /v2/carsxe/plate-decoder/{plate} |
| Enhanced VIN decoder (EPI) | /v2/decode/car/epi/{vin}/specs |
| MarketCheck Price | /v2/predict/car/us/marketcheck_price, /v2/predict/car/ca/marketcheck_price and their /comparables variants |
| MarketMatch | /v2/marketmatch/dealers/rank, /v2/marketmatch/vins/rank |
| Batch APIs | /v2/batch/... |
| Plan | Rate Limit (RPS) | Monthly Quota |
|---|---|---|
| Sandbox | 5 RPS | 25,000 API calls |
Limits are enforced per key by the gateway with the same 429 responses and RateLimit-* / Quota-* headers as production, which makes the sandbox a good place to test your retry logic. See Quota and Rate Limits.
| Status Code | Description | Common Causes |
|---|---|---|
| 401 | Unauthorized | Missing or invalid api_key |
| 403 | Forbidden | Sandbox key used on api.marketcheck.com |
| 403 | Forbidden | Production key used on api.sandbox.marketcheck.com |
| 403 | Forbidden | Endpoint is not included in sandbox plans (see the list above) |
| 429 | Too Many Requests | More than 5 requests per second, or the 25,000 monthly calls used up |
Error Response Format
{
"code": <HTTP status code>,
"message": "<Error message describing the issue>"
}
{
"code": 403,
"message": "This sandbox API key can only be used with the sandbox host. Please switch to the sandbox host or use a production API key."
}
{
"code": 403,
"message": "The sandbox host only accepts sandbox API keys. Please use a sandbox API key or switch to the production host."
}
mc_live_)api.marketcheck.com and swap the keyNo other code changes are needed.