Wallapop Scraper — Phones & Battery Health avatar

Wallapop Scraper — Phones & Battery Health

Pricing

from $1.00 / 1,000 listings

Go to Apify Store
Wallapop Scraper — Phones & Battery Health

Wallapop Scraper — Phones & Battery Health

Searches Wallapop for used phones and keeps only listings that clear a battery-health floor you set. Reads battery health, screen and battery replacement, price, distance and shipping from each ad, and drops anything advertised as damaged.

Pricing

from $1.00 / 1,000 listings

Rating

0.0

(0)

Developer

reventadata

reventadata

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Unofficial. This Actor is not affiliated with, authorised by, endorsed by, or in any way officially connected to Wallapop. "Wallapop" is a trademark of its respective owner and is used here only to describe what this tool reads. It reads the same public pages a browser does.

Wallapop Phone Finder searches Wallapop, Spain's largest second-hand marketplace, for used phones, and returns only the listings worth opening. It reads each seller's own Spanish text, pulls out the stated battery health, flags replaced screens and batteries, and throws away cracked screens, dead units, parts sales, phone cases and repair-shop adverts before anything reaches your dataset.

This is a phone tool, not a general Wallapop search. The filters are second-hand phone vocabulary. Searching bicycles or guitars will silently drop good listings unless you turn excludeAccessories off.

Optional: it can also read a second website. Switch on benchmarkAgainstShop and the Actor makes one extra request per keyword to Cash Converters, a Spanish second-hand chain, to work out what the same phone costs from a shop. It is off by default, it only ever adds columns, and it never removes a listing. If that lookup fails, your Wallapop results are unaffected and the run says so.

What does Wallapop Phone Finder do?

A normal Wallapop search for a used phone is mostly noise. Sort by price and the first three pages are €1 silicone cases. Filter by price and you still get "for parts", "screen cracked", and shops advertising battery replacements. This Actor removes all of that, and adds the one field that actually decides a second-hand phone purchase — battery health — which Wallapop does not expose as a filter at all.

It calls Wallapop's own JSON search endpoint, so results are the same data the website shows, not a fragile HTML scrape.

Why use Wallapop Phone Finder?

  • Buy a used phone without reading 200 adverts. Set a battery floor and a price cap.
  • Track prices for a model over time by scheduling daily runs.
  • Spot new listings early — schedule a daily run and sort the dataset by createdAt.

How to use Wallapop Phone Finder

  1. Enter one or more search keywords, for example iphone 13 mini.
  2. Set near latitude/longitude and a radius for the local pass.
  3. Set minimum price above zero. This matters more than it sounds — see Tips.
  4. Set a maximum price and minimum battery health, for example 85.
  5. Leave proxy on Apify Proxy. Optional, but it spreads out bigger sweeps.
  6. Click Start and read the Matches table.

Input

FieldTypeWhat it does
searchQueriesarrayOne search per keyword, repeated around every origin.
citiesarrayOrigins for pass 2. Search origins, not filters — more means wider coverage.
searchNearbybooleanPass 1: search close to home and keep anything inside the radius.
nearLatitude / nearLongitudenumberCentre of the local search. Defaults to Madrid.
radiusKmintegerEnforced by Wallapop, and re-checked here to fill in distanceKm.
searchAllSpainWithShippingbooleanPass 2: sweep the rest of the country from 12 city origins.
requireShippingbooleanWhether pass 2 keeps only sellers who post. On by default. Off shows every distant listing; sellerAllowsShipping still tells you which is which.
minPrice / maxPriceintegerPrice band in EUR.
minBatteryintegerDrops listings below this stated battery health.
allowUnknownBatterybooleanKeep listings that never mention battery health.
excludeDamagedbooleanDrops cracked screens, dead units, parts sales.
excludeAccessoriesbooleanDrops cases, protectors, spare parts, repair adverts.
conditionsarrayWallapop's own condition filter, server-side. One extra request per condition.
benchmarkAgainstShopbooleanAdd a shop reference price from Cash Converters, a chain that grades its own stock and prices identically nationwide. Off by default; one extra request per keyword.
requireKeywordMatchbooleanDrops listings whose title lacks a word of your query. Leave on.
maxItemsintegerHard cap on rows for the whole run.
orderBystringSort order. Leave on relevance — newest narrows the feed sharply.
proxyConfigurationobjectOptional. Leave as Apify Proxy.
{
"searchQueries": ["iphone 13 mini"],
"searchNearby": true,
"nearLatitude": 40.4168,
"nearLongitude": -3.7038,
"radiusKm": 100,
"searchAllSpainWithShipping": true,
"requireShipping": true,
"minPrice": 90,
"maxPrice": 190,
"minBattery": 85,
"conditions": ["as_good_as_new"],
"excludeDamaged": true,
"proxyConfiguration": { "useApifyProxy": true }
}

