Free to start: 100 requests. eBay in 8 countries, plus US resale and card-data sources.Get a key
API Get started free

The sold comps API for eBay, Poshmark,
and more.

The resale data behind your app: sold and active listings from eBay, Poshmark and 7 more marketplaces. We run the scrapers and fix them when sites change. Your pricing tool, reseller app or AI agent calls one API.

100 free requests · No credit card required · Try a live search

GET /v1/ebay/sold200 OK
$229Example price · Switch OLED
Market
eBay US
Coverage
One page
Cache
15 minutes
Try an item
Example data
  • eBaylive
  • Poshmarklive
  • Depoplive
  • Whatnotlive
  • OfferUplive
  • Facebooklive
  • Vintedlive
  • Mercarilive
  • TCGplayerlive
The API

One API. Listing data, clean JSON.

Search sold and active listings across top marketplaces. Get the listing price, details, and a link to the source.

GET /v1/ebay/sold
curl -G https://api.soldgraph.com/v1/ebay/sold \  -H "Authorization: Bearer $SOLDGRAPH_KEY" \  --data-urlencode "q=sony wh-1000xm5" \  -d page=1 \  -d count=200
Full response200 OK · example
{  "request_id": "00000000-0000-4000-8000-000000000001",  "status": "complete",  "credits": 1,  "cached": false,  "result": {    "provider": "ebay",    "country": "us",    "query": "sony wh-1000xm5",    "page": 1,    "page_size": 200,    "count": 1,    "reported_total": 1,    "next_page": null,    "next_cursor": null,    "collected_at": "2026-09-23T14:02:11Z",    "schema_version": 2,    "completeness": "provider_page_only",    "summary": {      "priced_count": 1,      "currency": "USD",      "median": 189,      "low": 189,      "high": 189,      "p25": 189,      "p75": 189,      "earliest_sold_date": "2026-09-21",      "latest_sold_date": "2026-09-21",      "best_offer_accepted_count": 0,      "median_excluding_best_offer": 189    },    "data": [      {        "id": "123456789012",        "title": "Example eBay listing",        "link": "https://www.ebay.com/itm/123456789012",        "format": "fixed_price",        "displayed_price": {          "amount": 189,          "currency": "USD"        },        "displayed_price_text": "$189.00",        "displayed_price_range": null,        "best_offer_accepted": false,        "displayed_shipping": {          "amount": 9.99,          "currency": "USD"        },        "shipping_text": "+$9.99 delivery",        "sold_date": "2026-09-21",        "sold_date_text": "Sep-21 14:35",        "condition": "Pre-Owned",        "bid_count": null,        "seller_text": "sonyfan_outlet (2,418) 99.6%",        "location_text": "Located in United States",        "image": "https://i.ebayimg.com/images/g/example/s-l500.jpg"      }    ],    "field_notes": "Fields that could not be read are null. Displayed prices are not verified accepted-offer prices."  }}
One source page per search. New searches return a job to poll.Explore the endpoint
Behind your app

We run the data. You ship the product.

Like payments or search, resale data is plumbing you shouldn't build yourself. Soldgraph is the data layer under pricing tools, reseller apps, deal finders and AI agents.

Blocks and captchas

Marketplaces block scrapers. We spread searches across networks and retry on another one, so a block is never your problem.

Site changes

When a marketplace changes its pages, our checks catch it and we fix the parser. Your code keeps getting the same fields.

One shape for every marketplace

Every result comes back as the same JSON: price, sold date, condition and a link to the listing anyone can check.

The price maths

Each search comes with the median, the typical range, the low and the high worked out, so your app shows a number, not a pile of rows.

Only pay for results

Searches that fail are free, and every response says exactly what it cost.

Room to grow

Start with 100 free requests. Price a whole inventory in one batch, and scale to 100,000 requests a month on Business.

Alternatives

Why not use their APIs? Most skip sold data.

Build on marketplace data without maintaining a scraper for every source. Soldgraph brings eBay, Poshmark, Mercari, Depop, Whatnot, OfferUp, Facebook Marketplace, Vinted and TCGplayer searches into one API, with more marketplaces planned.

OptionSold pricesSoldLive listingsListedOpen to new devsOpenThe catch
SoldgraphWe keep it working
eBay Browse API—Active listings only
eBay Marketplace Insights——Not accepting new applicants
Terapeak——In Seller Hub, no API
TCGplayer API—No new API keys
Scraping it yourselfProxies, blocks, broken parsers

One marketplace at a time: eBay sold listings API · Poshmark sold listings API · Mercari sold listings API · findCompletedItems alternative
Comparing APIs and tools? Soldgraph vs SoldComps · vs Apify · vs 130point · every comparison

