Wallapop Scraper - Spanish Classifieds by Keyword avatar

Wallapop Scraper - Spanish Classifieds by Keyword

Pricing

from $0.21 / 1,000 listings

Go to Apify Store
Wallapop Scraper - Spanish Classifieds by Keyword

Wallapop Scraper - Spanish Classifieds by Keyword

[Limited Launch Offer $0.25/1K] Wallapop scraper: listings by keyword, category, price and condition with description, images, location and date. Deep paging. No login.

Pricing

from $0.21 / 1,000 listings

Rating

0.0

(0)

Developer

Scrape With Me

Scrape With Me

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Wallapop Scraper — Spanish second-hand listings by keyword, category and price, with no login

Scrape Wallapop listings by keyword or category: title, full description, price, images, city, region and postal code with coordinates, category path, posting and update date, shipping availability, promoted flag and the link. Add as many keywords as you want, filter by price and condition, pick the order (newest first for monitoring) and the point Wallapop should rank around (Madrid, Barcelona, Valencia, Sevilla…). No login, no API key, no browser, and the API reads deep: one search returned more than 10,000 listings.

Why this Wallapop scraper

  • Deep paging. 40 listings per request, page after page: 6,000 iPhone listings took about 3 minutes.
  • Many keywords in one run, each with the same filters; duplicates across keywords are saved (and charged) once.
  • Real filters. Price range, condition (new, as good as new, good, fair, has given it all), category and order (relevance, newest, closest, price low to high or high to low). Only the filters that really change the results are offered.
  • Country filter. Wallapop also shows Italian and Portuguese ads near the search point; keep only ES if you want Spain.
  • Complete rows. Description, three image sizes, location, category path, dates as ISO timestamps, shipping and promoted flags. Only the opaque seller id is kept: no seller names.
  • Cheap and fast. Direct requests, no proxy bill; the scraper switches to a residential proxy by itself only if Wallapop starts refusing requests.

Use cases: Spanish second-hand market data

  • Resellers and flippers: find underpriced items by keyword, newest first, every morning on a schedule.
  • Price research: what a model of phone, bike or console really sells for, by city and condition.
  • Market and category analysis: supply, price level and shipping share of a category.
  • Apps and alerts: a fresh listing feed for a bot, a Telegram alert or a comparison site.
  • Researchers and journalists: second-hand prices and regional differences in Spain.

Input example

{
"keywords": ["iphone 14", "playstation 5"],
"orderBy": "newest",
"minPrice": 100,
"maxPrice": 900,
"conditions": ["new", "as_good_as_new"],
"countries": ["ES"],
"latitude": 41.3874,
"longitude": 2.1686,
"maxResultsPerKeyword": 500
}
FieldWhat it does
keywordsOne search per line. Leave empty with a categoryId to browse a category
categoryIdWallapop category number (17000 bikes, 24200 technology & electronics, 100 cars…); it is the categoryId of any result
orderBymost_relevance, newest, closest, price_low_to_high, price_high_to_low
minPrice / maxPricePrice range in EUR
conditionsnew, as_good_as_new, good, fair, has_given_it_all
countriesKeep listings located in these countries (ES, IT, PT); empty = all
latitude / longitudeThe point Wallapop ranks around (default Madrid); it does not exclude other regions
maxResultsPerKeywordListings per keyword (0 = all)
maxItemsCap for the whole run
imageSize, maxImagesImage link size (small, medium, big) and how many links per listing
proxyConfigurationDefault: none. A residential proxy is used automatically if Wallapop refuses requests

Output example

