Wallapop Scraper — Listings, Prices & Sellers
Pricing
from $0.20 / 1,000 listings
Wallapop Scraper — Listings, Prices & Sellers
Scrape Wallapop listings (second-hand items on Wallapop.com) by keyword, category or search URL: title, price, condition, location, seller, posted date, shipping, photos and listing URL, with optional item details and seller ratings. No login needed.
Pricing
from $0.20 / 1,000 listings
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Features
Share
Wallapop Scraper: Listings, Prices & Sellers
Scrape Wallapop listings - the second-hand items people sell on Wallapop.com, the largest second-hand marketplace in Spain, also live in Italy, Portugal and the UK. Type a keyword, pick a category, or paste a Wallapop search URL, and get every listing as clean data: title, description, price and previous price, category path, city, postcode, province and region, approximate map point, seller id, shipping and reserved flags, posted and modified dates, all photos and the listing URL. For cars and flats the attributes shown in the search results (brand, model, year, mileage, engine, gearbox, rooms, surface) come as their own columns.
It reads the same JSON API the Wallapop website uses, so a request returns 40 complete listings at once and runs take seconds. Turn on Include item and seller details to add the condition, view and favourite counts, hashtags and the seller's public profile (display name, private or professional, verified, rating, number of reviews and sales, member since). Export to JSON, CSV or Excel, or pull the results through the API into your app, a spreadsheet or an LLM pipeline.
What data does Wallapop Scraper extract?
| Field | Description |
|---|---|
itemId, legacyId, url | Wallapop's item id (e.g. pj94opempv6e), the numeric id in the web address, and the listing URL |
title, description | Title and the seller's description text |
price, currency, previousPrice, discountPercent | Price (EUR; GBP in the UK), the crossed-out previous price and the discount when the seller lowered it |
condition, conditionCode | "Buen estado" / good, "Como nuevo" / as_good_as_new, ... (with details on) |
category, categoryId, categoryPath, subcategory, subcategoryId | e.g. "Bicicletas", 17000, "Bicicletas > Bicicletas y triciclos > MTB", "MTB", 10214 |
availability, isReserved, isSold | available, reserved, sold or removed; sold / removed are known when details are fetched |
city, postalCode, province, region, countryCode | e.g. "Móstoles", "28937", "Madrid", "Comunidad de Madrid", "ES" |
latitude, longitude, locationPrecision | The listing's map point rounded to about 1 km (approximate); a professional seller's exact point with details on (exact) |
sellerId, sellerIsTopProfile | Seller id and Wallapop's "top profile" badge |
sellerName, sellerType, sellerVerified, sellerRating, sellerReviewCount, sellerSoldCount, sellerItemsPublished, sellerRegisteredAt, sellerCity, sellerUrl | The seller's public profile (with details on): display name as shown, private or professional, verified flag, rating 0-5, reviews, items sold and published, member since, city, profile URL |
shippingAvailable, itemIsShippable | Whether the seller ships (Wallapop Envíos) and whether the item can be shipped at all |
isRefurbished, hasWarranty, isBumped, bumpType | Refurbished / warranty badges and paid promotion (city, zone, country) |
attributes | Car and property attributes as {key: value}: {"brand": "Mazda", "model": "CX-5", "year": 2018, "km": 155246, "engine": "Diésel", "gearbox": "Manual", "horsepower": 150, ...} |
brand, model, year, mileageKm, engine, gearbox, horsepower, doors, seats, bodyType, surfaceM2, rooms, bathrooms, operation, propertyType | The same attributes as typed columns when the listing has them |
views, favorites, hashtags, characteristics, itemType | View and favourite counts, hashtags, condition text and item type (consumer_goods, car, ...) with details on |
postedAt, modifiedAt | Posting and last-modification time, ISO 8601 UTC |
photos, photoCount, thumbnailUrl | All photos (800 px) and a thumbnail |
searchTerm, searchUrl, position, scrapedAt, detailsFetched | The search the listing came from, its rank in that search, when it was scraped, whether details were fetched |
How to scrape Wallapop listings
- Type one or more Search terms (one per line), as in the Wallapop search box:
bicicleta,iphone 15,ps5. - Optionally narrow them down: Category, Min / Max price, Condition, Only listings with shipping, a Location (a city such as Madrid, Barcelona, Valencia, Milano or Lisboa, or coordinates) and a Distance (km). Choose a Sort: newest first (the default, country-wide unless you set a distance), relevance, price, or closest.
- Or open wallapop.com, search with any filters, and paste the address bar URL into Start URLs; the filters, sort and location in the URL are used as they are.
- Set Max items and Max pages per search (40 listings per page), turn on Include item and seller details if you need condition, counters and seller ratings, and click Start. Download the results as JSON, CSV or Excel, or read them through the API.
Input example
{"searchTerms": ["bicicleta eléctrica", "bicicleta de carretera"],"location": "Barcelona","distanceKm": 30,"minPrice": 200,"maxPrice": 1500,"condition": ["new", "as_good_as_new", "good"],"sort": "newest","startUrls": [{ "url": "https://es.wallapop.com/app/search?keywords=iphone%2015&min_sale_price=300&order_by=price_low_to_high&is_shippable=true" }],"maxItems": 200,"maxPagesPerSearch": 3,"includeDetails": false}
Output example
{"itemId": "pj94opempv6e","legacyId": 1319296713,"title": "Bicicleta de Montaña Mondraker Finalist","description": "Bicicleta de montaña Mondraker modelo Finalist, con un diseño estilizado en color gris y detalles en rojo.\n\n- Frenos de disco.\n- Suspensión delantera.\n- Neumáticos Geax Gato.","price": 280,"currency": "EUR","previousPrice": null,"discountPercent": null,"condition": "Buen estado","conditionCode": "good","categoryId": 17000,"category": "Bicicletas","categoryPath": "Bicicletas > Bicicletas y triciclos > MTB","subcategory": "MTB","subcategoryId": 10214,"availability": "available","isReserved": false,"isSold": false,"city": "Móstoles","postalCode": "28937","province": "Madrid","region": "Comunidad de Madrid","countryCode": "ES","latitude": 40.33,"longitude": -3.85,"locationPrecision": "approximate","sellerId": "8z8159dk7o63","sellerName": "Occ C.","sellerType": "private","sellerVerified": true,"sellerRating": 5,"sellerReviewCount": 6,"sellerSoldCount": 2,"sellerRegisteredAt": "2023-09-16T19:42:34Z","sellerUrl": "https://www.wallapop.com/user/oscarc-442177822","shippingAvailable": false,"itemIsShippable": true,"isRefurbished": false,"hasWarranty": false,"isBumped": true,"bumpType": "zone","attributes": null,"views": 22,"favorites": 2,"itemType": "consumer_goods","postedAt": "2026-11-01T09:35:34Z","modifiedAt": "2026-11-01T16:52:33Z","photos": ["https://cdn.wallapop.com/images/10420/lt/h3/__/c10420p1319296713/i6833232008.jpg?pictureSize=W800", "..."],"photoCount": 3,"thumbnailUrl": "https://cdn.wallapop.com/images/10420/lt/h3/__/c10420p1319296713/i6833232008.jpg?pictureSize=W320","url": "https://es.wallapop.com/item/bicicleta-de-montana-mondraker-finalist-1319296713","detailsFetched": true,"searchTerm": "bicicleta","position": 1,"scrapedAt": "2026-11-01T19:40:12Z"}
A car listing adds brand, model, year, mileageKm, engine, gearbox and horsepower (e.g. "Mazda", "CX-5", 2018, 155246, "Diésel", "Manual", 150), plus doors, seats and bodyType with details on.
Which Wallapop URLs work?
Search result pages from any Wallapop country site: https://es.wallapop.com/app/search?keywords=... and https://es.wallapop.com/search?category_id=...&subcategory_ids=... with every filter the site puts in the URL (min_sale_price, max_sale_price, order_by, distance_in_km, condition, is_shippable, brand, model, min_year, max_km, ...), including latitude / longitude. URLs from it.wallapop.com, pt.wallapop.com and uk.wallapop.com work the same way; the location decides which country's listings you get, so a Milan search returns Italian listings in EUR and a London search British ones in GBP. Category landing pages such as /c/motor/... and single item pages (/item/...) are not readable through Wallapop's API: for an item page, search for its title, or give its itemId from an earlier run in Item IDs.
Monitor new Wallapop listings on a schedule
Turn on Only new or changed items to watch a search: each run remembers what earlier runs returned and outputs only listings that are new or whose price or availability changed (a price drop, a listing marked as reserved or available again, or sold when details are on). Unchanged listings are dropped before any detail request and before they are saved, so they are not charged. Max items then sets how many listings are checked per run (keep the newest-first sort, e.g. the newest 50-100 of a search). Save the input as a task and add a Schedule in Apify (every 15 minutes, hourly or daily); give each watch its own Monitoring key if several schedules use the same search. Every output item has changeType (new or changed), and changed items carry previousValues with the old values, e.g. {"price": 280}. To follow specific listings, put their ids in Item IDs with monitoring on.
Does it need a login or a proxy?
No login, account or API key: the Actor reads Wallapop's public search and item API, the same one the website calls for every visitor. Apify's datacenter proxy (the default) is enough; a search page is about 100 KB, so even thousands of listings move only a few megabytes. Nothing is solved or bypassed: when Wallapop refuses a request, the Actor retries on another IP and reports the failure in the run summary.
How much does it cost?
You pay per listing saved to the dataset, plus a small extra per listing when Include item and seller details is on (one item request and the seller's profile), or per item id fetched directly. There is no start fee and no subscription; see the Pricing tab for the current prices. Platform usage is included in the price.
Is it legal to scrape Wallapop?
This Actor collects publicly visible listing data that any visitor sees on Wallapop without an account: the listing itself, the seller's display name and public profile figures, and the approximate location Wallapop shows for a listing (rounded to about 1 km; exact points only for professional sellers). It does not log in, does not collect phone numbers or anything behind a click or login, and does not export private sellers' exact locations. Seller names are personal data under the GDPR when they belong to private individuals: you are responsible for having a legitimate purpose and a legal basis for processing them, and for respecting Wallapop's terms of use. If in doubt, ask a lawyer.
Integrations and API
Run it from the Apify API, schedule it, and send the results to Google Sheets, Slack, Make, Zapier, n8n or a webhook. Use maxItems and maxPagesPerSearch to cap the cost of each run.
Support
Found a bug or need a field that is not there? Open an issue on the Issues tab with the input you used and the run link.
Related scrapers
- Marktplaats Scraper: Listings, Prices & Sellers
- Gumtree UK Scraper: Listings, Prices & Sellers
- Kleinanzeigen Scraper: Listings, Prices & Sellers
- Vinted Scraper: Listings, Prices & Sellers (All Countries)
- OLX Brazil Scraper: Listings, Prices & Sellers
Found it useful?
A ★ review on this Actor's Apify Store page helps other users find it and tells us what to improve. Issues and feature requests are welcome in the Actor's Issues tab.