{
  "openapi": "3.0.1",
  "info": {
    "title": "DoneDeal Scraper",
    "description": "Irish classified ads from donedeal.ie as clean JSON: cars first, every section on request. Price, year, mileage, county, town, seller type, photos; ad pages add make, model, attributes and features. Seller names, phones and addresses never collected. Pay per result.",
    "version": "0.1",
    "x-build-id": "Fch6q9iTKvkkd1nGz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lowlanddata~donedeal-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lowlanddata-donedeal-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/lowlanddata~donedeal-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lowlanddata-donedeal-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/lowlanddata~donedeal-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lowlanddata-donedeal-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": {
          "section": {
            "title": "Section",
            "type": "string",
            "description": "The site section to search, as its address spells it: <code>cars</code> (default), <code>motorbikes</code>, <code>tractors</code>, <code>farming</code>, <code>commercials</code>, <code>furniture</code>, or <code>all</code> for every section. The section path of any search page on the site works.",
            "default": "cars"
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Vehicle make, spelled as the site does: <code>Toyota</code>, <code>BMW</code>, <code>Mercedes-Benz</code>. Vehicle sections only."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Vehicle model under the make: <code>Corolla</code>. Needs <b>make</b>."
          },
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "Words to search for in the ads, the way the site's search box takes them."
          },
          "county": {
            "title": "County",
            "type": "string",
            "description": "Only ads in this county: <code>Dublin</code>, <code>Cork</code>, <code>Galway</code>, ... the 32 counties as the site names them. Leave empty for all of Ireland."
          },
          "listingIds": {
            "title": "Specific ad IDs",
            "type": "array",
            "description": "Re-check ads you already know instead of searching: one per line, as the number at the end of the ad address (the <code>listingId</code> of every dataset item) or the ad's full address. Each one is read from its own page, so it carries the description, every attribute, the feature list and the dates. An ad that is gone from the site is skipped, named in the log and not billed. <b>When given, the search fields of this form are ignored</b> and the run status says which. Up to 50.",
            "items": {
              "type": "string"
            }
          },
          "priceMinEur": {
            "title": "Minimum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include ads priced at least this many euros."
          },
          "priceMaxEur": {
            "title": "Maximum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include ads priced at most this many euros."
          },
          "yearMin": {
            "title": "Minimum year",
            "minimum": 1900,
            "type": "integer",
            "description": "Vehicles from this year on."
          },
          "yearMax": {
            "title": "Maximum year",
            "minimum": 1900,
            "type": "integer",
            "description": "Vehicles up to this year."
          },
          "mileageMinKm": {
            "title": "Minimum mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Vehicles with at least this mileage."
          },
          "mileageMaxKm": {
            "title": "Maximum mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Vehicles with at most this mileage."
          },
          "fuelType": {
            "title": "Fuel type",
            "type": "string",
            "description": "As the site names it: <code>Petrol</code>, <code>Diesel</code>, <code>Electric</code>, <code>Petrol hybrid</code>, <code>Diesel hybrid</code>, <code>Plug-in hybrid</code>."
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "Manual",
              "Automatic"
            ],
            "type": "string",
            "description": "Manual or automatic."
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "private",
              "professional"
            ],
            "type": "string",
            "description": "Only private sellers, or only dealers and traders."
          },
          "adType": {
            "title": "Ad type",
            "enum": [
              "for-sale",
              "wanted"
            ],
            "type": "string",
            "description": "Ads offering something for sale, or wanted ads."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "newest",
              "oldest",
              "price_asc",
              "price_desc",
              "mileage_asc",
              "mileage_desc",
              "relevance"
            ],
            "type": "string",
            "description": "Order of results: newest (best for monitoring), oldest, price_asc, price_desc, mileage_asc, mileage_desc, or relevance (the site's own order).",
            "default": "newest"
          },
          "maxItems": {
            "title": "Max ads",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many ads. Free-plan runs are capped at 5 items. The form starts at 25 for a cheap first run - that is the form's prefill, not a cap on your plan; clear it to use the default of 1000. The site serves a window of ads per query; above it the run splits the query by price band, so a whole section comes through when you raise it.",
            "default": 1000
          },
          "scrapeDetails": {
            "title": "Fetch ad pages",
            "type": "boolean",
            "description": "The search row carries the title, price, year, mileage, county, town, posting time and cover photo. Turn this on to read each ad's own page for the description, make, model and every attribute (fuel, transmission, body, engine, colour, owners, NCT, road tax, ...), the feature list, every photo, the price drop, the dates and the view counter. One extra request per ad, so a run is slower. Seller names, phone numbers, dealer addresses and coordinates are never read.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy settings. donedeal.ie answers only consumer networks, so the default is an Apify residential proxy; the price covers it. Leave it as it is.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "reportFailures": {
            "title": "Report failures to the developer",
            "type": "boolean",
            "description": "When a run fails, send the developer the actor name and build, an error category, the error message (truncated) and a one-way hash of your input - so a bug can be fixed without anyone asking you to reproduce it. <b>Your input itself, your results and your identity are never sent, and successful runs send nothing at all.</b> Switch this off and the actor behaves exactly the same.",
            "default": true
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}