OfferUp Scraper — US Marketplace Listings & Prices avatar

OfferUp Scraper — US Marketplace Listings & Prices

Pricing

from $7.00 / 1,000 listing returneds

Go to Apify Store
OfferUp Scraper — US Marketplace Listings & Prices

OfferUp Scraper — US Marketplace Listings & Prices

Scrape OfferUp US marketplace listings by keyword or URL: title, price, location, photo and link for resale and price research. USD 10 per 1,000 listings.

Pricing

from $7.00 / 1,000 listing returneds

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 hours ago

Last modified

Share

OfferUp Scraper collects public OfferUp US marketplace listings by keyword or explore URL and returns title, price, location, photo and listing link for resellers, price researchers and deal-finding tools. It costs USD 10.00 per 1,000 listings on the FREE tier plus a USD 0.005 start fee, and you pay only for listings saved to your dataset.

No login, cookies or OfferUp account are needed. Each run returns one row per unique listing, across as many result pages as you allow.

What data does the OfferUp scraper return?

FieldExampleFilled
listingId9eb5cd41-40b2-3f08-8eb9-b9aebc0363a9always
titleiPhone 17 air for sellalways
price, currency600, USDalmost always
listingUrlhttps://offerup.com/item/detail/9eb5cd41-…always
locationKenner, LAmost rows
imageUrlsfirst listing photoalmost always
conditionUsedwhen OfferUp shows it; often null in search results
description, category, sellerName, sellerRating, sellerReviewCount, shippingAvailable, postedAtonly with Open listing details, when OfferUp serves the listing page (it refused them in the 2026-10-27 tests)
source, scrapedAtofferup.com, ISO timealways

In the 2026-10-27 test of 120 iPhone-search listings, every row had a title, price, photo, link and location, and none had a condition in the search data.

How do I scrape OfferUp listings?

Enter one or more keywords, or paste OfferUp explore URLs, then set Maximum listings and Maximum pages per search.

{
"searchQueries": ["iphone 15", "gaming chair"],
"maxResults": 100,
"maxPagesPerQuery": 3
}
{
"startUrls": [{ "url": "https://offerup.com/explore/k/ps5" }],
"maxResults": 50
}

URLs take precedence over keywords. With neither, the Actor searches for "iphone". Keywords run as OfferUp searches (https://offerup.com/search?q=…); when an explore URL lands on an OfferUp topic page without listings, the Actor runs the same term as a search. The first result page holds roughly 15 to 50 listings and each later page about 50; the Actor loads later pages the same way the OfferUp site does when you scroll.

Which area does the OfferUp search cover?

OfferUp is a local marketplace and shows results around a US location it derives from the visitor's network. The Actor always connects from a US access route, so OfferUp picks a US area for each run; you cannot choose a ZIP code or radius, and the area can differ between runs. Shippable listings from further away also appear. If you need results for one city, filter the dataset by location.

When should I use this Actor, and when not?

Use it to:

  • track asking prices for a product (phones, consoles, furniture) across many listings;
  • find underpriced items to resell;
  • feed a deal-alert or price-history tool with fresh listings on a schedule.

Do not use it for:

  • a fixed ZIP code or radius search (not supported);
  • seller contact details or messages (not public, not collected);
  • Craigslist or eBay, where Craigslist Scraper and eBay Scraper fit.

How much does the OfferUp scraper cost?

Each listing saved to the dataset is one charged event, and Apify charges a start event once per started GB of memory (the default run uses 512 MB, so once). A listing is saved and charged only once per run.

EventFREEBRONZESILVERGOLD and above
Listing savedUSD 0.01USD 0.009USD 0.008USD 0.007
Actor start (per started GB)USD 0.005USD 0.005USD 0.005USD 0.005

Worked totals on the FREE tier:

  • 10 listings (the Console prefill): 10 × USD 0.01 + USD 0.005 = USD 0.105.
  • 500 listings: 500 × USD 0.01 + USD 0.005 = USD 5.005.

Blocked or empty runs save nothing and pay only the start fee.

Use it from an AI assistant

OfferUp Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add https://mcp.apify.com/?tools=muhammadafzal/offerup-us-marketplace-scraper to your client and ask, for example: "Get 100 OfferUp listings for 'nintendo switch' and tell me the median asking price and the five cheapest."

API examples

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/offerup-us-marketplace-scraper').call({
searchQueries: ['nintendo switch'],
maxResults: 100,
maxPagesPerQuery: 3,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length);

Python (apify-client 3.x):

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("muhammadafzal/offerup-us-marketplace-scraper").call(
run_input={"searchQueries": ["road bike"], "maxResults": 50}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item["price"], item["title"], item["location"])

Output example

[
{
"listingId": "9eb5cd41-40b2-3f08-8eb9-b9aebc0363a9",
"title": "iPhone 17 air for sell",
"price": 600,
"currency": "USD",
"listingUrl": "https://offerup.com/item/detail/9eb5cd41-40b2-3f08-8eb9-b9aebc0363a9",
"location": null,
"condition": null,
"imageUrls": ["https://images.offerup.com/tODOna5Vshxl4dXRiJvPc_8ukRs=/252x250/47bd/47bd39f01bc94d888466cb900265c10f.jpg"],
"source": "offerup.com",
"scrapedAt": "2026-10-27T06:44:45.054Z"
},
{
"listingId": "c4622e1f-936f-3f48-9855-46198e5fccf1",
"title": "Apple Air Tags pack of 4",
"price": 75,
"currency": "USD",
"listingUrl": "https://offerup.com/item/detail/c4622e1f-936f-3f48-9855-46198e5fccf1",
"location": "Kenner, LA",
"imageUrls": ["https://images.offerup.com/Eo35plnMN68HhjiYjF3FsfyC6SM=/250x444/a939/a93969261991478db59416ea0c9fca00.jpg"],
"source": "offerup.com",
"scrapedAt": "2026-10-27T06:44:54.205Z"
}
]

Reliability and limits

A 120-listing, three-page run took about 20 seconds on 2026-10-27. Limits: 1 to 500 listings, 1 to 20 pages per search, up to 10 keywords. If OfferUp returns a location gate or challenge on every attempt, the run ends with a "Blocked" status message and a SUMMARY record, and no listings are charged. If a later page cannot be loaded, the listings already found are kept and the reason is listed in SUMMARY.warnings.

FAQ

Is there an official OfferUp API? OfferUp does not offer a public listings API. This Actor reads the public website.

Can I search a specific city or ZIP code? No. OfferUp sets the area from the visitor's network, and the Actor uses a US route without a fixed city. Filter results by location afterwards.

Why are some fields empty? Search results carry title, price, photo, link and location. Description, seller and shipping need Open listing details, and OfferUp often refuses listing pages; when it does, the row keeps its search data, is charged like any other listing, and the refusal is listed in SUMMARY.warnings.

How many listings can I get per search? Up to 500 per run, at about 50 per result page. Raise Maximum pages per search for more.

Are duplicate listings charged twice? No. Each listing ID is saved and charged once per run.

Does it need my OfferUp account? No. It only reads public pages and never logs in.

The Actor collects only listing data OfferUp shows publicly. Respect OfferUp's terms and the privacy of sellers, and do not use the data for spam.

Last verified: 2026-10-27