{
  "openapi": "3.0.1",
  "info": {
    "title": "Wallapop Scraper – Live Resale Market Data",
    "description": "Live Wallapop resale market intelligence: keyword search, full product details, closet inventory, seller profiles, and sold comps across Spain, Italy, Portugal, and the UK. Structured JSON streamed in real time with webhook alerts — perfect for thrift resellers, arbitrage, and pricing bots.",
    "version": "0.0",
    "x-build-id": "wduV79RUypkbWmQtb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/b2b_leads~Wallapop-Real-Time-Data-Scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-b2b_leads-Wallapop-Real-Time-Data-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/b2b_leads~Wallapop-Real-Time-Data-Scraper/runs": {
      "post": {
        "operationId": "runs-sync-b2b_leads-Wallapop-Real-Time-Data-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/b2b_leads~Wallapop-Real-Time-Data-Scraper/run-sync": {
      "post": {
        "operationId": "run-sync-b2b_leads-Wallapop-Real-Time-Data-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": {
          "country": {
            "title": "Market region",
            "enum": [
              "ES",
              "IT",
              "PT",
              "UK"
            ],
            "type": "string",
            "description": "Wallapop market. Affects the storefront language, market-center location, and the recommended proxy country.",
            "default": "ES"
          },
          "enableListingSearch": {
            "title": "Listing Search",
            "type": "boolean",
            "description": "Live keyword search across Wallapop — thrift brands, streetwear, and vintage finds. On by default and prefilled so you can click Start and get results in seconds.",
            "default": true
          },
          "searchKeywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "One or more search terms, e.g. \"carhartt\", \"vintage levis 501\", \"forro polar patagonia\", \"north face vintage\". Spanish and Italian queries work best on the local storefronts. Required when Listing Search is on.",
            "default": [
              "carhartt",
              "vintage levis 501",
              "forro polar patagonia"
            ],
            "items": {
              "type": "string"
            }
          },
          "searchMaxResults": {
            "title": "Max results per keyword",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum listings to return for each keyword (1–200). Default 10 — perfect for instant demo runs.",
            "default": 10
          },
          "searchSort": {
            "title": "Sort order",
            "enum": [
              "newest",
              "closest",
              "price_low_to_high",
              "price_high_to_low"
            ],
            "type": "string",
            "description": "How to order search results. \"Newest first\" is ideal for deal alerts on fresh inventory.",
            "default": "newest"
          },
          "searchCondition": {
            "title": "Condition filter (optional)",
            "enum": [
              "",
              "new",
              "un_worn",
              "as_good_as_new",
              "good",
              "fair",
              "for_parts_or_not_working"
            ],
            "type": "string",
            "description": "Limit results to an item condition.",
            "default": ""
          },
          "searchMinPrice": {
            "title": "Min price (optional)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Minimum listing price in the market currency (EUR for ES/IT/PT, GBP for UK)."
          },
          "searchMaxPrice": {
            "title": "Max price (optional)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum listing price — pair with \"Newest first\" sort to catch underpriced steals fast."
          },
          "searchLatitude": {
            "title": "Search latitude (optional)",
            "type": "number",
            "description": "Override the market-center latitude for distance-sorted searches, e.g. 41.3874 for Barcelona."
          },
          "searchLongitude": {
            "title": "Search longitude (optional)",
            "type": "number",
            "description": "Override the market-center longitude for distance-sorted searches, e.g. 2.1686 for Barcelona."
          },
          "searchFetchFullDetails": {
            "title": "Enrich with full listing details",
            "type": "boolean",
            "description": "When on, each search result stays ONE row (featureType listing_search, detailsFetched=true) but is enriched with the full description, brand, size, color, condition, view and favorite counts, seller stats, and sold/reserved flags. Adds a little extra time per listing. When off, you get fast search cards with price, title, brand, size, and location. Every discovered item is always saved — never filtered out.",
            "default": false
          },
          "enableListingDetails": {
            "title": "Listing Details",
            "type": "boolean",
            "description": "Fetch the full record for specific Wallapop listings by URL or listing ID.",
            "default": false
          },
          "listingIds": {
            "title": "Listing IDs (optional)",
            "type": "array",
            "description": "Wallapop listing IDs, e.g. 8j38ny95q7z9.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "listingUrls": {
            "title": "Listing URLs (optional)",
            "type": "array",
            "description": "Full Wallapop listing URLs (https://es.wallapop.com/item/...).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "enableClosetListings": {
            "title": "Closet Listings",
            "type": "boolean",
            "description": "Collect the full active inventory of any reseller or thrift closet — track competitor stock and repricing moves.",
            "default": false
          },
          "sellerUsernames": {
            "title": "Seller usernames",
            "type": "array",
            "description": "Wallapop seller handles or profile slugs (e.g. ernestop-381137637 from the profile URL). Shared by Closet Listings, Seller Profile, and Sold Comps.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sellerMaxListings": {
            "title": "Max closet listings per seller",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum active listings to collect per closet (1–500).",
            "default": 30
          },
          "enableSellerProfile": {
            "title": "Seller Profile",
            "type": "boolean",
            "description": "Extract reseller stats: completed sales, items listed, rating average, review count, verification, seller type, bio details, and location.",
            "default": false
          },
          "enableSoldHistory": {
            "title": "Sold Item Comps / History",
            "type": "boolean",
            "description": "Collect the seller's catalog with per-item sell/reserve state plus completed-sales counters — the closest Wallapop equivalent of sold comps, for margins and sell-through analysis.",
            "default": false
          },
          "soldMaxItems": {
            "title": "Max comp records per seller",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum catalog records to collect per seller (1–500).",
            "default": 30
          },
          "enableScrapeByUrl": {
            "title": "Scrape By URL",
            "type": "boolean",
            "description": "Paste any Wallapop URL — search results, seller profile, category page, or single listing.",
            "default": false
          },
          "scrapeUrls": {
            "title": "Wallapop URLs",
            "type": "array",
            "description": "Any Wallapop search, seller-profile, category, or listing URL.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional. Every record is always saved to the run dataset — this webhook is an ADDITIONAL real-time push. Each new row is also POSTed to this URL (Slack, Discord, Zapier, Make, n8n, custom pricing bot).",
            "default": ""
          },
          "webhookFormat": {
            "title": "Webhook format",
            "enum": [
              "json",
              "slack"
            ],
            "type": "string",
            "description": "json = full record object; slack = Slack-friendly message payload.",
            "default": "json"
          },
          "proxyConfiguration": {
            "title": "Proxy settings",
            "type": "object",
            "description": "Residential proxy recommended. Match the country to the Market region above (ES by default; UK → GB).",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "ES"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}