Output

{
"stage": "shipping",
"batteryHealth": 87,
"batteryReplaced": false,
"shopPriceFrom": 283.95,
"percentOfShopPrice": 60,
"savingVsShop": 113.95,
"screenReplaced": false,
"distanceKm": 308.2,
"price": 170,
"currency": "EUR",
"title": "iPhone 13 mini 128GB negro",
"description": "- Capacidad batería al 87%\n- Color negro (medianoche)\n…",
"city": "Coslada",
"region": "Comunidad de Madrid",
"postalCode": "28820",
"reserved": false,
"sellerAllowsShipping": true,
"isRefurbished": false,
"hasWarranty": false,
"createdAt": 1755600000000,
"url": "https://es.wallapop.com/item/iphone-13-mini-128gb-negro-1292117598",
"imageUrl": "https://cdn.wallapop.com/images/…",
"matchedKeyword": "iphone 13 mini"
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Data fields

FieldMeaning
stageWhich pass found it: nearby or shipping.
batteryHealthPercentage parsed from the seller's text. null if never stated.
batteryReplacedThe seller says the battery is non-original or was swapped. Read it next to batteryHealth: an aftermarket battery often reports 100% while performing worse than an original at 88%. false means not stated, not confirmed original.
screenReplacedThe seller says the screen is new or was replaced. "Pantalla nueva" is ambiguous between a pristine screen and a swapped one, so this is a prompt to read the advert, not a verdict.
shopPriceFrom / shopPriceMedian / shopCheapestGrade / shopUnitsSeenWhat the same phone costs at Cash Converters right now. A reference, never a filter.
savingVsShop / percentOfShopPriceThe gap to that shop price. A listing far below the trade price is what you are hunting for — and also what a scam looks like. Read it with batteryReplaced and screenReplaced, not on its own.
distanceKmDistance from your near-point, computed here.
price / currencyAsking price.
title / descriptionThe seller's own words, unmodified.
city / region / postalCodeApproximate location Wallapop publishes.
reservedTrue if the seller already marked it reserved for someone.
sellerAllowsShippingWhether this seller posts. Wallapop's item_is_shippable is about the category, not the seller.
isRefurbished / hasWarrantyWallapop's own flags.
createdAtListing creation timestamp, milliseconds.
url / imageUrlDirect links.
matchedKeywordWhich of your keywords found it.

How much does it cost to scrape Wallapop?

Pricing is pay-per-event: a charge when the run starts, and a charge per result written to the dataset. You are billed for what you get, not for time.

For scale, the underlying compute of the default sweep (12 origins, one keyword) measures around $0.008, and a 20-keyword sweep across all 12 cities — 240 requests, five minutes — measures $0.021.

Two things multiply that: each extra keyword, and each entry in conditions — Wallapop takes one condition per request, so selecting three conditions triples the requests. The run log prints the planned feed count before each pass.

Tips

  • Always set minPrice above zero. Wallapop's cheapest results are accessories and repair services. This single setting removes most of the noise before the filters even run.
  • cities are search origins, not location filters. Results still come from all over Spain. One feed is capped at 40 items, so adding origins is how you widen coverage.
  • Use conditions: ["as_good_as_new"] when the phone has to look new. Wallapop applies it server-side, so the feed's 40 slots are spent on candidates instead of being filtered away afterwards.
  • Keep the query short. Every word of it must appear in the title, so iphone 13 mini 128gb drops listings that only mention the capacity in the description. Search iphone 13 mini and let the other filters do the narrowing.
  • Turn on allowUnknownBattery if you get too few results. Most sellers never state battery health, and those listings are dropped by default when a floor is set.
  • Schedule it daily and sort the dataset by createdAt to see only what is new.

FAQ and limitations

Why does it drop listings Wallapop returned? Wallapop's keyword search is fuzzy — a search for iphone 13 mini also returns iPhone 8s, iPhone 11s and multi-model shop adverts. requireKeywordMatch keeps only titles containing every word of your query.

Is the battery health reliable? No — it is whatever the seller typed. Treat it as a shortlist, not a fact. Always ask for a photo of Settings → Battery → Battery Health before paying.

Is a proxy required? No. Wallapop's endpoint rejects any request missing the X-DeviceOS header, which this Actor always sends; the IP itself is not the problem. A proxy is still useful for spreading out a large sweep.

Does it paginate? No. The endpoint caps a feed at 40 items and rejects an offset parameter. Coverage comes from sweeping multiple origins and keywords instead.

Legality. This Actor reads only public listing data that Wallapop serves to any visitor. It stores no personal data beyond the seller-supplied text shown on a public advert. You are responsible for using the output in line with Wallapop's Terms of Service and applicable law.