Try it on your own items. Start with 100 free requests, no credit card required.

Get a free API key
Use cases

For anyone who prices things people resell.

Resale is a huge market with almost no clean data. Soldgraph gives your product the same prices buyers and sellers see, without building and fixing scrapers yourself.

Reseller and shop tools

Show sellers what similar items sold for before they list, not what someone hopes to get.

Read the guide

Deal finders and alerts

Compare active listings with recent sold listings to spot items priced below what they usually sell for.

Read the guide

Collection and portfolio apps

Value a collection from recent sold listings, not guesses.

Insurance and appraisals

Back a valuation with recent sold listings, each with a link anyone can check.

Marketplaces and listing tools

Suggest a listing price based on what similar items recently sold for.

AI agents and assistants

Let your agent look up recent sold listings, so it can answer “what is this worth?” with links to the source.

Read the guide
What you can price

If people resell it, you can price it.

eBay alone covers almost every category, from sneakers to vintage cameras. TCGplayer adds card prices and recent sales, and more specialist marketplaces are planned.

Trading cards
Graded cards
Sneakers
Handbags
Watches
Electronics
Video games
Retro games
Cameras
LEGO and toys
Vinyl records
Comics
For developers

Your first request in two minutes.

Get a key, send one command, then poll the job it returns for the result. We handle collecting the marketplace data, so you never maintain a scraper.

Routes organized by marketplace

Search sold and active listings on eBay, Poshmark and Mercari; active listings on Depop, Whatnot and Vinted; local listings on OfferUp and Facebook Marketplace; and TCGplayer products and recent card sales.

Typed from an OpenAPI spec

Generate a typed client from the OpenAPI spec. It covers every route, parameter, job, result row and error.

Works with AI agents

Connect Claude, Cursor or VS Code to the hosted MCP server, or give your agent the HTTP API and Markdown docs.

Price a whole list in one call

Send many searches as one batch and poll one ID. Each result comes with the median, lowest and highest price, and you can download every row as CSV. eBay returns up to 200 rows per search.

Only pay for results

Requests that fail are free, and every response shows exactly what it cost.

Errors that make sense

Every error has a code your code can check, for bad inputs, limits and temporary failures. Every response has a request ID for support.

Terminal
curl -G https://api.soldgraph.com/v1/ebay/sold \  -H "Authorization: Bearer $SOLDGRAPH_KEY" \  --data-urlencode "q=nintendo switch oled" \  --data-urlencode "count=200"
AI agents

Works with Claude, Cursor and any MCP client.

Connect your assistant to the hosted MCP server with one URL and your API key. It searches sold and active listings, waits for the results and links every row.

Ask in plain EnglishExample data

What have used Switch OLEDs sold for on eBay lately?

ebay_soldq: "nintendo switch oled", condition: ["used"]

200 recent sales on one page. Median $180; bundles and special editions sold higher.

  • Switch OLED, white, dock and boxSold Sep 29$185
  • Switch OLED neon, console onlySold Sep 28$164
  • Switch OLED with case and 2 gamesSold Sep 27$229
Terminal
claude mcp add --transport http soldgraph https://api.soldgraph.com/mcp \  --header "Authorization: Bearer $SOLDGRAPH_KEY"
One URL and your API key. Every tool is read-only.Claude Code setup

Building with ChatGPT? Paste this.

One prompt gives your assistant the endpoint, the sign-in header and how to wait for a result, so its first script works. Get a free key and you have eBay sold prices in your app in minutes.

Prompt for ChatGPT, Claude or Cursor
I'm building with the Soldgraph API. It returns sold and for-sale listings from eBay and other resale marketplaces.

Read the docs first: https://soldgraph.com/llms.txt
OpenAPI spec: https://soldgraph.com/openapi.json

Rules for the code you write:
- Base URL: https://api.soldgraph.com/v1
- Auth: send the header "Authorization: Bearer <key>". Read the key from the SOLDGRAPH_KEY environment variable. Never put it in browser code.
- eBay sold prices: GET /ebay/sold?q=<search words>. Add count=200 for up to 200 rows.
- A search often answers 202 with status "pending" and a poll_url. Request https://api.soldgraph.com plus poll_url with ?wait=20 and the same header, until status is "complete" or "failed".
- Read result.summary for the median, low and high price. The rows are in result.data, each with title, displayed_price, sold_date and link.
- Each completed search uses one request. A free account starts with 100 requests that do not refill, so save results while testing instead of repeating a search.

