OfferUp Scraper | Listings, Prices and Sellers avatar

OfferUp Scraper | Listings, Prices and Sellers

Pricing

from $1.70 / 1,000 listings

Go to Apify Store
OfferUp Scraper | Listings, Prices and Sellers

OfferUp Scraper | Listings, Prices and Sellers

OfferUp scraper for US marketplace listings: search by keyword and ZIP code or city, get price, condition, description, photos, distance, seller rating, items sold, phone and address, plus VIN, mileage and title status on cars. 100 listings in 41 seconds, 43 fields each, no OfferUp account.

Pricing

from $1.70 / 1,000 listings

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

OfferUp Scraper | US Marketplace Listings, Sellers and Car Data (2026)

OfferUp listings, 43 fields each, from any keyword.

From SilentFlow. Creators of Facebook Search Scraper and JD Products Scraper (#1 for โ€œjd scraperโ€ in Apify Store search), with 930,000+ combined lifetime runs.

Every OfferUp listing around any US ZIP code or city, as one complete row: the full listing, the seller's track record and contact, and the full vehicle record on cars. 100 listings in 41 seconds from one keyword and one ZIP code.

Why choose this actor?

Opening OfferUp listings one by one to see if the seller has ever sold anything? Copying a dealer's phone number from each car page? Running the same search again and again for every city you buy in?

  • The seller's track record and contact on every row. Each row carries how many items the seller has sold (sellerItemsSold) and bought, how fast they answer (sellerResponseTime), and, when the seller publishes them, their phone (sellerPhone) and street address (sellerAddress). In our default run (iphone 15 around New York 10001), 88 of the 100 rows came from sellers with past sales (median 262 items sold, up to 2,589), 58 carried the response time, 32 the seller's phone and 34 a street address. You call the store with 2,062 sales first, and skip the account created last week.
  • A seller's whole inventory from one profile link. Paste offerup.com/p/<seller> and get every listing that seller has, sold items included, each with its full detail. A San Diego car dealer's profile gave 57 listings in 24 seconds, 5 of them already sold, with VIN, mileage, phone, website and showroom address. Watch a competitor's stock or a reseller's sold prices without scrolling their profile.
  • A radius in miles and the distance on every row. Set how far around each ZIP code or city to look (radiusMiles), and every row comes back with distanceMiles, its straight-line distance from the place you searched. In our default run, all 100 rows carried it, 37 of them within 10 miles of 10001; around Los Angeles and Chicago with a 20-mile radius, 400 furniture rows came back, the farthest at 21.1 miles. Sort by distance and start with what you can pick up today.

Try OfferUp Scraper free

Try your first 100 listings

Paste this input in the Input tab, or keep the prefilled form, and press Start:

{
"keywords": ["iphone 15"],
"locations": ["10001"]
}

You get 100 iPhone 15 listings within 30 miles of New York 10001, each read from its own listing page: title, price, condition, full description, category path, every photo, posting date, city, state, ZIP code and coordinates, the distance from 10001 in miles, and the seller's name, rating, reviews, items sold, response time, join date, business status, phone and address when published. That is 100 rows in 41 seconds in our run, from 22 different towns, with 12 price drops already computed. Swap the keyword for what you buy or sell, and the ZIP code for your market.

The Apify Free plan is enough to try it: no credit card, no OfferUp account, nothing to install.

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it full context about this scraper:

You have access to the OfferUp Scraper on Apify: silentflow/offerup-scraper
It reads public listings from OfferUp (offerup.com, United States only) without any OfferUp account.
Every row is one listing, read from its listing page.
Input (no field is required; give at least one keyword, one OfferUp address, or a category):
- keywords (array of strings): what to search, one keyword per line (iphone 15, sectional sofa, toyota tacoma)
- startUrls (array of strings): offerup.com addresses or IDs: a search URL with its filters
(offerup.com/search?q=...&PRICE_MAX=...), a category page (offerup.com/c/cars-and-trucks),
a listing (offerup.com/item/detail/<uuid>) or its uuid, a seller profile (offerup.com/p/<number>)
or the seller's number (whole inventory, sold items included)
- locations (array of strings, default ["10001"]): US ZIP codes or cities ("Austin, TX") or "lat,lon";
every keyword runs once per place
- radiusMiles (integer, default 30): search radius around each place
- maxItems (integer, default 100): stop after this many listings in total
- category (string): an OfferUp category id (5.1), slug (cars-and-trucks) or name (Furniture, Golf clubs)
- minPrice, maxPrice (integer, USD)
- condition (array): new, open_box, reconditioned, used, for_parts, other
- sort (string, default relevance): relevance, newest, closest, price_asc, price_desc
- postedWithinHours (integer): only listings posted in the last N hours, newest first
Output, one row per listing (67 fields), null when OfferUp has no value:
- id, url, title, description, condition, category, categoryPath, categoryId, attributes (object)
- status (listed, sold...), isFirmPrice, isGoodDeal
- price, originalPrice, priceDropPercent, currency (USD)
- sellerId, sellerName, sellerUrl, sellerRating, sellerReviewsCount, sellerItemsSold, sellerItemsPurchased,
sellerResponseTime, sellerJoinedAt, sellerLastActive, sellerIsVerified, sellerIsBusiness, sellerIsDealer,
sellerPhone (E.164), sellerWebsite, sellerAddress, sellerAvatarUrl
- vehicleYear, vehicleMake, vehicleModel, vehicleTrim, vehicleMiles, vehicleVin, vehicleTitleStatus,
vehicleTransmission, vehicleDrivetrain, vehicleFuelType, vehicleBody, vehicleColor, vehicleCylinders,
vehicleMpgCity, vehicleMpgHighway, vehicleHistoryReportUrl (vehicle listings only)
- locationName, city, state, zipCode, latitude, longitude, distanceMiles (from the searched place)
- isLocalPickup, isShippingAvailable, postedAt, updatedAt (RFC 3339 UTC)
- imageUrl, images (array), imagesCount, videoUrl
- searchQuery, searchLocation, scrapedAt
Use apify-client for Python or JavaScript, or call the actor through the Apify API.

How to scrape OfferUp listings

Get every iPhone 15 for sale within 10 miles of Manhattan

{
"keywords": ["iphone 15"],
"locations": ["10001"],
"radiusMiles": 10,
"maxItems": 150
}

The simplest run: one keyword, one ZIP code, a tighter radius. Sort the dataset by distanceMiles to see what you can pick up today, or by sellerItemsSold to buy from sellers with a history.

Find used furniture under 500 dollars posted this week in two cities

{
"keywords": ["sectional sofa", "dining table"],
"locations": ["Los Angeles, CA", "60601"],
"radiusMiles": 20,
"category": "Furniture",
"maxPrice": 500,
"condition": ["used", "new"],
"postedWithinHours": 168,
"maxItems": 200
}

Two keywords times two places, limited to OfferUp's Furniture category, under 500 dollars, used or new, posted in the last 7 days. Results come newest first and each search stops once listings get older than the cutoff.

Source private-seller Toyotas from 2015 or newer around Austin

{
"startUrls": [
"https://offerup.com/search?q=toyota&cid=5.1&SELLER_TYPE=C2C&VEH_YEAR_MIN=2015&zipcode=78701"
],
"maxItems": 100
}

Build the search on offerup.com with the car filters you want (make, year, mileage, dealer or private seller), copy the address and paste it. In our run, this exact URL gave 100 Toyotas from 2015 to 2025 in 41 seconds, 96 from private sellers, with the title status on 68 of them (52 clean, 10 rebuilt, 4 salvage, 2 with a lien), the mileage on 71 and the distance from Austin on all 100.

Input parameters

ParameterTypeDefaultWhat it does
keywordsarray of stringsprefilled iphone 15What to search, one keyword per line. Each keyword runs in every place.
startUrlsarray of stringsnoneOfferUp addresses or IDs: search URLs with their filters, category pages, listings, seller profiles.
locationsarray of strings10001US ZIP codes, cities (Austin, TX) or lat,lon. Each keyword runs once per place.
radiusMilesinteger30How far around each place to look, in miles.
maxItemsinteger100Stop after this many listings across all searches.
categorystringanyOne OfferUp category, picked from the list or typed by name, slug or id. Alone, it lists that whole category.
minPriceintegernoneOnly listings priced at or above this amount in USD.
maxPriceintegernoneOnly listings priced at or below this amount in USD.
conditionarrayanynew, open_box, reconditioned, used, for_parts, other. Several combine.
sortstringrelevancerelevance, newest, closest, price_asc, price_desc.
postedWithinHoursintegeranyOnly listings posted in the last N hours; results then come newest first.

Accepted formats. A place is a 5-digit ZIP code (94103, 94103-1234 is read as 94103), a city with or without its state (Austin, TX, los angeles) or coordinates (30.2672,-97.7431). A start entry is any of:

  • a search URL: https://offerup.com/search?q=sofa&PRICE_MAX=300&CONDITION=USED
  • a category page: https://offerup.com/c/cars-and-trucks
  • a listing: https://offerup.com/item/detail/d394c32f-c270-3d91-8fdd-9973f4b0ec71 or the bare ID d394c32f-c270-3d91-8fdd-9973f4b0ec71
  • a seller profile: https://offerup.com/p/53080967 or the bare number 53080967

Filters written in a pasted URL win over the form filters for that URL. A search URL that carries its own ZIP code or coordinates runs there only; one without a place runs in every place of locations. A category is accepted as an id (5.1), a slug (cars-and-trucks), a name (Cars & Trucks, Golf clubs) or a path (Vehicles > Cars & Trucks): all 1,244 OfferUp categories can be typed, the 151 main ones are in the list.

What data can you extract from OfferUp?

Each row is one OfferUp listing with 67 fields, grouped the way you read them:

GroupFields
Identityid (OfferUp's listing ID), url (permanent listing address), title
Listingdescription (full text), condition (as the seller declared it), category, categoryPath, categoryId, attributes (brand, model, storage, size, color, options... when the seller filled them), status (listed, sold), isFirmPrice, isGoodDeal
Priceprice and currency (USD), originalPrice and priceDropPercent when the seller lowered the price
Seller (17 fields)sellerId, sellerName, sellerUrl, sellerRating, sellerReviewsCount, sellerItemsSold, sellerItemsPurchased, sellerResponseTime, sellerJoinedAt, sellerLastActive, sellerIsVerified, sellerIsBusiness, sellerIsDealer, sellerPhone, sellerWebsite, sellerAddress, sellerAvatarUrl
Vehicle (16 fields)vehicleYear, vehicleMake, vehicleModel, vehicleTrim, vehicleMiles, vehicleVin, vehicleTitleStatus, vehicleTransmission, vehicleDrivetrain, vehicleFuelType, vehicleBody, vehicleColor, vehicleCylinders, vehicleMpgCity, vehicleMpgHighway, vehicleHistoryReportUrl
Place and timelocationName, city, state, zipCode, latitude, longitude, distanceMiles, isLocalPickup, isShippingAvailable, postedAt, updatedAt
MediaimageUrl (first photo, full size), images (every photo), imagesCount, videoUrl
MetasearchQuery, searchLocation (which keyword and place found the row), scrapedAt

Good to know about the data.

  • id and url are stable for as long as the listing exists. A removed listing simply stops appearing; a listing that sold keeps its row in the seller's inventory with status set to sold.
  • Dates are RFC 3339 in UTC (2026-11-06T15:17:48Z). sellerJoinedAt is the day the account was created; sellerLastActive and sellerResponseTime are OfferUp's own wording ("Active in the last day", "Responds in a few minutes").
  • sellerPhone is in international format (+13472379108) and only exists when the seller publishes a number on OfferUp, which is mostly stores and car dealers. In our default run, 39 of the 100 rows came from business accounts and 32 carried a phone.
  • latitude and longitude are the approximate area OfferUp shows for a listing, not a street address. distanceMiles is the straight-line distance from the place you searched, so a listing at 11.7 miles is in the next town, not 11.7 miles of driving.
  • The vehicle fields are filled on OfferUp's vehicle categories (cars and trucks, motorcycles, RVs, boats, trailers) and stay null elsewhere. vehicleTitleStatus reads clean, rebuilt, salvage or lien.
  • Photo addresses are OfferUp's image links at full size; they stay valid while the listing is online. Download the ones you need to keep.

Output example

A real row from the default run (iphone 15 around 10001):

{
"id": "baac095b-099b-315f-906a-34a5736f020a",
"url": "https://offerup.com/item/detail/baac095b-099b-315f-906a-34a5736f020a",
"title": "iPhone 15 128GB Factory Unlocked",
"description": "iPhone 15 128GB Factory Unlocked \n\nBattery health:88%\n\nItโ€™s a store pickup only!!",
"condition": "Used (normal wear)",
"category": "Cell phones & Accessories",
"categoryPath": "Electronics & Media > Cell phones & Accessories",
"categoryId": "1.2",
"attributes": {},
"status": "listed",
"isFirmPrice": false,
"isGoodDeal": false,
"price": 500,
"originalPrice": null,
"priceDropPercent": null,
"currency": "USD",
"sellerId": "29428444",
"sellerName": "Throggs Neck Wireless & ELEC",
"sellerUrl": "https://offerup.com/p/29428444",
"sellerRating": 5,
"sellerReviewsCount": 180,
"sellerItemsSold": 2062,
"sellerItemsPurchased": 133,
"sellerResponseTime": "Responds in a few minutes",
"sellerJoinedAt": "2017-05-26T00:37:53Z",
"sellerLastActive": "Active in the last day",
"sellerIsVerified": true,
"sellerIsBusiness": true,
"sellerIsDealer": false,
"sellerPhone": "+13472379108",
"sellerWebsite": null,
"sellerAddress": "3651 E Tremont Ave, Bronx, NY 10465, USA",
"sellerAvatarUrl": "https://images.offerup.com/5XG1hhO4OfzJiaPU6mQiaioJ-vQ=/100x100/smart/a7e7/a7e7c65e-e6c4-4e2f-a15b-7e820e2f0521.jpg",
"vehicleYear": null,
"vehicleMake": null,
"vehicleModel": null,
"vehicleTrim": null,
"vehicleMiles": null,
"vehicleVin": null,
"vehicleTitleStatus": null,
"vehicleTransmission": null,
"vehicleDrivetrain": null,
"vehicleFuelType": null,
"vehicleBody": null,
"vehicleColor": null,
"vehicleCylinders": null,
"vehicleMpgCity": null,
"vehicleMpgHighway": null,
"vehicleHistoryReportUrl": null,
"locationName": "The Bronx, NY",
"city": "The Bronx",
"state": "NY",
"zipCode": "10475",
"latitude": 40.869,
"longitude": -73.834,
"distanceMiles": 11.7,
"isLocalPickup": true,
"isShippingAvailable": false,
"postedAt": "2026-10-09T17:13:38Z",
"updatedAt": null,
"imageUrl": "https://images.offerup.com/PffZXkA7u37eFL3-Rb4Qr5E_rKo=/960x1280/20a4/20a4c21a23e1414fa0e9feebb24b0a0c.jpg",
"images": [
"https://images.offerup.com/PffZXkA7u37eFL3-Rb4Qr5E_rKo=/960x1280/20a4/20a4c21a23e1414fa0e9feebb24b0a0c.jpg",
"https://images.offerup.com/cQxyf7_AjHjjxNZtTI_tmycOl2Y=/960x1280/e610/e610a273bd294017a8093d6a65a0df75.jpg",
"https://images.offerup.com/itzWW8yWsicyZP6IWExhhWT6j4s=/960x1280/26be/26bea8bf08f04c6282f9f55cc3884bc4.jpg",
"https://images.offerup.com/GiAdO2jzYxQemqP_2tNrnpuWL5Q=/960x1280/2019/2019d51d710c47bb92d7ea803a8512b9.jpg",
"https://images.offerup.com/TsI66ECYeiMF2Vlm9pSQ8kcN5Lk=/960x1280/4e96/4e96ddd3beec468bb24ec640d968a27a.jpg",
"https://images.offerup.com/iwwg9mpUNEVQokd3DdOaykPM2Nc=/960x1280/ae1d/ae1d68bf795141358c6bae5e983e233e.jpg"
],
"imagesCount": 6,
"videoUrl": null,
"searchQuery": "iphone 15",
"searchLocation": "New York, NY 10001",
"scrapedAt": "2026-11-08T14:30:34Z"
}

The sellers view of the dataset shows the same rows from the seller side (rating, reviews, items sold, response time, business, phone, address), and the vehicles view lines up year, make, model, trim, mileage, title status and VIN for car searches.

Advanced usage

Get only what was posted since yesterday, every morning

{
"keywords": ["ps5", "nintendo switch", "steam deck"],
"locations": ["Houston, TX"],
"radiusMiles": 25,
"postedWithinHours": 24,
"maxItems": 300
}

Schedule this run daily in Apify. Each search reads newest first and stops at the first page that is entirely older than 24 hours, so you only receive the new stock. Compare price with your buy price and act on the cheapest ones first.

Watch a competitor's whole inventory, sold items included

{
"startUrls": [
"https://offerup.com/p/53080967",
"https://offerup.com/p/63289412"
],
"maxItems": 500
}

One profile link per seller you track. Every listing comes back with its price, its status (listed or sold) and its posting date, so two runs a week apart show what sold, what was added and what dropped in price (originalPrice, priceDropPercent).

Build a list of phone and electronics stores with their phone numbers

{
"keywords": ["unlocked iphone", "samsung galaxy", "ipad"],
"locations": ["10001", "Los Angeles, CA", "Miami, FL", "Houston, TX"],
"radiusMiles": 30,
"maxItems": 600
}

Open the sellers view, keep the rows where sellerIsBusiness is true, and remove duplicates on sellerId: you get each store with its name, phone, street address, rating, reviews and items sold. In our default run, a single keyword around one ZIP code already surfaced stores with 2,062 and 2,589 items sold.

Compare used-car prices from private sellers in three markets

{
"startUrls": [
"https://offerup.com/search?q=honda%20civic&cid=5.1&SELLER_TYPE=C2C&VEH_YEAR_MIN=2018"
],
"locations": ["78701", "85001", "30301"],
"radiusMiles": 50,
"maxItems": 300
}

The search URL carries the car filters and no place, so it runs once around each ZIP code. Group the rows by searchLocation and vehicleYear, and compare price against vehicleMiles and vehicleTitleStatus to see where a clean-title Civic is cheapest.

List a whole category with no keyword

{
"category": "Tools & Machinery",
"locations": ["Chicago, IL"],
"radiusMiles": 50,
"sort": "newest",
"maxItems": 200
}

A category alone browses it around each place, newest first here. Useful to watch a niche (tools, appliances, bikes, trading cards) without guessing keywords. Any of OfferUp's 1,244 categories can be typed by name.

FAQ

What is OfferUp? OfferUp is a large US marketplace app for buying and selling locally, the main alternative to Facebook Marketplace and Craigslist, with a big section of cars and trucks from private sellers and dealers. Listings are tied to a place, which is why every search here runs around a ZIP code or a city.

Do I need an OfferUp account? No. The actor reads what OfferUp shows to any visitor who is not logged in. No login, no API key, nothing to install.

Which places can I search? Anywhere in the United States, typed as a ZIP code (10001), a city (Austin, TX) or coordinates. OfferUp is a US marketplace; places outside the US return nothing useful. With no place, the actor searches around New York 10001.

How many listings can one search return? A popular keyword goes deep: in our test, iphone around 10001 kept returning new listings past 1,600 results. Set maxItems to what you need; each listing is one row with its full detail.

Can I combine filters? Yes, they all apply together. For example keywords: ["sectional sofa"], category: "Furniture", maxPrice: 500, condition: ["used"] and postedWithinHours: 48 returns used sectionals in the furniture category, under 500 dollars, posted in the last two days, around each place you listed. For filters the form does not show (car make, year, mileage, dealer or private seller), set them on offerup.com and paste the search address.

Why do some rows have no phone or address? OfferUp only shows a phone number, a website and a street address for sellers who publish them, mostly stores and car dealers. Private sellers are reached through OfferUp's chat, and their rows keep sellerPhone and sellerAddress as null. The rest of the row (description, condition, seller rating, items sold) is filled the same way.

How fresh is the data? Every run reads OfferUp live, at the time of the run, with no cache. Schedule the actor (hourly, daily) to follow new listings and price drops.

Does it return sold listings? Searches return what is for sale, as on the site. A seller's profile returns the whole inventory, sold items included, with status: "sold"; in our dealer test, 5 of the 57 listings were already sold.

How is the distance computed? distanceMiles is the straight-line distance between the place you searched and the approximate location OfferUp shows for the listing, rounded to a tenth of a mile. It is empty on rows that come from a listing link or a seller profile, since no place was searched.

Can I run several keywords and cities at once? Yes. Every keyword runs in every place, and a listing found twice (two keywords, overlapping areas) is saved once. searchQuery and searchLocation tell you which search found each row.

Which category names can I type? Any of OfferUp's 1,244 categories, by name (Golf clubs, Sectionals, Cars & Trucks), by its address (offerup.com/c/cars-and-trucks) or by its id (5.1). The 151 main categories are listed in the form.

More SilentFlow scrapers

๐Ÿ›’ E-commerce

๐Ÿ’ผ Jobs

๐Ÿ  Real estate

๐Ÿ“ฃ Social media

๐Ÿข Business data

โœˆ๏ธ Travel

๐ŸŽฏ Lead generation

๐Ÿ”Ž SEO

๐ŸŽฌ Video

๐Ÿ“ฐ News

๐Ÿงฐ More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This Actor extracts publicly available data from OfferUp, as shown to visitors who are not logged in. It does not bypass any login, paywall or CAPTCHA and never uses an OfferUp account. Users are responsible for complying with OfferUp's terms of service and applicable data protection laws (GDPR, CCPA, and PIPL where relevant). Seller names, profile pictures, locations and, for stores and dealers, phone numbers and addresses are personal or business contact data: handle them accordingly, contact sellers only about their listings, keep only what you need, and honor removal requests. The data returned is informational; verify accuracy before any purchase or regulated use.

OfferUp Scraper by SilentFlow: every OfferUp listing around any US place, with its full detail, the seller's sales, response time and contact, and the vehicle record on cars, in one run.