OfferUp

OfferUp local listings

Search one page of OfferUp US active listings near a ZIP code or point, about 50 rows. Prices are seller asks. No sold search. Results are cached for 15 minutes; a cache miss returns 202 and a job to poll.

get/offerup/listings

Request

  • Base URL: https://api.soldgraph.com/v1
  • URL: https://api.soldgraph.com/v1/offerup/listings
  • Auth: HTTP bearer

Query parameters

qstring required

Search keywords, 1–200 characters, as you'd type them into the marketplace's search box. Be specific: model, size, grade, edition.

pageinteger

Source page to fetch. Where an endpoint has cursor, pages after 1 also need it.

min_priceinteger

Lowest price, in whole units of the country's currency (US dollars for us). Optional. Must not be more than max_price. You can send it without max_price.

max_priceinteger

Highest price, in whole units of the country's currency (US dollars for us). Optional. You can send it without min_price.

marketplace'offerup'

Optional. If sent, it must be offerup.

country'us'

Only us is supported here. eBay, Vinted, Poshmark, Depop and Whatnot endpoints also take other countries. Mercari, OfferUp, Facebook Marketplace and TCGplayer are US only.

zipstring

Five-digit US ZIP code to search around. Send zip, or both lat and lon. Unknown ZIP codes return 422.

latnumber

Latitude of the search center in decimal degrees. Use with lon instead of zip for an exact point. Rounded to 4 decimals (about 11 m).

lonnumber

Longitude of the search center in decimal degrees. Use with lat.

radius5 | 10 | 20 | 25 | 30 | 50 | 80 | 100 | 200 | 5000

Search radius in miles. Most searches offer 5, 10, 20, 30 or 50. Vehicle searches offer 25, 80, 100, 200 or 5000 (nationwide). If this kind of search doesn't offer your value, we use the widest offered radius below it, or else the smallest offered. result.location.radius_miles shows what was applied. Omit it for the source default: 30, or 80 for vehicles.

categorystring

OfferUp category ID, such as 5 (Vehicles), 5.1 (Cars & Trucks) or 1.2 (Cell phones). The endpoint page lists the top-level IDs.

conditionstring[]

One condition, or several separated by commas, such as new,open_box. OfferUp labels these differently for vehicles; see the endpoint page.

sort'best_match' | 'newest' | 'nearest' | 'price_asc' | 'price_desc' | 'newest_model' | 'lowest_mileage'

Source ranking, newest posted, nearest, or asking price low to high or high to low. newest_model and lowest_mileage work only on vehicle searches.

vehicle_makestring[]

Vehicle searches only. One make, or several separated by commas, such as honda,toyota.

vehicle_max_mileage0 | 25000 | 50000 | 75000 | 100000 | 125000 | 150000 | 175000 | 200000

Vehicle searches only. Highest odometer reading.

vehicle_stylestring[]

Vehicle searches only. One body style, or several separated by commas.

vehicle_transmission'automatic' | 'manual'

Vehicle searches only.

vehicle_drivetrainstring[]

Vehicle searches only. One drivetrain, or several separated by commas.

cursorstring

Previous page's next_cursor. Omit it on page 1. Keep every other parameter unchanged.

Headers

Idempotency-Keystring

Send the same key when you retry the same search, so you aren't charged twice. 1–128 printable ASCII characters, no spaces.

Response

Complete, including cache hits. Costs 1 request.

request_idstring required

ID of this request. Poll it at /v1/jobs/{request_id}.

status'pending' | 'complete' | 'failed' required

pending, complete or failed. Always check it, even on HTTP 200.

creditsinteger required

Requests charged: 1 when complete, 0 for a page past the last one, while pending, or when failed.

cachedboolean required

True when the result came from the 15-minute cache.

poll_urlstring

Only while pending. A path like /v1/jobs/{id}: join it to https://api.soldgraph.com, not to the /v1 base URL.

Changes