OfferUp listing details
GET /v1/offerup/item returns one OfferUp listing with description, posted date, condition, coordinates, shipping, photos, seller and vehicle details.
GET
https://api.soldgraph.com/v1/offerup/itemLook up one listing by the id from OfferUp local listings, by its numeric item number, or by its offerup.com/item/detail/... URL. The result adds what search results don't show: description, posted date, condition, approximate coordinates, shipping, all photos, category, seller profile and vehicle details.
| Parameter | Type | Default | Description |
|---|---|---|---|
q | string | Required | OfferUp listing ID from search results, the numeric item number, or an offerup.com/item/detail/... URL. |
country | us | us | Only us is supported. |
marketplace | offerup | offerup | Optional; must match the path. |
curl -G https://api.soldgraph.com/v1/offerup/item \ -H "Authorization: Bearer $SOLDGRAPH_KEY" \ -d q=0f979dba-51bf-355c-851f-bfce6924a6e2A cache miss returns 202 with a job to poll. A successful lookup costs one credit. A listing that doesn't exist fails with not_found and costs nothing. Results are cached for 15 minutes.
#What the fields mean
statusis the state the seller set:active,pending,sold,removedor another lowercase source value. Asoldstatus is not a verified sale record, and its price is the last ask, not a sale price.displayed_priceis the current ask.original_priceis the earlier ask when the seller lowered it.locationis the public listing area with approximate coordinates. It is not an address.vehicleis filled for listings in Vehicles. Year, make, model, mileage, VIN and title status are seller supplied.selleris the public profile shown on the listing.
#Example response
This listing was collected on October 1, 2026 (UTC). The seller name is replaced.
Response
{ "request_id": "example-offerup-item", "status": "complete", "credits": 1, "cached": false, "result": { "provider": "offerup", "country": "us", "query": "0f979dba-51bf-355c-851f-bfce6924a6e2", "collected_at": "2026-10-01T15:19:16.137068+00:00", "schema_version": 1, "count": 1, "data": { "id": "0f979dba-51bf-355c-851f-bfce6924a6e2", "item_number": "1861069628", "title": "Red Mountain Bike with Rear Derailleur", "description": "Red frame mountain bike with knobby tires, black saddle, flat handlebars with brake levers, platform pedals, and a multi-speed rear cassette with derailleur.", "link": "https://offerup.com/item/detail/0f979dba-51bf-355c-851f-bfce6924a6e2", "status": "active", "displayed_price": { "amount": 55, "currency": "USD" }, "original_price": null, "condition": "used", "condition_code": 40, "posted_at": "2026-10-01T02:03:25.109000+00:00", "edited_at": null, "quantity": 1, "firm_price": false, "location": { "name": "Colma, CA", "latitude": 37.72, "longitude": -122.413 }, "local_pickup": true, "shipping": { "available": false, "price": null, "seller_pays": false, "buy_now": false }, "category": { "id": "7.4", "path": [ "Sports & Outdoors", "Bikes & Cycling" ] }, "photos": [ "https://images.offerup.com/ETYpyjYCzGQ0-cWAGqhHTDIPTZ0=/960x1280/2bb8/2bb8802d7a6a40239227dcecc7dc00f8.jpg", "https://images.offerup.com/0Qx4ZcvnVPhg8wNp-oYZH41N0M0=/960x1280/a922/a922af461d7a4d21a8005bce8c1dfe08.jpg", "https://images.offerup.com/r3sYQgBXDczfOb816FWdzqIa4cY=/960x1280/770d/770d58a6a9df4108bcb4d21ab267a28f.jpg", "https://images.offerup.com/zvqOETGwRUHqhpEDF3ws9l6JWf0=/960x1280/ac68/ac68900a44824052af52d824cdfe986d.jpg", "https://images.offerup.com/SmjTrgnkif38G9AR162TBzmXcuc=/960x1280/f68d/f68d20bc8d1e4e1b87b3581b866eacec.jpg", "https://images.offerup.com/8do4_zz8BWvvGfjisciBSYe6AiU=/1280x960/3a6b/3a6b08041ef843a4a79f0689696a846f.jpg", "https://images.offerup.com/SnodxgySW1lymtmEtX4M678Z9UI=/960x1280/df54/df54e47ed50641e19ed50faa07ec9de2.jpg" ], "seller": { "id": "12345678", "name": "Example Seller", "joined_at": "2016-09-13T19:58:56+00:00", "items_sold": 102, "rating_average": 5, "rating_count": 14, "business": false, "auto_dealer": false, "truyou_verified": null }, "vehicle": null }, "field_notes": "One OfferUp listing as shown publicly. Prices are seller asks in USD. status is the seller-set listing state; a sold status is not a verified sale record and its price is not a transaction price. Coordinates are the approximate public listing location, not an address." }}| Field | Type | Description |
|---|---|---|
request_id | string | ID of this request. Poll it at /v1/jobs/{request_id}. |
status | string | pending, complete or failed. Always check it, even on HTTP 200. |
credits | integer | Requests charged: 1 when complete, 0 while pending or when failed. |
cached | boolean | True when the result came from the 15-minute cache. |
poll_url | string | Only while pending. A path like /v1/jobs/{id}: join it to https://api.soldgraph.com, not to the /v1 base URL. |
error.code | string | Only when failed. See failed job codes. |
result | object | Only when complete. One source page from the marketplace. |
result.provider | string | Marketplace ID, like ebay or poshmark. |
result.country | string | Always us. |
result.query | string | The q you sent, with extra spaces removed. |
result.page | integer | The page you asked for. |
result.count | integer | Rows in result.data on this page. |
result.reported_total | integer | Total matches the marketplace reports for the search. It may be rounded or capped. |
result.next_page | integer | null | Send this as page to get the next page. Null on the last page, and on page 100, the deepest page served. |
result.collected_at | string | When we collected the page, as an ISO 8601 timestamp. |
result.schema_version | integer | Version of this response shape. Currently 2. |
result.completeness | string | Always provider_page_only: one page, not a full sales history. |
result.field_notes | string | Plain-text notes on how to read this page's fields. |
result.data.id | string | OfferUp listing ID. |
result.data.item_number | string | OfferUp numeric item number. Also accepted as q. |
result.data.status | string | active, pending, sold, removed or another lowercase source state. The seller sets it: sold is not a verified sale, and its price is not a sale price. |
result.data.description | string | null | Seller description, up to 10,000 characters. |
result.data.displayed_price | object | null | Current USD asking price. |
result.data.original_price | object | null | Earlier asking price when the seller lowered it, else null. |
result.data.condition | string | null | new, open_box, refurbished, used, for_parts or other. condition_code is the raw source number. |
result.data.posted_at | string | null | When the listing was posted, in UTC. |
result.data.edited_at | string | null | Last seller edit in UTC, when present. |
result.data.location | object | Public listing area as { name, latitude, longitude }. Approximate, not an address. |
result.data.local_pickup | boolean | null | Local pickup is offered. |
result.data.shipping | object | available, price (a USD object or null), seller_pays and buy_now. |
result.data.category | object | Category id, and path names from the top level down. |
result.data.photos | string[] | Full-size photo URLs on the OfferUp image CDN. |
result.data.seller | object | Public profile: id, name, joined_at, items_sold, rating_average, rating_count, business, auto_dealer and truyou_verified. |
result.data.vehicle | object | null | For Vehicles listings: year, make, model, trim, miles, vin, title_status, transmission, drivetrain, fuel_type, color and body. Seller supplied. |
Try it