Wallapop Scraper avatar

Wallapop Scraper

Pricing

from $1.50 / 1,000 items

Go to Apify Store
Wallapop Scraper

Wallapop Scraper

Scrape Wallapop second-hand listings by keyword around any location. One row per item: title, price, GPS, postal code, city/region, images, shipping and the full category taxonomy. Target any city by coordinates — no Spanish proxy needed. Optional seller profile + view counters.

Pricing

from $1.50 / 1,000 items

Rating

5.0

(1)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Turn any Wallapop search into clean, structured second-hand marketplace data. Search by keyword (iphone 15, bicicleta, sofá) around any location you choose, or paste search and item URLs — and get one flat row per item with title, price, GPS, postal code, city, region, images, shipping flags and the full category taxonomy.

Built for resale and arbitrage sourcing, price monitoring, and Spanish second-hand market research.

How it works

How the Wallapop Scraper works

✨ Why use this scraper?

  • You choose the location, not your IP — Wallapop is distance-based, and most scrapers return whatever region their proxy happens to sit in. This actor sends explicit coordinates, so you get Madrid results from anywhere. Pick from 12 preset Spanish cities, or supply exact latitude/longitude for any town.
  • Postal-code precision — every row carries the item's postal code, city, region and province alongside GPS. That's real geographic granularity for local-market analysis, not a vague city label.
  • Structured category attributes — deep mode returns Wallapop's own labelled attribute set: Modelo, Marca, Capacidad de almacenamiento, Color, Estado. Typed fields, not text scraped out of a description.
  • Engagement signals — view counts, favourites and conversation counts per item show you what's actually in demand, not just what's listed.
  • Fast — reads Wallapop's own JSON API rather than rendering pages. A few hundred items land in seconds.
  • No Spanish or residential proxy needed — location comes from the coordinates you pass, so there's no premium-proxy surcharge buried in your bill.
  • Fast mode or deep mode — feed rows already include price, description, GPS, postal code and taxonomy. Turn on deep mode for attributes, counters and seller id. You choose cost vs depth.
  • JSON, CSV, Excel or API — pipe straight into your sheet, CRM or pipeline. Billed per item.

🎯 Use cases

You are a…Use it to…
Reseller / flipperSource underpriced items in a chosen city, with condition and demand signals
Price-monitoring / repricingTrack asking prices for a product across Spanish metros over time
Arbitrage traderCompare the same product between Madrid, Barcelona and Valencia in one run
Market researcherMeasure supply, price distribution and category mix by postal code
Marketplace / SaaS builderSeed a second-hand catalog with structured, deduplicated rows
Demand analystRank listings by views and favourites to see what actually moves

📥 Supported inputs

InputExampleWhat it does
Keyword + citiesiphone 15 × ["madrid","barcelona"]Searches that keyword around each city
Keyword + coordinatesiphone 15 + 40.4168 / -3.7038Searches around any exact point
Search URLhttps://es.wallapop.com/search?keywords=iphoneUses that URL's keywords
Item URLhttps://es.wallapop.com/item/{slug}Scrapes that single item in full detail

Not supported: private messages, buyer data, and anything behind a login. The actor reads only public Wallapop data.

Note on location. Wallapop ranks results by distance from a search origin. Supplying coordinates is what controls that origin — so results are centred on the city (or point) you pick, whatever network the run happens to use.

⚙️ How it works

  1. Classify every input — keywords are expanded across the selected locations; pasted URLs are sorted into search / item.
  2. Query Wallapop's public JSON API with explicit latitude/longitude, which overrides its IP-based geolocation.
  3. Paginate with Wallapop's next_page cursor — 40 items per page.
  4. Enrich (optional) — call each item's detail endpoint for attributes, view/favourite counters and seller id.
  5. Push one flat, deduplicated row per item to the dataset, tagged with the origin and keyword that found it.

🔧 Input configuration

FieldTypeDefaultDescription
searchQueriesarray["iphone 15"]Keywords to search. Each runs around every location.
citiesarray["madrid"]Preset cities: madrid, barcelona, valencia, sevilla, zaragoza, malaga, bilbao, murcia, palma, las-palmas, alicante, cordoba.
customLatitude / customLongitudestringExact origin, e.g. 40.4168 / -3.7038. Targets any town.
startUrlsarray[]Wallapop search and/or item URLs. Auto-classified.
scrapeDetailsbooleanfalseFetch each item's detail (attributes, counters, seller id).
maxItemsinteger1000Hard cap on rows for the whole run.
maxItemsPerSearchinteger1000Cap per keyword-and-location feed.
maxConcurrencyinteger8Parallel detail requests.
maxRequestRetriesinteger6Retry budget per request.
proxyobjectApify datacenterOptional. Residential/Spanish proxies are not required.

📤 Output overview

One row per item, tagged with the searchOrigin and searchKeyword that produced it.

