{
  "openapi": "3.0.1",
  "info": {
    "title": "Carsales AU $1💰 Powerful Filters + Deep Search",
    "description": "From $1/1K. The fastest, cheapest way to pull structured vehicle listings from carsales.com.au. Point it at a search, get back clean JSON with 30+ fields per listing. built for dealers, analysts, pricing tools, and real-time data pipelines.",
    "version": "1.0",
    "x-build-id": "MmUiBlXo08JwmAaAv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~carsales-au-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-carsales-au-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/abotapi~carsales-au-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-carsales-au-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/abotapi~carsales-au-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-carsales-au-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Search mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "Choose how to find listings. Only fields belonging to the chosen mode are used.",
            "default": "search"
          },
          "urls": {
            "title": "URLs (URL mode only)",
            "type": "array",
            "description": "Carsales search URLs to scrape. Each URL auto-paginates forward until Maximum Pages or Maximum Listings. Ignored in Search mode. Example: https://www.carsales.com.au/cars/used/toyota/corolla/new-south-wales-state/",
            "items": {
              "type": "string"
            }
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "all",
              "new",
              "used",
              "demo"
            ],
            "type": "string",
            "description": "Vehicle condition (Search mode only).",
            "default": "used"
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "all",
              "dealer",
              "private"
            ],
            "type": "string",
            "description": "Dealer / Private / All (Search mode only).",
            "default": "all"
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Manufacturer, e.g. Toyota, Ford, BMW. Leave empty for all makes. (Search mode only)"
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model name, e.g. Corolla, Ranger, X5. Requires a Make. (Search mode only)"
          },
          "bodyType": {
            "title": "Body type",
            "enum": [
              "",
              "suv",
              "sedan",
              "hatch",
              "wagon",
              "coupe",
              "convertible",
              "ute",
              "van",
              "bus",
              "cab-chassis",
              "people-mover"
            ],
            "type": "string",
            "description": "Body shape (Search mode only).",
            "default": ""
          },
          "state": {
            "title": "State",
            "enum": [
              "",
              "nsw",
              "vic",
              "qld",
              "sa",
              "wa",
              "tas",
              "act",
              "nt"
            ],
            "type": "string",
            "description": "Australian state (Search mode only).",
            "default": ""
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "",
              "automatic",
              "manual"
            ],
            "type": "string",
            "description": "Gearbox (Search mode only).",
            "default": ""
          },
          "fuelType": {
            "title": "Fuel type",
            "enum": [
              "",
              "petrol",
              "diesel",
              "hybrid",
              "plug-in-hybrid",
              "electric",
              "dual-fuel"
            ],
            "type": "string",
            "description": "Fuel type (Search mode only).",
            "default": ""
          },
          "colour": {
            "title": "Colour",
            "type": "string",
            "description": "Exterior colour, e.g. black, white, blue, silver, grey, red. (Search mode only)"
          },
          "cylinders": {
            "title": "Cylinders",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Engine cylinders (3, 4, 6, 8, 12). Search mode only."
          },
          "doors": {
            "title": "Doors",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Number of doors (2, 3, 4, 5). Search mode only."
          },
          "priceMin": {
            "title": "Minimum price (AUD)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound for price. Search mode only. Can be combined with Maximum price."
          },
          "priceMax": {
            "title": "Maximum price (AUD)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound for price. Search mode only."
          },
          "yearMin": {
            "title": "Minimum year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Oldest model year. Search mode only."
          },
          "yearMax": {
            "title": "Maximum year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Newest model year. Search mode only."
          },
          "odometerMin": {
            "title": "Minimum odometer (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound for kilometers. Search mode only."
          },
          "odometerMax": {
            "title": "Maximum odometer (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound for kilometers. Search mode only."
          },
          "postcode": {
            "title": "Postcode",
            "pattern": "^[0-9]{4}$",
            "type": "string",
            "description": "4-digit Australian postcode. Search mode only."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Search radius around postcode. Ignored if Postcode is empty."
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "featured",
              "price-asc",
              "price-desc",
              "km-asc",
              "km-desc",
              "year-desc",
              "year-asc"
            ],
            "type": "string",
            "description": "Sort order (Search mode only; in URL mode the URL's sort is used).",
            "default": "featured"
          },
          "fetchDetails": {
            "title": "Fetch full details",
            "type": "boolean",
            "description": "Fetch each listing's detail page for extra fields (VIN, full feature list, description, dealer comments, seller phone). Slower but reuses the same warmed session and adds no extra credits per listing.",
            "default": true
          },
          "maxListings": {
            "title": "Maximum listings",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after scraping this many listings across the whole run. Leave empty for unlimited.",
            "default": 30
          },
          "maxPages": {
            "title": "Maximum pages per search",
            "minimum": 1,
            "type": "integer",
            "description": "In Search mode: max pages to walk forward (~30 listings per page). In URL mode: max pages per URL.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy configuration (RESIDENTIAL required)",
            "type": "object",
            "description": "This actor REQUIRES Apify RESIDENTIAL proxy. Leave the country empty to let the actor rotate residential exits across AU and NZ automatically (both return the same Australian listings and a wider IP pool means fewer blocks); or pick a single country to pin every request to it. Datacenter and free-tier proxy groups are pre-flagged by carsales and will return 0 listings. If your plan lacks residential, upgrade at apify.com/pricing or paste your own residential proxy URLs."
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}