Wallapop & Poshmark Scraper - Secondhand Listings, No Login
Pricing
from $0.09 / 1,000 listings
Wallapop & Poshmark Scraper - Secondhand Listings, No Login
Scrape Wallapop (Spain, Italy, Portugal) and Poshmark (US, Canada) listings for any search, newest first: price, brand, size, condition, photos, public seller name and Wallapop location. Only-new mode for monitoring. No login.
Pricing
from $0.09 / 1,000 listings
Rating
0.0
(0)
Developer
Cliqto Media
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Wallapop & Poshmark Scraper searches Wallapop (Spain, Italy, Portugal) or Poshmark (US, Canada) for your search words and returns one clean row per listing, newest first: title, price, brand, size, condition, location, photos, publish time and the seller's public name.
Use it to research secondhand prices or to watch new listings without a login, cookies or an API key. The smallest run is one search with 10 listings: it finishes in a few seconds and costs about $0.002.

Table of contents
- What it does
- Quick start
- Use cases
- Input
- Output
- Pricing and limits
- API, export and integrations
- Troubleshooting
- FAQ
- Support
What it does
The Actor runs the same search you would type in the Wallapop or Poshmark search box and saves the results newest first. Each row is one listing. Both marketplaces use the same output fields, so you can put the rows in one table.
- Wallapop: a whole country (
ES,ITorPT), a large city, or a point with a radius. With Add brand, size, condition and seller on (the default), the Actor also reads each listing page and the seller's public name. - Poshmark: the US or Canada. Brand, size, condition and seller username come with the search results.
Good fit
- Price research: collect asking prices for bikes, phones, clothes or furniture in one country or around one city.
- Monitoring: run on a schedule with Only new since the last run and get only listings published after the previous run.
- Resale and fashion data: brand, size, condition and original price for Poshmark listings; condition and category for Wallapop.
Not a fit / limits
- No seller contact fields. The Actor saves only the seller's public name and profile link, not phone numbers, e-mails or full names. The listing
descriptionis the seller's own text and can contain whatever the seller wrote there. - One marketplace and one search per run. For both marketplaces, start two runs.
- Up to 1,000 listings per run. Poshmark shows at most about 5,000 results for one search.
- Wallapop mixes listings from Spain into searches in Italy and Portugal. The Actor drops them, so a search for a whole country (
IT,PT) can stop early with few results. Use a city and Radius, km instead. - Brand and size exist only in some categories (for example clothes). For other items they are empty.
- Poshmark does not show the seller's city:
location,postalCode,latitudeandlongitudeare empty for Poshmark.
Quick start
- Open the Input tab.
- Keep the prefilled example: Marketplace
wallapop, Search wordsbicicleta, Max listings10. - Click Start.
- Open the Output tab. The Listings view shows title, price, condition, location and publish time.
Expected result: the 10 newest "bicicleta" listings in Spain, in a few seconds.
Use cases
| Buyer job | Input | Output | Key fields | Next step |
|---|---|---|---|---|
| Compare used prices | query, location, priceMin / priceMax | listing row | price, currency, condition, location | Export CSV or Excel |
| Watch new listings | onlyNew on a schedule | only new rows | itemId, createdAt, url | Webhook or integration on run finish |
| Local deals | location: "Madrid", radiusKm | listing row | price, location, latitude, longitude | Map or spreadsheet |
| Fashion resale research | platform: "poshmark", query | listing row | brand, size, price, originalPrice, condition | Dataset API |
Input
Input fields
| Field | Plain name | Type | Required | Default / prefill | Allowed values | Effect |
|---|---|---|---|---|---|---|
platform | Marketplace | string | no | default wallapop | wallapop, poshmark | Which marketplace to search |
query | Search words | string | yes | prefill bicicleta | any text | What you would type in the search box. Use the local language for Wallapop |
location | Location | string | no | Wallapop ES, Poshmark US | Wallapop: ES, IT, PT, a large city or latitude,longitude; Poshmark: US, CA | Where to search |
radiusKm | Radius, km | integer | no | empty = whole country | 1–1000 | Wallapop only: search this far around the city or point |
priceMin | Min price | number | no | empty | 0 or more | Lowest price in the marketplace currency |
priceMax | Max price | number | no | empty | 0 or more | Highest price in the marketplace currency |
maxItems | Max listings | integer | no | default 50, prefill 10 | 1–1000 | Stop after this many saved listings, newest first |
onlyNew | Only new since the last run | boolean | no | false | true / false | Skip listings that an earlier Only-new run of the same search already covered |
includeDetails | Add brand, size, condition and seller (Wallapop) | boolean | no | true | true / false | Wallapop: read each listing page and the seller's public name |
proxyConfiguration | Proxy | object | no | no proxy | Apify Proxy settings | Not needed; use only if your runs get blocked |
Large cities for Wallapop location: Madrid, Barcelona, Valencia, Sevilla, Zaragoza, Málaga, Bilbao, Murcia, Palma, Alicante, Valladolid, Vigo, Granada, Las Palmas, Santa Cruz de Tenerife; Roma, Milano, Napoli, Torino, Palermo, Genova, Bologna, Firenze, Bari, Venezia, Verona, Catania; Lisboa, Porto, Braga, Coimbra, Aveiro, Faro, Funchal. For other places, use latitude,longitude, for example "41.65,-0.88".
Prices are in the marketplace currency: EUR on Wallapop, USD (US) or CAD (Canada) on Poshmark. Rows with the same itemId are saved once per run.
Interacting settings
| When | Input A | Input B | Effective behavior |
|---|---|---|---|
| Search near a place | location (city or point) | radiusKm | Wallapop searches around the place; results are still newest first, not nearest first. Without radiusKm, a city or point searches the whole country |
| Poshmark | platform: "poshmark" | location city or radiusKm | Invalid input: Poshmark has no city or distance search. Use US or CA |
| Price filter | priceMin | priceMax | Both apply; listings without a price are skipped. priceMin must not be higher than priceMax |
| Narrow filter | priceMin / priceMax or IT / PT | many skipped results | The Actor stops early when almost nothing matches, so it does not read hundreds of pages for a few rows. The run summary says so |
| Fast Wallapop run | platform: "wallapop" | includeDetails: false | Faster: listing pages are not read; brand, size, condition and seller fields are empty |
Input examples
Newest listings in a country
{"platform": "wallapop","query": "bicicleta","maxItems": 10}
Expected output: 10 newest bike listings in Spain with price, condition, location, images.
Around a city with a price range
{"platform": "wallapop","query": "sofá","location": "Barcelona","radiusKm": 30,"priceMax": 300,"maxItems": 100}
Expected output: up to 100 sofas within 30 km of Barcelona, 300 EUR or less.
Poshmark monitoring
{"platform": "poshmark","query": "lululemon","location": "US","maxItems": 200,"onlyNew": true}
Expected output: the first run returns the 200 newest listings; each next run returns only listings published since then.
Output
Output fields
| Field | Meaning | Type | Can be empty? | Example |
|---|---|---|---|---|
platform | Marketplace | string | no | wallapop, poshmark |
market | Country searched | string | no | ES, IT, PT, US, CA |
itemId | Listing ID on the marketplace | string | no | nz08qnyl276o |
url | Listing page | string | no | https://www.wallapop.com/item/... |
title | Listing title | string | no | Bicicleta Clásica Negra |
description | Seller's text | string | yes | |
price | Asking price | number | yes | 250 |
currency | Price currency | string | yes | EUR, USD, CAD |
originalPrice | Original retail price given by the seller (Poshmark) | number | yes | 58 |
brand | Brand | string | yes (category-dependent; Wallapop needs details) | lululemon athletica |
size | Size | string | yes (category-dependent) | 8, XL / 46 / 56 |
condition | Condition in plain English | string | yes | As good as new, New with tags |
conditionCode | Condition code from the marketplace | string | yes | as_good_as_new, nwt |
category | Category path | string | yes | Bikes > Bikes & tricycles > Commuter bikes |
availability | Listing status | string | yes | available |
location | City and region (Wallapop) | string | yes; always empty on Poshmark | La Albatalia, Región de Murcia |
postalCode | Postal code (Wallapop) | string | yes | 30009 |
countryCode | Listing country | string | yes | ES |
latitude, longitude | Approximate place (Wallapop) | number | yes | 37.99, -1.16 |
shippingAvailable | Seller ships the item | boolean | yes | false |
sellerName | Seller's public name or username | string | yes | Pablo |
sellerId | Seller ID | string | yes | vjrdq4g2dw6k |
sellerUrl | Seller's public profile | string | yes | https://www.wallapop.com/user/... |
images | Photo links | array | can be [] | |
createdAt | When the listing was published (UTC) | string | yes | 2026-10-15T09:09:48.035Z |
updatedAt | Last change on the marketplace (UTC) | string | yes | |
searchQuery | Your search words | string | no | bicicleta |
position | Place in the search results | integer | no | 1 |
detailsFetched | Listing page was read | boolean | no | true |
source | Where the row came from | string | no | api.wallapop.com |
fetchedAt | When the Actor read the listing (UTC) | string | no |
Output entities and surfaces
| Situation | Where to look | What you see |
|---|---|---|
| Normal run | Dataset (Listings view) | One row per listing |
| No listings found | Dataset is empty; RUN_SUMMARY status NO_RESULTS | The run succeeds; check the search words, place and filters |
| Only new, nothing new | Dataset is empty; RUN_SUMMARY status NO_RESULTS | Message "No new listings since the last onlyNew run" |
| Stopped early | RUN_SUMMARY status PARTIAL, reason CHARGE_LIMIT, TIME_LIMIT, LOW_YIELD or PAGE_LIMIT | Rows saved before the stop are kept |
| Marketplace error | RUN_SUMMARY status PARTIAL (reason SOURCE_ERROR) or ERROR | The run fails; saved rows are kept |
| Wrong input | RUN_SUMMARY status INVALID_INPUT | The run fails at once with a clear message |
RUN_SUMMARY in the run's key-value store also has counts: listings saved, pages read, details read, and listings skipped as duplicates, already seen, outside the price range or from another country.
Output example
One Wallapop row from a bicicleta search in Spain (trimmed: 1 of 4 photos and the description):
{"platform": "wallapop","market": "ES","itemId": "nz08qnyl276o","url": "https://www.wallapop.com/item/bicicleta-clasica-negra-1313302151","title": "Bicicleta Clásica Negra","description": "Bicicleta de estilo clásico con un diseño atemporal. ...","price": 250,"currency": "EUR","originalPrice": null,"brand": null,"size": null,"condition": "Fair condition","conditionCode": "fair","category": "Bikes > Bikes & tricycles > Commuter bikes","availability": "available","location": "La Albatalia, Región de Murcia","postalCode": "30009","countryCode": "ES","latitude": 37.996965516947384,"longitude": -1.1657049559182022,"shippingAvailable": false,"sellerName": "Pablo","sellerId": "vjrdq4g2dw6k","sellerUrl": "https://www.wallapop.com/user/pablo-424599619","images": ["https://cdn.wallapop.com/images/10420/lp/wm/__/c10420p1313302151/i6798702660.jpg?pictureSize=W800"],"createdAt": "2026-10-15T09:09:48.035Z","updatedAt": "2026-10-15T09:10:44.801Z","searchQuery": "bicicleta","position": 300,"detailsFetched": true,"source": "api.wallapop.com","fetchedAt": "2026-10-15T09:43:09.602Z"}
null means the marketplace does not show that value for this listing. Here the bike has no brand or size, which is normal outside fashion categories.
Pricing and limits
Pricing unit
You pay per run start and per saved listing:
| Event | Price (free plan) |
|---|---|
| Actor start | $0.001 per run |
| Listing | $0.0001 ($0.10 per 1,000) |
Higher Apify plans get lower listing prices (down to $0.085 per 1,000). Wallapop details (brand, size, condition, seller) cost nothing extra. Platform usage (compute, storage) is included; you do not pay it separately.
- A run with no matching listings, an invalid input, or an Only new run with nothing new costs only the start ($0.001).
- Duplicates, listings already delivered (Only new), and listings dropped by the price or country filter are not charged.
- Set Max total charge in run options to cap a run. The Actor stops before the cap and keeps what it saved.
Cost examples
| Scenario | Input | Rows | Cost on the free plan |
|---|---|---|---|
| Quick test (prefill) | bicicleta, 10 listings | 10 | $0.002 |
| Small batch | 100 listings | 100 | $0.011 |
| Market snapshot | 1,000 listings | 1,000 | $0.101 |
| Monitor, nothing new | Only new | 0 | $0.001 |
Limits
| Limit | Value |
|---|---|
| Listings per run | 1,000 |
| Speed, Wallapop with details | 1,000 listings in about 60 seconds (measured) |
| Speed, Poshmark | 1,000 listings in about 15 seconds (measured) |
| Poshmark results per search | about 5,000 (the marketplace cap) |
| Memory | 256 MB is enough for 1,000 listings |
API, export and integrations
- Export: download the dataset as JSON, CSV, Excel, XML or HTML from the Output tab, or with the dataset items API.
- API: start the Actor with the Apify API or the Apify client for JavaScript or Python; send the same JSON as in the Input examples.
- Scheduling: create a schedule for a saved task with
onlyNew: true. Each run then returns only new listings. The Only-new history is kept in your account in the key-value storesecondhand-listings-seen. - Webhooks and no-code: start a webhook, Zapier, Make or n8n flow when the run finishes, and read new rows from the dataset.
Use with AI agents (MCP)
- MCP server with only this Actor:
https://mcp.apify.com?tools=cliqtomedia/secondhand-listings-scraper - Smallest useful input:
{"platform": "wallapop", "query": "bicicleta", "maxItems": 10} - Key output fields:
title(what is offered),price+currency(asking price),condition(item state),location(city and region, Wallapop only),createdAt(published),url(listing page). - Typical run: a few seconds for 10 listings, about $0.002 on the free plan. Up to 1,000 listings per run; one marketplace per run; Poshmark accepts only
USorCAas location.
Troubleshooting
The run finished with 0 rows
Symptom: the dataset is empty and RUN_SUMMARY status is NO_RESULTS.
Likely reason: no listing matches the search words and filters, or, with Only new, nothing new was published since the last run.
Check: run the same search on the marketplace website.
Action: use the local language on Wallapop (bicicleta, not bike), remove a price filter or widen the radius.
Fewer rows than Max listings, reason LOW_YIELD
Symptom: RUN_SUMMARY status PARTIAL or NO_RESULTS with reason LOW_YIELD and a warning about filters.
Likely reason: the price filter or the country (IT, PT) drops almost every result, so the Actor stopped instead of reading many pages for a few rows.
Action: search around a city with radiusKm, widen the price range, or use more specific search words.
The run stopped with INVALID_INPUT
Symptom: the run fails at once with a message about the location or radius.
Likely reason: a city that is not in the list, a Poshmark search with a city or radius, or priceMin above priceMax.
Action: use latitude,longitude for other places; use US or CA for Poshmark.
Wallapop rows have no brand, size or condition
Symptom: detailsFetched is false.
Likely reason: Add brand, size, condition and seller is off, or the listing was sold or removed a moment before its page was read.
FAQ
Do I need a Wallapop or Poshmark account, cookies or a proxy?
No. The Actor reads public search results and listing pages. No login, cookies or proxy are needed.
Does it collect seller phone numbers or e-mails?
No contact fields. It saves only the seller's public name or username and profile link. The description field is the seller's own listing text, so it can include contact details if the seller typed them.
How fresh is the data?
Each row is read during the run; fetchedAt shows when. createdAt is the publish time on the marketplace. Only-new mode compares publish times: a listing that the marketplace shows in search with a long delay after publishing can be missed by the next Only-new run. The first Only-new run of a search sets the starting point: listings older than the oldest one it returned (for example when it stops at maxItems) count as already known and are not returned later.
Can I search Wallapop in Italy or Portugal?
Yes: set location to IT, PT or a city there. Wallapop also returns listings from Spain for these searches; the Actor leaves them out, so check skippedOtherCountry in RUN_SUMMARY. A city with a radius gives the best results.
Is scraping Wallapop and Poshmark allowed?
The Actor reads only public data at a gentle pace and does not collect contacts. The marketplaces' terms of use restrict automated collection; you are responsible for using the data in line with those terms and the laws that apply to you, including privacy laws.
Support
For a bug, a question or a feature request, open an issue in the Issues tab of this Actor. Include the run ID and the input you used. Do not post API tokens or other private data.