{
  "openapi": "3.0.1",
  "info": {
    "title": "Wallapop Scraper - New Listings & Price Drop Monitor",
    "description": "Schedule it hourly or daily and get only new Wallapop listings, price drops and removed ads for your keywords, city and radius. Price with currency, category, city, postcode, dates, photos, shipping and seller ID. JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "ciCkE22OJcDIlzHqM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~wallapop-new-listings-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-wallapop-new-listings-monitor",
        "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/neverempty~wallapop-new-listings-monitor/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-wallapop-new-listings-monitor",
        "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/neverempty~wallapop-new-listings-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-wallapop-new-listings-monitor",
        "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": {
          "keywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "What to look for on Wallapop, one search per line (for example \"iphone 13\" or \"bicicleta\"). Each keyword is a separate search. Schedule this Actor hourly or daily with Monitor mode on to get only new listings and price drops.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "City or coordinates",
            "type": "string",
            "description": "A Spanish city (for example Madrid, Barcelona, Valencia, Sevilla, Bilbao; also Roma, Milano, Lisboa, Porto) or coordinates like \"40.4168,-3.7038\". Leave empty to search all of Spain."
          },
          "distanceKm": {
            "title": "Distance (km)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Radius around the city in kilometres. Default 50 km when a city is given."
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price in the listing currency (EUR on Wallapop Spain)."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price in the listing currency (EUR on Wallapop Spain)."
          },
          "category": {
            "title": "Category",
            "enum": [
              "",
              "100",
              "200",
              "12461",
              "12463",
              "12465",
              "12467",
              "12485",
              "12579",
              "12800",
              "13100",
              "13200",
              "14000",
              "17000",
              "18000",
              "19000",
              "20000",
              "21000",
              "24200"
            ],
            "type": "string",
            "description": "Limit the search to one Wallapop category."
          },
          "conditions": {
            "title": "Condition",
            "type": "array",
            "description": "Only listings in these conditions. Each condition is searched separately, so every row says its condition. Leave empty for any condition (the condition column is then empty).",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "as_good_as_new",
                "good",
                "fair",
                "has_given_it_all"
              ],
              "enumTitles": [
                "New",
                "As good as new",
                "Good",
                "Fair",
                "Has given it all"
              ]
            }
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "newest",
              "price_low_to_high",
              "price_high_to_low",
              "closest"
            ],
            "type": "string",
            "description": "Order of the results. Monitor mode always uses newest first.",
            "default": "newest"
          },
          "onlyShippable": {
            "title": "Only listings with shipping",
            "type": "boolean",
            "description": "Only listings the seller can ship.",
            "default": false
          },
          "postedToday": {
            "title": "Only listings posted today",
            "type": "boolean",
            "description": "Only listings published today.",
            "default": false
          },
          "searchUrls": {
            "title": "Wallapop search URLs",
            "type": "array",
            "description": "Paste a search from wallapop.com (the address of the results page after you set keywords, location, distance, price, category and condition). Filters in the address are used as they are.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerSearch": {
            "title": "Listings per search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many of the newest listings to read for each search (up to 5,000). In Monitor mode these are the listings that are watched on every run.",
            "default": 100
          },
          "onlyNew": {
            "title": "Monitor mode: only new listings and price changes",
            "type": "boolean",
            "description": "Schedule it hourly/daily → get only new listings & price drops. The first run returns every listing to set the baseline; later runs return only what changed since the previous run: new listings, price drops and rises (with the previous price) and removed listings. A run with nothing new returns one free row that says so.",
            "default": false
          },
          "includePriceChanges": {
            "title": "Report price drops and rises",
            "type": "boolean",
            "description": "In Monitor mode, return listings whose price changed, with the previous price and the change.",
            "default": true
          },
          "includeRemoved": {
            "title": "Report sold or removed listings",
            "type": "boolean",
            "description": "In Monitor mode, return listings that disappeared from the search since the last run (sold, reserved and hidden, deleted, or no longer matching).",
            "default": true
          },
          "includeUnchanged": {
            "title": "Also return unchanged listings",
            "type": "boolean",
            "description": "In Monitor mode, also return listings that did not change (charged like any other row).",
            "default": false
          },
          "watchName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Keeps separate memories for different schedules that use the same searches. Letters, digits, dot, dash and underscore."
          },
          "resetMonitoringState": {
            "title": "Start the monitor again",
            "type": "boolean",
            "description": "Forget what earlier runs saw for these searches and return every listing again as the new baseline.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}