{
  "openapi": "3.0.1",
  "info": {
    "title": "Autotrader UK [$0.75💰/1K] - Car Scraper, Full Detail",
    "description": "Scrape UK car listings from Auto Trader by make, model, price, year, mileage, fuel, and body type. Get full spec, seller details, and per-advert descriptions — with incremental runs that return only new or changed adverts.",
    "version": "0.1",
    "x-build-id": "ctURcns7kh53F4GxP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/blackfalcondata~autotrader-uk-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-blackfalcondata-autotrader-uk-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/blackfalcondata~autotrader-uk-scraper/runs": {
      "post": {
        "operationId": "runs-sync-blackfalcondata-autotrader-uk-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/blackfalcondata~autotrader-uk-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-blackfalcondata-autotrader-uk-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",
        "properties": {
          "query": {
            "title": "🔍 Keyword(s)",
            "type": "string",
            "description": "Optional free-text keyword(s), e.g. \"M Sport\" or \"low mileage\". Combine with the make/model filters below to narrow a search. Leave empty to browse purely by the filters."
          },
          "make": {
            "title": "🚗 Make",
            "type": "string",
            "description": "Manufacturer to search, e.g. \"BMW\", \"Audi\", \"Ford\". Use the brand name exactly as it appears on Auto Trader."
          },
          "model": {
            "title": "🚙 Model",
            "type": "string",
            "description": "Model to search within the chosen make, e.g. \"3 Series\", \"Golf\", \"Fiesta\"."
          },
          "location": {
            "title": "📍 Postcode",
            "type": "string",
            "description": "UK postcode used as the distance anchor, e.g. \"SW1A 1AA\" or \"M1\". Results are sorted by distance from this point."
          },
          "startUrls": {
            "title": "🔗 Search URLs",
            "type": "array",
            "description": "Paste Auto Trader UK car-search URLs (one per line). Each URL's filters are honored, and results are merged and deduplicated across all URLs. When provided, search URLs take precedence over the filter fields below.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "country": {
            "title": "🌍 Country",
            "enum": [
              "GB"
            ],
            "type": "string",
            "description": "Market to search.",
            "default": "GB"
          },
          "maxResults": {
            "title": "💯 Max Results",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum total cars to return (0 = unlimited). The actor self-sizes memory to the run: 256 MB for runs up to 2000 results, 512 MB above that.",
            "default": 25
          },
          "minPrice": {
            "title": "💷 Min Price (£)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price to include, in GBP."
          },
          "maxPrice": {
            "title": "💷 Max Price (£)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price to include, in GBP."
          },
          "minYear": {
            "title": "📅 Min Year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Earliest registration year to include, e.g. 2015."
          },
          "maxYear": {
            "title": "📅 Max Year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Latest registration year to include, e.g. 2023."
          },
          "minMileage": {
            "title": "🛣️ Min Mileage",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest mileage to include (miles)."
          },
          "maxMileage": {
            "title": "🛣️ Max Mileage",
            "minimum": 0,
            "type": "integer",
            "description": "Highest mileage to include (miles)."
          },
          "fuelType": {
            "title": "⛽ Fuel Type",
            "type": "string",
            "description": "Filter by fuel type, exactly as listed on Auto Trader, e.g. \"Petrol\", \"Diesel\", \"Electric\", \"Hybrid – Petrol/Electric\"."
          },
          "transmission": {
            "title": "⚙️ Transmission",
            "enum": [
              "Automatic",
              "Manual"
            ],
            "type": "string",
            "description": "Filter by gearbox."
          },
          "bodyType": {
            "title": "🚘 Body Type",
            "type": "string",
            "description": "Filter by body style, exactly as listed on Auto Trader, e.g. \"Hatchback\", \"SUV\", \"Saloon\", \"Estate\", \"Coupe\", \"Convertible\", \"MPV\"."
          },
          "colour": {
            "title": "🎨 Colour",
            "type": "string",
            "description": "Filter by exterior colour, e.g. \"Black\", \"White\", \"Grey\", \"Blue\"."
          },
          "sellerType": {
            "title": "🏷️ Seller Type",
            "enum": [
              "trade",
              "private"
            ],
            "type": "string",
            "description": "Restrict to trade (dealer) or private sellers."
          },
          "includeDetails": {
            "title": "📋 Include Full Details",
            "type": "boolean",
            "description": "Fetch each car's full detail page for the richest output (spec, history, running costs, full description, gallery, seller contact). Turn off for a faster, lighter run with the headline fields only.",
            "default": true
          },
          "descriptionMaxLength": {
            "title": "✂️ Description Max Length",
            "minimum": 0,
            "type": "integer",
            "description": "Truncate the car description to N characters. 0 = no truncation.",
            "default": 0
          },
          "compact": {
            "title": "📦 Compact Output",
            "type": "boolean",
            "description": "Return core fields only (for AI-agent / MCP workflows).",
            "default": false
          },
          "excludeEmptyFields": {
            "title": "🧹 Exclude Empty Fields",
            "type": "boolean",
            "description": "Drop null, empty-string, and empty-array fields from each record before output. Smaller payloads for AI agents and dashboards.",
            "default": false
          },
          "incrementalMode": {
            "title": "♻️ Incremental Mode",
            "type": "boolean",
            "description": "Compare against the previous run and only output new and changed cars. State Key is optional — it defaults to a stable key derived from your search inputs (keywords, make, model, location, country) so different filter sets never share state.",
            "default": false
          },
          "stateKey": {
            "title": "🔑 State Key",
            "type": "string",
            "description": "Optional. Stable identifier for the tracked search. Leave empty to auto-generate from the search inputs."
          },
          "skipReposts": {
            "title": "🚫 Skip Reposts",
            "type": "boolean",
            "description": "When incremental, skip cars whose content matches a car that disappeared in a prior run (cross-run duplicate detection for relisted vehicles).",
            "default": false
          },
          "emitUnchanged": {
            "title": "♻️ Emit Unchanged Cars",
            "type": "boolean",
            "description": "When incremental, also output cars that are unchanged since the previous run (tagged changeType:UNCHANGED). Off by default — incremental runs emit only new and changed cars.",
            "default": false
          },
          "emitExpired": {
            "title": "🗑️ Emit Expired Cars",
            "type": "boolean",
            "description": "When incremental, also output cars that disappeared since the previous run (tagged changeType:EXPIRED). Only emitted when the run provably enumerated the full result set. Off by default.",
            "default": false
          },
          "telegramToken": {
            "title": "🔑 Telegram Bot Token",
            "type": "string",
            "description": "Telegram bot token (from @BotFather). Required for Telegram notifications."
          },
          "telegramChatId": {
            "title": "💬 Telegram Chat ID",
            "type": "string",
            "description": "Telegram chat or channel ID (e.g. \"-100123456789\"). Required when Telegram Bot Token is set."
          },
          "discordWebhookUrl": {
            "title": "🎮 Discord Webhook URL",
            "type": "string",
            "description": "Discord incoming webhook URL. Server Settings → Integrations → Webhooks → New Webhook."
          },
          "slackWebhookUrl": {
            "title": "💼 Slack Webhook URL",
            "type": "string",
            "description": "Slack incoming webhook URL. api.slack.com/messaging/webhooks."
          },
          "notificationLimit": {
            "title": "📊 Max Cars Per Notification",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of cars included in each notification message (1–20).",
            "default": 5
          },
          "notifyOnlyChanges": {
            "title": "🔄 Notify Only New/Updated",
            "type": "boolean",
            "description": "When Incremental Mode is on, only send notifications for NEW and UPDATED cars. Has no effect outside incremental mode.",
            "default": false
          },
          "whatsappAccessToken": {
            "title": "📱 WhatsApp Access Token",
            "type": "string",
            "description": "WhatsApp Cloud API permanent access token (System User token from Meta Business). Recipient must have messaged the business number within the last 24h (service-conversation window — free since Nov 2024)."
          },
          "whatsappPhoneNumberId": {
            "title": "📞 WhatsApp Phone Number ID",
            "type": "string",
            "description": "Your WhatsApp Business phone-number ID (numeric, from Meta dashboard). Required when WhatsApp Access Token is set."
          },
          "whatsappTo": {
            "title": "📲 WhatsApp Recipient",
            "type": "string",
            "description": "Recipient phone in E.164 format without + (e.g. \"447700900123\"). Recipient must have messaged your business number within the last 24h."
          },
          "webhookUrl": {
            "title": "🪝 Generic Webhook URL",
            "type": "string",
            "description": "Receives a JSON POST with {metadata, items} after each run. Universal escape hatch for n8n / Make / Zapier / custom backends."
          },
          "webhookHeaders": {
            "title": "📋 Webhook Headers",
            "type": "object",
            "description": "Optional JSON object of custom headers (e.g. {\"Authorization\":\"Bearer ...\"})."
          },
          "appConnector": {
            "title": "Send results to a connected app",
            "type": "string",
            "description": "Optional. Pick a connected app under Settings → API & Integrations to receive your results (including any contact details). Best-effort across MCP connectors as Apify expands its catalog."
          },
          "mcpIssueTeam": {
            "title": "Issue tracker team",
            "type": "string",
            "description": "Only when the connected app is an issue tracker: the team (name or ID) the summary issue is created under, if that app requires one."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}