Wallapop Scraper — Listings, Prices & Sellers avatar

Wallapop Scraper — Listings, Prices & Sellers

Pricing

from $0.20 / 1,000 listings

Go to Apify Store
Wallapop Scraper — Listings, Prices & Sellers

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

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Categories

Features

Limited permissions

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?

FieldDescription
itemId, legacyId, urlWallapop's item id (e.g. pj94opempv6e), the numeric id in the web address, and the listing URL
title, descriptionTitle and the seller's description text
price, currency, previousPrice, discountPercentPrice (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, subcategoryIde.g. "Bicicletas", 17000, "Bicicletas > Bicicletas y triciclos > MTB", "MTB", 10214
availability, isReserved, isSoldavailable, reserved, sold or removed; sold / removed are known when details are fetched
city, postalCode, province, region, countryCodee.g. "Móstoles", "28937", "Madrid", "Comunidad de Madrid", "ES"
latitude, longitude, locationPrecisionThe listing's map point rounded to about 1 km (approximate); a professional seller's exact point with details on (exact)
sellerId, sellerIsTopProfileSeller id and Wallapop's "top profile" badge
sellerName, sellerType, sellerVerified, sellerRating, sellerReviewCount, sellerSoldCount, sellerItemsPublished, sellerRegisteredAt, sellerCity, sellerUrlThe 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, itemIsShippableWhether the seller ships (Wallapop Envíos) and whether the item can be shipped at all
isRefurbished, hasWarranty, isBumped, bumpTypeRefurbished / warranty badges and paid promotion (city, zone, country)
attributesCar 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, propertyTypeThe same attributes as typed columns when the listing has them
views, favorites, hashtags, characteristics, itemTypeView and favourite counts, hashtags, condition text and item type (consumer_goods, car, ...) with details on
postedAt, modifiedAtPosting and last-modification time, ISO 8601 UTC
photos, photoCount, thumbnailUrlAll photos (800 px) and a thumbnail
searchTerm, searchUrl, position, scrapedAt, detailsFetchedThe search the listing came from, its rank in that search, when it was scraped, whether details were fetched

How to scrape Wallapop listings

  1. Type one or more Search terms (one per line), as in the Wallapop search box: bicicleta, iphone 15, ps5.
  2. 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.
  3. 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.
  4. 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.

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.

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.

⌂ 换网址