Wallapop Scraper — Listings, Prices & Locations (ES, IT, PT)
Pricing
$1.50 / 1,000 listings
Wallapop Scraper — Listings, Prices & Locations (ES, IT, PT)
Scrape Wallapop second-hand listings in Spain, Italy and Portugal by keyword and city: title, price, description, city, postal code, coordinates, category, photos, shipping, reserved and refurbished flags, posted date and link. Price, distance and sort filters. $1.50 per 1,000 listings.
Pricing
$1.50 / 1,000 listings
Rating
0.0
(0)
Developer
Technical Dost Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Wallapop Scraper collects second-hand listings from Wallapop, the largest resale marketplace in Spain, also used in Italy and Portugal, without an account or login. Search by keyword around any city, filter by price and distance, sort by newest, price or distance, and get each listing's title, price, description, city, postal code, coordinates, full category path, photos, shipping availability, reserved and refurbished flags, top-seller badge, posted and updated dates and link.
What you get
- Search any keyword around any city or postal code in Spain, Italy or Portugal, or exact coordinates.
- Filters: minimum and maximum price, maximum distance in km.
- Sort by relevance, newest, lowest or highest price, or closest.
- Full listing data: price, currency, description, city, region, postal code, coordinates, category path, all photos.
- Flags: shipping available, reserved, refurbished, warranty, top-profile seller and promoted (bumped).
- Thousands of listings per search, duplicates removed; $1.50 per 1,000 listings.
How to use Wallapop Scraper
- Enter Search terms such as
iphone 15,bicicletaorps5. - Set Location (for example
Madrid,Barcelona,MilanoorLisboa) and, optionally, a price range and maximum distance. - Choose Sort by and how many listings per search, then run the Actor.
- Export to Excel, CSV or JSON, or schedule it hourly with Newest to catch new deals.
Input example
{"searchQueries": ["iphone 15"],"location": "Madrid","maxItemsPerSearch": 100,"sortBy": "newest"}
All fields are described in the Input tab.
Output example
{"id": "e65qw7yyom6o","title": "iPhone 15 Pro Azul","price": 500,"currency": "EUR","description": "iPhone 15 Pro en color azul con acabado mate…","city": "Manresa","region": "Cataluña","province": "Barcelona","postalCode": "08242","countryCode": "ES","latitude": 41.7333,"longitude": 1.8073,"category": "Technology & electronics > Phones: mobiles & smartwatches > Smartphones","categoryId": 24200,"shippingAvailable": true,"reserved": false,"isRefurbished": false,"hasWarranty": false,"isTopProfileSeller": false,"isBumped": false,"imageUrls": ["https://cdn.wallapop.com/images/10420/example.jpg?pictureSize=W800"],"sellerId": "qzm44wn4oozv","createdAt": "2026-10-22T17:24:13.343Z","modifiedAt": "2026-10-22T17:24:13.343Z","url": "https://es.wallapop.com/item/iphone-15-pro-azul-1316000000","searchKeyword": "iphone 15","scrapedAt": "2026-10-22T18:00:00.000Z"}
Output fields
| Field | Description |
|---|---|
id | Wallapop listing ID. |
title | Listing title. |
price | Asking price. |
currency | Currency (EUR). |
description | Seller's description. |
city | City. |
region | Region. |
province | Province. |
postalCode | Postal code. |
countryCode | ES, IT or PT. |
latitude | Approximate latitude. |
longitude | Approximate longitude. |
category | Category path. |
categoryId | Top category ID. |
shippingAvailable | Seller ships the item. |
reserved | Marked as reserved. |
isRefurbished | Refurbished item. |
hasWarranty | Sold with warranty. |
isTopProfileSeller | Seller has a top profile. |
isBumped | Promoted listing. |
imageUrls | Photo URLs. |
sellerId | Public seller ID. |
createdAt | Posted, ISO 8601. |
modifiedAt | Last updated, ISO 8601. |
url | Listing URL. |
searchKeyword | Search term that found it. |
scrapedAt | When the row was scraped. |
Export results as JSON, CSV, Excel, XML or HTML, or read them with the API.
Use cases
- Resellers and flippers: catch underpriced items the moment they are posted.
- Price research: real second-hand prices for phones, consoles, bikes, furniture or cars in Spain and Italy.
- Recommerce and refurbishers: track supply and prices of used devices by city.
- Brands: monitor resale of your products and spot counterfeits.
- Market studies of the Spanish second-hand economy by category and region.
How much does Wallapop Scraper cost?
This Actor uses pay-per-event pricing: $0.0015 per listing ($1.5 per 1,000). Platform usage is included. Searches with no results cost nothing.
Set Maximum cost per run in the run options to cap your spend; the Actor stops when the limit is reached.
Use Wallapop Scraper with AI agents (MCP)
Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through the hosted Apify MCP server:
$claude mcp add --transport http apify "https://mcp.apify.com/?tools=technicaldost/wallapop-scraper-listings-prices" --header "Authorization: Bearer YOUR_APIFY_TOKEN"
Or in a JSON MCP config:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=technicaldost/wallapop-scraper-listings-prices","headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }}}}
The tool is named technicaldost--wallapop-scraper-listings-prices. Ask your agent, for example, to "run Wallapop Scraper with {"searchQueries": ["iphone 15"], "location": "Madrid", "maxItemsPerSearch": 100, "sortBy": "newest"}".
Run Wallapop Scraper via API
curl -X POST "https://api.apify.com/v2/acts/technicaldost~wallapop-scraper-listings-prices/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries": ["iphone 15"], "location": "Madrid", "maxItemsPerSearch": 100, "sortBy": "newest"}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("technicaldost/wallapop-scraper-listings-prices").call(run_input={"searchQueries": ["iphone 15"], "location": "Madrid", "maxItemsPerSearch": 100, "sortBy": "newest"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('technicaldost/wallapop-scraper-listings-prices').call({"searchQueries": ["iphone 15"], "location": "Madrid", "maxItemsPerSearch": 100, "sortBy": "newest"});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Integrations
Schedule runs (daily, hourly) in Apify Console and send results to Google Sheets, Slack, Make, Zapier, n8n, Airbyte or your own webhook.
FAQ
Which countries are covered?
Spain, Italy and Portugal: the countries where Wallapop operates. Results come from around the location you set.
How do I get only new listings?
Set Sort by to Newest and schedule the Actor every hour or every few minutes.
Does it return seller names or phone numbers?
No. It returns the public seller ID only, and no personal contact data.
Why are some results not in exact price order?
Sorting is done by Wallapop itself, and promoted listings can appear first. Price sorting works best in Spain; for exact price ranges, set Minimum and Maximum price, then sort the dataset.
Can I filter by condition or shipping?
Not as a search filter. Each listing has shippingAvailable, reserved, refurbished and warranty fields you can filter on in the dataset.
How many listings can I get?
Up to 5,000 per search term. Add more search terms or locations for more.
Is it legal to scrape this data?
The Actor collects publicly available information only and does not log in or bypass access controls. Use the data in line with the website's terms and the laws that apply to you, especially when processing personal data.