Start with a short script that prints the median sold price for "nintendo switch oled". Then ask me what I want to build.
Paste it in, add your key as SOLDGRAPH_KEY, and it writes working code.Open in ChatGPT Open in Claude
Pricing

Start free. Pay as you grow.

Every plan includes endpoints for eBay (8 countries), Vinted (US, UK and Europe), Poshmark (US and Canada), Depop (US, UK, Australia and Canada) and Whatnot (US and Canada), plus Mercari, OfferUp, Facebook Marketplace and TCGplayer (US). A completed search costs one request. Failed searches are free, and you can change plans any time.

Free
$0 /mo
100 free requests

For trying every endpoint and building a first version.

  • eBay in 8 countries, plus Poshmark, Mercari, Depop, Whatnot, OfferUp, Facebook Marketplace, Vinted and TCGplayer data
  • Up to 200 eBay rows per request, with median, low and high prices
  • Batches of up to 10 searches
  • 60 API calls per minute
  • Use it in commercial products
Get a free API key
Lite
$9 /mo
2,000 requests / mo

For side projects, bots and personal pricing sheets.

  • Everything in Free
  • Batches of up to 15 searches
  • 60 API calls per minute
  • Email support
Choose Lite
Starter
$19 /mo
5,000 requests / mo

For tools and sheets that check prices every day.

  • Everything in Lite
  • Batches of up to 25 searches
  • 60 API calls per minute
  • Email support
Choose Starter
Business
$149 /mo
100,000 requests / mo

For products built on resale data at real volume.

  • Everything in Pro
  • Batches of up to 100 searches
  • 60 API calls per minute
  • Priority support
Choose Business
Pay as you go. $10 per 1,000 requests with no plan, or $3 per 1,000 on any paid plan. Paid once, and they never expire.Read the FAQ

Need more than 100,000 requests a month? Contact us

FAQ

Good questions, straight answers.

Still wondering about something? Email hello@soldgraph.com and a person will reply.

eBay's public Browse API only returns active listings. Its sold-data API, Marketplace Insights, isn't accepting new applicants. Soldgraph gives you eBay sold listings as clean JSON with a key you can get today.

TCGplayer isn't giving out new developer API keys. Soldgraph has product search and a recent-sales sample by product ID, without a TCGplayer login. The sample is limited to the rows the public source returns.

Terapeak shows eBay sold data inside Seller Hub, but it has no API. Soldgraph gives you sold prices as JSON you can use in your own app, spreadsheet or agent.

From public listing pages on each marketplace. We never need your marketplace login.

Every result links back to the original listing, so anyone can check it.

Both, on eBay, Poshmark and Mercari: sold listings and active listings. Depop, Whatnot, OfferUp, Facebook Marketplace and Vinted provide active inventory. TCGplayer has product search and an exact-product recent-sales sample. The sample is limited and does not represent complete sale history.

Matching searches are cached for 15 minutes. Otherwise you get a job to poll while we collect the page. Each result has collected_at, so you can see how fresh it is.

eBay covers 8 countries: the US, UK, Canada, Australia, Germany, France, Italy and Spain. Send country=uk, ca, au, de, fr, it or es on eBay sold and active listings. Prices come back in that country's currency.

Vinted covers the US, UK and 24 European countries, such as fr, de, it, es, nl and pl.

Poshmark covers the US and Canada. Depop covers the US, UK, Australia and Canada. Whatnot covers the US and Canada.

Mercari, OfferUp, Facebook Marketplace and TCGplayer are US only. Leave country out, or send country=us.

Yes. Send a list of searches to POST /v1/batches and get one batch ID back. Poll it once, then read a price summary for each search or download every row as one CSV file.

A batch holds 10 searches on Free, 15 on Lite, 25 on Starter, 50 on Pro and 100 on Business. Each search that completes costs one request, the same as sending it alone.

Yes. Every listing search returns a summary with the median, lowest and highest price on the page, plus the oldest and newest sold dates on sold searches.

It is plain maths over the rows you got. No rows are removed, so you can see every listing behind the number.

A search that completes is one request, including a cache hit. A page of 200 eBay rows is still one request, and so is each search in a batch. Failed searches are free. Polling a job is free, but it counts toward the 60 calls per minute. Reuse an idempotency key when you retry a search, so you're only charged once.

You can build with Soldgraph on every plan, including Free. Third-party source data may carry separate rights and usage restrictions; check the relevant source terms before redistribution.

Each request returns one page of results from eBay, Poshmark or Mercari. There's no fixed history window, and one page isn't every sale. Displayed prices can differ from what the buyer paid.

Get started

Price anything on real sales.

Create a free account, make a key, and send your first request in about two minutes. Start with 100 free requests, no credit card required.