+OfferUp API
Search OfferUp local listings around any US ZIP code and get prices and conditions as clean JSON.
The API.SH OfferUp API turns OfferUp's public search into structured JSON. Search local listings around a ZIP code for any keyword with radius, price range, condition and sort, and get each listing's title, price, condition, location, photo, local pickup and shipping flags and, for vehicles, miles. The response lists the available filter options and a cursor for the next page.
- 1 endpoint
- from $1 / 1,000 calls
- 1,000 free credits / month
- failed calls free
GET https://api.api.sh/offerup/v1/ search
{ "success": true } What you can build with the OfferUp API
Resale and flipping deal finder
Search your area for items below a price you set, sorted newest first, and alert on new deals before others see them.
Used car and truck pricing
Search vehicles around a ZIP and compare asking prices against miles to see what the local market pays.
Market price research
Collect prices and conditions for a product across several ZIP codes to set your own listing price or study demand.
Marketplace monitoring
Watch for listings that match your brand or product, including whether they ship or are local pickup only.
OfferUp data you get
Field names from real responses. Numbers come parsed, URLs absolute, dates in ISO 8601.
OfferUp API endpoints and prices
Every OfferUp endpoint costs 1 credit per call: credits are $1 per 1,000 on a monthly plan, $2 pay-as-you-go. Pricing
| Search OfferUp listings /offerup/ | $1 · $2 PAYG 1 credit |
Call the OfferUp API
Search OfferUp listings: GET https://api.api.sh/offerup/
curl "https://api.api.sh/offerup/v1/search?q=bike&zip=10001" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/offerup/v1/search",
params={"q": "bike", "zip": "10001"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/offerup/v1/search");
url.searchParams.set("q", "bike");
url.searchParams.set("zip", "10001");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); # Google Sheets (API.SH add-on)
=APISH("/offerup/v1/search", "q", "bike", "zip", "10001")
# Zapier, Make, n8n (verified node): pick the API.SH app,
# choose "OfferUp" and "Search OfferUp listings".
# AI agents (Claude, ChatGPT, Cursor): add the
# API.SH MCP server https://api.sh/mcp - Create a free accountConfirm your email and get 1,000 free credits every month. No card needed.
- Create an API keyOne key works for all 482 platforms.
- Send the requestJSON back in one call. Add
output=csvoroutput=ndjsonfor files.
Why API.SH for OfferUp data
- Public data only: no OfferUp login, cookies or account needed
- One key and one response shape for OfferUp and 481 other platforms
- Built and maintained by API.SH, not third-party publishers
- Pay per call; errors on our side cost nothing
- Live status for every endpoint
API.SH vs the official OfferUp API
OfferUp does not offer a public developer API for listings. API.SH reads OfferUp's public search and returns listings as JSON, with no OfferUp account.
Instead of keeping an unofficial Python package like pyOfferUp working or comparing Apify actors, API.SH gives you one key, one JSON format and a fixed price per call.
OfferUp API questions
What OfferUp data can I get?+
Local listing search around a US ZIP code (/offerup/v1/search) with keyword, radius, price range, condition and sort. Each listing has title, price, condition, location, photo, local pickup and shipping flags and vehicle miles.
How much does the OfferUp API cost?+
Every OfferUp endpoint costs 1 credit per call. On a monthly plan 1,000 credits cost $1 (Starter is $50/month for 50,000 credits). Pay-as-you-go is $2 per 1,000 credits, with top-ups from $15 that never expire.
Is there a free OfferUp API?+
Yes. Every account gets 1,000 free credits every month. That is 1,000 calls to /offerup/v1/search at 1 credit each.
Is there an official OfferUp API?+
No. OfferUp does not publish a public API for listings. API.SH is an independent way to read public OfferUp search results as JSON.
Do I need an OfferUp account or login?+
No. API.SH reads public listings only. No endpoint uses a login or anyone's account, and it does not message sellers or make offers.
Can I use the OfferUp API from Python?+
Yes. It is a plain HTTPS API that returns JSON, so it works from Python, Node.js or any language, and there is a Python SDK.
How does pagination work?+
Each response includes next_cursor. Pass it back as cursor with the same search parameters to get the next page; it is null when there are no more results.
How do I get started?+
1. Sign up at api.sh. 2. Copy your API key. 3. Call /offerup/v1/search with q and zip, for example q=iphone and your ZIP code. Every parameter is in the docs at https://api.sh/docs. You can also use the JS or Python SDK, Google Sheets, Zapier, Make, n8n or the MCP server at https://api.sh/mcp.