{
  "openapi": "3.0.1",
  "info": {
    "title": "Gumtree UK Scraper — All Categories, Any Keyword",
    "description": "Scrapes any Gumtree UK category by keyword: cars, phones, property, furniture, jobs. Returns price, location, photos and seller type, plus year, mileage and fuel for vehicles, and battery health and storage parsed from the ad's own text. Optional filters drop damaged items and accessories.",
    "version": "0.1",
    "x-build-id": "YcMM98lGoIjfhLqNk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/reventadata~gumtree-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-reventadata-gumtree-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/reventadata~gumtree-scraper/runs": {
      "post": {
        "operationId": "runs-sync-reventadata-gumtree-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/reventadata~gumtree-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-reventadata-gumtree-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": [
          "searchQueries"
        ],
        "properties": {
          "searchQueries": {
            "title": "Search terms",
            "type": "array",
            "description": "One search per term. Required, with no default — the Actor never guesses what to look for.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category",
            "enum": [
              "",
              "for-sale",
              "cars",
              "phones",
              "mobile-phones",
              "vans",
              "motorbikes",
              "property-to-rent",
              "flats-houses",
              "jobs",
              "furniture",
              "bicycles"
            ],
            "type": "string",
            "description": "Optional Gumtree category slug. Validated against the site's own list; an unknown slug fails the run rather than silently returning everything.",
            "default": ""
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Gumtree location slug, e.g. uk, london, manchester. Defaults to the whole UK.",
            "default": "uk"
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "date",
              "price_lowest_first",
              "price_highest_first",
              "distance"
            ],
            "type": "string",
            "description": "Order only; changes nothing about which ads exist. Five paid Featured ads are pinned above the sorted results on every page.",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Minimum price (£)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Omitted from the request entirely when empty — never defaulted to 0, which would drop every free listing."
          },
          "maxPrice": {
            "title": "Maximum price (£)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Omitted from the request entirely when empty."
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "any",
              "private",
              "trade"
            ],
            "type": "string",
            "description": "Private or Trade. Applied after fetching, not by Gumtree. Only motoring categories publish it, so setting this on any other category returns ZERO rows, not an unfiltered list.",
            "default": "any"
          },
          "minBatteryHealth": {
            "title": "Minimum battery health (%)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Parsed from the ad's own wording, including the UK shorthand 'BH85%'. Rejects ads that never state a figure, not just ads below the floor."
          },
          "minStorageGb": {
            "title": "Minimum storage (GB)",
            "minimum": 1,
            "type": "integer",
            "description": "Parsed from title and description; TB is converted, so 1TB counts as 1024. Rejects ads that never state a capacity, not just ads below the floor."
          },
          "excludeDamaged": {
            "title": "Exclude damaged listings",
            "type": "boolean",
            "description": "Drops ads admitting damage — cracked, faulty, spares or repairs, iCloud locked. Honours seller negations like 'no cracks'.",
            "default": true
          },
          "excludeAccessories": {
            "title": "Exclude cases, chargers and spare parts",
            "type": "boolean",
            "description": "A large minority of results for any phone search are cases and chargers whose titles contain the search term.",
            "default": true
          },
          "excludeFeatured": {
            "title": "Exclude paid Featured placements",
            "type": "boolean",
            "description": "Exactly five promoted ads sit at the top of every page and ignore the sort order (measured on pages 1, 2, 3 and 5). Off by default, so they are returned and labelled with isFeatured.",
            "default": false
          },
          "requireKeywordMatch": {
            "title": "Require the query in the title",
            "type": "boolean",
            "description": "Drop items whose title is missing any word of the query. Gumtree search is fuzzy and returns loosely related ads.",
            "default": true
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on rows pushed across all search terms.",
            "default": 1000
          },
          "maxPages": {
            "title": "Maximum pages per search term",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Gumtree serves at most 50 pages per search, about 1,500 ads, and this is clamped to that ceiling.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Gumtree blocks an unproxied client after about five pages. Residential completed 25 of 25 pages in testing where datacenter reached 22.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}