{
"itemId": "pj94102xo26e",
"url": "https://es.wallapop.com/item/bicicleta-de-montana-conor-xc-20-1310423561",
"title": "Bicicleta montaña 10778",
"description": "Bicicleta de montaña Conor modelo XC 50 en color azul con de …",
"price": 55.0,
"currency": "EUR",
"categoryId": 17000,
"category": "Bicicletas",
"categoryPath": [
"Bicicletas",
"Bicicletas y triciclos",
"Bicicletas de carretera"
],
"city": "Madrid",
"region": "Comunidad de Madrid",
"province": "Madrid",
"postalCode": "28047",
"countryCode": "ES",
"latitude": 40.3885875,
"longitude": -3.7524626,
"createdAt": "2026-10-07T14:52:46Z",
"modifiedAt": "2026-10-15T16:31:58Z",
"reserved": false,
"shippingAvailable": true,
"sellerAllowsShipping": false,
"isRefurbished": false,
"hasWarranty": false,
"isTopProfile": false,
"isPromoted": true,
"sellerId": "x6qy92xleqjy",
"imageCount": 2,
"images": [
"https://cdn.wallapop.com/images/…?pictureSize=W640"
],
"searchLabel": "bici",
"source": "Wallapop",
"scrapedAt": "2026-10-15T17:21:26Z"
}

The run's OUTPUT record lists, per keyword, how many listings were saved, how many pages were read and how many ads were skipped as duplicates or because of the country filter; INPUT_STATUS says whether each keyword was found, empty or could not be checked.

Run it on a schedule and connect it to your tools

Schedule: in Apify Console open Schedules → Create, pick this actor with orderBy: newest and run it every hour or every morning to catch new listings of the products you flip. Each run returns the full, current result set as a new dataset.

Integrations (Actor → Integrations tab, no code):

  • Google Sheets — append every run's listings to a sheet.
  • Make, Zapier, n8n — start the actor from a scenario/zap/workflow and send an alert for new listings.
  • Webhook — get a POST to your endpoint when a run succeeds, then download the dataset.
  • Slack / email — notify your team when a scheduled run finishes.

AI agents (MCP) — Claude, ChatGPT, Cursor, VS Code or any MCP client can run it as a tool: add the Apify MCP server https://mcp.apify.com?actors=kalilfagundes.w/wallapop-scraper (sign in with your Apify account) and ask for the data in plain language. The agent fills the input from the input schema and reads the dataset back.

API — call it from your code (pip install apify-client / npm i apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("kalilfagundes.w/wallapop-scraper").call(run_input={
"keywords": ["iphone 14", "playstation 5"],
"orderBy": "newest",
"countries": ["ES"],
"maxResultsPerKeyword": 200,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["price"], item["city"], item["url"])
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('kalilfagundes.w/wallapop-scraper').call({
keywords: ['iphone 14', 'playstation 5'],
orderBy: 'newest',
countries: ['ES'],
maxResultsPerKeyword: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Pricing

Pay per result, platform usage included:

EventPrice
Listing saved$0.25 per 1,000 listings
Run start$0.002

Example: 10,000 listings ≈ $2.50. Apify subscribers get tier discounts automatically. Set maxItems to cap the cost of a run.

FAQ and limits

  • Does it need a Wallapop login or API key? No. Wallapop has no public API: this reads the same search service the website uses.
  • How many listings can I get? The service pages deep (more than 10,000 for one search in tests). Narrow broad searches by price, condition or category if you want a specific slice.
  • Why do I see Italian listings? Wallapop mixes countries around the search point. Set countries: ["ES"].
  • Why can't I filter by distance or posting date? Those filters did not change the results in testing, so they are not offered. Use orderBy: newest and latitude/longitude instead.
  • Seller data: only an anonymous seller id is saved, never names or phone numbers.
  • Fair use: use the data in line with Wallapop's terms and the GDPR; keep schedules reasonable.

En español

Este actor extrae anuncios de Wallapop por palabra clave o categoría: título, descripción completa, precio, fotos, ciudad, provincia, código postal, fecha de publicación, envío y enlace. Filtra por precio, estado y orden (los más nuevos primero), añade tantas palabras clave como quieras y programa la ejecución para vigilar nuevos anuncios. Sin iniciar sesión, sin clave de API. Exporta a Excel, CSV o JSON. Solo se guarda un identificador anónimo del vendedor.

Feedback

Found a missing field or a keyword that returns nothing? Open an issue on the Actor page and it will be looked at.