Fast mode (feed): itemId, title, description, price, currency, latitude/longitude, location (city, postal code, region, province), categoryPath, taxonomy, images, isReserved, isRefurbished, hasWarranty, isShippable, createdAt, url.

Deep mode adds: characteristics (labelled attributes), characteristicsText, counters (views, favourites, conversations), seller, hashtags, shareUrl.

🧾 Output samples

A phone listing (deep mode):

{
"rowType": "listing",
"itemId": "w67v5kenow6x",
"url": "https://es.wallapop.com/item/iphone-15-pro-256gb-1284244933",
"title": "iPhone 15 Pro 256GB",
"price": 725,
"currency": "EUR",
"searchOrigin": "Madrid",
"searchKeyword": "iphone 15",
"location": {
"city": "Madrid", "postalCode": "28013",
"region": "Comunidad de Madrid", "province": "Madrid", "countryCode": "ES"
},
"latitude": 40.41034, "longitude": -3.73916,
"categoryPath": "Tecnología y electrónica > Telefonía: móviles y smartwatch",
"images": ["https://cdn.wallapop.com/…", "… 2 more"],
"isReserved": false,
"isShippable": true,
"createdAt": "2026-06-30T09:58:33.768Z",
"characteristics": {
"Modelo": "iPhone 15 Pro",
"Marca": "Apple",
"Capacidad de almacenamiento": "256 GB",
"Estado": "Como nuevo"
},
"characteristicsText": "Como nuevo · Apple · iPhone 15 Pro · 256 GB",
"counters": { "views": 625, "favorites": 41, "conversations": 9 },
"seller": { "userId": "g0j23o41wm6y", "isTopProfile": false }
}

🔑 Key output fields

FieldDescription
itemIdWallapop item id (stable dedup key)
title / descriptionItem title and full description
price / currencyNumeric price and ISO currency
locationCity, postal code, region, province, country code
latitude / longitudeItem GPS (Wallapop approximates these slightly for privacy)
categoryPath / taxonomyCategory path and its structured levels
imagesArray of full-resolution image URLs
isReserved / isRefurbished / hasWarrantyItem state flags
isShippable / sellerAllowsShippingShipping availability
createdAt / modifiedAtWhen the item was listed and last updated (ISO)
characteristicsLabelled category attributes (deep mode)
countersViews, favourites, conversations (deep mode)
sellerSeller id and top-profile badge (deep mode)
searchOrigin / searchKeywordWhich location and keyword produced the row

❓ FAQ

Can I search a specific city or town? Yes — that's the point of the location inputs. Pick from 12 preset Spanish cities, or pass exact coordinates for any town. Results are centred on that origin regardless of where the run executes.

Do I need a Spanish or residential proxy? No. Location is controlled by the coordinates you send, not by your IP, so the default Apify datacenter proxy is fine.

Does it return the seller's name or rating? No. Wallapop's public item payload identifies the seller only by id and a "top profile" badge — it does not expose a name, rating or join date there, so this actor does not claim to return them.

What's the difference between fast and deep mode? Fast mode returns feed rows, which already include price, description, GPS, postal code, region and category — cheap and quick. Deep mode adds labelled attributes, view/favourite counters and the seller id, at roughly 2× the requests.

How many results per search? Wallapop returns 40 items per page and pages via a cursor. The actor walks up to 100 pages per feed (~4,000 items). Use several keywords or cities to go wider.

Does it work outside Spain? Wallapop also operates in Italy and Portugal on the same API — pass those coordinates via the custom latitude/longitude fields.

🛟 Support

Found a bug or need a field added? Open an issue on the actor's Issues tab in the Apify Console and we'll take a look.

🚀 Additional services

Need a different marketplace, site, or a custom schema? We build and maintain scrapers across classifieds, real estate, jobs and e-commerce.

🔎 Explore more scrapers

  • OLX Marketplace Scraper (7 countries)
  • OfferUp Marketplace Scraper
  • Kleinanzeigen Scraper
  • Craigslist Scraper
  • Facebook Marketplace Scraper

⚠️ Disclaimer

This actor scrapes only publicly available listing data from Wallapop. It does not access private messages, buyer data, or any content behind a login, and it does not collect personal data beyond the public item information Wallapop itself displays. You are responsible for using the scraped data in compliance with Wallapop's Terms of Service, applicable laws (including GDPR and other data-protection and consumer-protection laws), and any restrictions on automated access. Use the output lawfully and ethically.

🔍 SEO Keywords

Wallapop scraper, Wallapop API, Wallapop data extractor, scrape Wallapop listings, Wallapop price scraper, Wallapop Madrid scraper, Wallapop Barcelona scraper, Spanish classifieds scraper, second-hand marketplace data, Wallapop item export, Wallapop JSON, resale sourcing data Spain, Wallapop price monitoring, segunda mano scraper.