# Carsales Search

Search Carsales by make, model, year, price, odometer, body style, state, transmission, seller type and keyword. At least one filter besides condition is required. Carsales returns a rotating sample of up to 30 listings per filter set and has no paging and no sort. total_results is the approximate live count and can drift by a few listings between requests. Carsales exposes the state of a listing, not the suburb. Sorting is not available: Carsales cannot sort, so the sort parameter is accepted but no sort is applied and the sort object says so. Paging is not available either: has_more is always null. Split a large search with price, year, odometer, state or model filters until pagination.covers_all_results is true. Prices carry a price_basis. Sale status is only on the listing endpoint. Listings in another state than the state filter are dropped and counted in rows_dropped_state_mismatch. Dealer profiles are not available.

- **Documentation:** [https://scrappa.co/docs/carsales-api/carsales_search](https://scrappa.co/docs/carsales-api/carsales_search)
- **API group:** Carsales API
- **Endpoint:** `GET https://scrappa.co/api/carsales/v1/search`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `condition` | string | No | used or new. |
| `make` | string | No | Make name from the taxonomy endpoint, for example Toyota. |
| `model` | string | No | Model name from the taxonomy endpoint. Needs make. |
| `state` | string | No | Full state name or short code, for example Queensland or QLD. |
| `body_style` | string | No | Body style from the facets endpoint, for example Sedan. |
| `transmission` | string | No | Automatic or Manual. |
| `seller_type` | string | No | Dealer or Private. |
| `keyword` | string | No | Free text keyword. |
| `year_min` | integer | No | Minimum model year. |
| `year_max` | integer | No | Maximum model year. |
| `price_min` | integer | No | Minimum price in AUD. |
| `price_max` | integer | No | Maximum price in AUD. |
| `odometer_min` | integer | No | Minimum odometer in km. |
| `odometer_max` | integer | No | Maximum odometer in km. |
| `sort` | string | No | price_asc, price_desc, year_desc or odometer_asc. Carsales cannot sort: the value is only echoed in the sort object and no sort is applied. |
| `limit` | integer | No | Listings to return from the sample, 1 to 30. |

## Errors

| Status | Error | Description |
| --- | --- | --- |
|  | The listing, make, model or year was not found. This response is not billable. |  |
|  | A parameter is invalid, a value is unknown, or no filter was set. This response is not billable. |  |
|  | The upstream answer changed shape and could not be read. This response is not billable. |  |
|  | The upstream refused the request or is unavailable. This response is not billable. |  |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
