OfferUp Listings Scraper
Pricing
from $2.00 / 1,000 product listings
OfferUp Listings Scraper
Scrapes OfferUp search results by keyword, location, and price filters — capturing titles, prices, conditions, images, and locations. Enable full detail mode to also collect descriptions, post dates, seller names, ratings, and verification status.
Pricing
from $2.00 / 1,000 product listings
Rating
0.0
(0)
Developer
FalconScrape
Maintained by CommunityActor stats
2
Bookmarked
67
Total users
7
Monthly active users
12 days ago
Last modified
Categories
Share
OfferUp Listings Scraper
Extract product listings from OfferUp by keyword, location, and price filters. The OfferUp Listings Scraper lets you collect structured marketplace data for price research, inventory tracking, and competitive analysis.
Features
- 🔍 Keyword & Location Search: Search any keyword around a city, ZIP code or exact coordinates, with a radius.
- 🏷️ Rich Listing Data: Capture title, price, condition, images, location, flags (e.g. "Promoted"), and vehicle mileage.
- 📄 Full Detail Mode: Optionally visit each listing page to collect description, post date, seller name, rating, review count, and TruYou verification status.
- 💰 Price Filtering: Set minimum and/or maximum price to focus on your target range.
- 📦 Condition Filter: Restrict results to new items, used items, or all conditions.
- 🚚 Shipping Toggle: Include or exclude listings that ship nationwide.
- 📄 Automatic Pagination: Follows OfferUp's cursor-based pagination to collect as many results as you need.
How It Works
- Enter a search query — keywords like
iphone 14 pro,mountain bike, orsofa. - Set optional filters — location (city, ZIP code or latitude/longitude), radius, price range, condition, and item limit.
- Choose detail level — leave Scrape Full Details off for fast search-result data, or enable it to enrich each listing with description and seller info.
- Run the scraper — results are delivered as structured JSON in the Apify dataset.
Note: OfferUp is only available in the United States. US residential proxies are required and pre-configured by default.
Input
| Field | Type | Default | Description |
|---|---|---|---|
query | string | (required) | Keywords to search for (e.g. iphone 14 pro) |
location | string | — | City or place to search near (e.g. New York, Austin, TX), resolved with OfferUp's own location search |
zipCode | string | — | US ZIP code to search near (e.g. 90012). Overrides location |
latitude / longitude | number | — | Exact search center (e.g. 41.8781 / -87.6298). Overrides zipCode and location |
radiusMiles | integer | 50 | Search radius in miles from the given location (1–500) |
maxItems | integer | 100 | Maximum number of listings to collect (1–10 000) |
priceMin | integer | — | Minimum listing price in USD |
priceMax | integer | — | Maximum listing price in USD |
condition | string | all | Item condition: all, new, or used |
includeShipping | boolean | true | Include listings that ship; disable for local pickup only |
scrapeDetails | boolean | false | Visit each listing page for description, post date, and seller info |
proxyConfiguration | object | US Residential | Proxy settings — US residential proxies are required |
Location precedence: latitude/longitude → zipCode → location. The run's status message and the SUMMARY record in the key-value store show the area that was searched (label, latitude, longitude). If a location can't be found, the run ends with a clear message and nothing is charged. With no location at all, OfferUp picks an area from the proxy IP.
Tip: always set
location,zipCodeorlatitude/longitude. Without one, results come from wherever the proxy IP happens to be (it changes between runs), and some areas have far fewer listings, so largemaxItemsruns can end early.
Results never contain the same listing twice. If OfferUp runs out of new listings before maxItems, the run stops and the status message says so.
Sample Output
Basic mode (scrapeDetails: false)
{"listingId": "6760813b-6fea-3a1a-a5f1-997d0e5f7030","url": "https://offerup.com/item/detail/6760813b-6fea-3a1a-a5f1-997d0e5f7030/","title": "iPhone 16","price": 650,"isFirmPrice": false,"locationName": "New York, NY","conditionText": "Good","imageUrl": "https://images.offerup.com/...","flags": [],"vehicleMiles": null}
Detail mode (scrapeDetails: true)
{"listingId": "7db5e798-118f-32c6-9d1f-65fae3bd6c9f","url": "https://offerup.com/item/detail/7db5e798-118f-32c6-9d1f-65fae3bd6c9f/","title": "iPhone SE 3 128GB unlocked","price": 180,"isFirmPrice": null,"locationName": "Brooklyn, NY","conditionText": "Like new","imageUrl": "https://images.offerup.com/...","flags": [],"vehicleMiles": null,"description": "iPhone SE 3 unlocked 128GB\nImmaculate, 100% battery life","postDate": "about 4 hours ago","sellerName": "Khushbakht Lucky","sellerRating": 4.5,"sellerReviewCount": 20,"sellerIsTruYou": false}
Pricing
This Actor uses Pay Per Result pricing — you only pay for the data you actually receive.
| Mode | Event | Price per 1 000 results |
|---|---|---|
| Basic (search results only) | product-listing | $2.00 |
| Full details (with description & seller info) | item-detail | $15.00 |
Scraping 1 000 listings in basic mode costs $2. Enabling full details costs $15 per 1 000 listings. A run is stopped automatically if you reach a spend cap you configure in the Apify Console.