compsapi.com / pricing

Pricing, and what a request buys

A free key needs no card. Every plan includes real accepted Best Offer prices, every filter, and graded card parsing with the grade and grader on each sale. Failed requests are never counted against you.

Plans

PlanMonthlyAnnualRequests / moHistory per searchRate limit
Free$0$01001 year10 / min
Starter$9$7.50 / mo5,0001 year120 / min
Growth$29$24 / mo25,000Full 3 years120 / min
Pro$79$66 / mo100,000Full 3 years120 / min

Need more than 100,000 requests a month? There are two larger plans and we will quote on volume. Annual billing works out to two months free.

What one request actually returns

A request is one search page of up to 240 completed sales, from eBay US with matching sales from other eBay sites merged in. So the free tier is up to 24,000 sold listings a month, Starter is up to 1.2M, Growth is up to 6M and Pro is up to 24M. At the Pro tier that is about $0.0033 per 1,000 sales returned.

Each sale carries title, price, last_sold to the minute, format, shipping_cost, item_id and url. Paging is time based, so there are no duplicate rows between pages.

curl -G https://api.compsapi.com/v1/sold \
  -H "Authorization: Bearer YOUR_KEY" \
  --data-urlencode "q=charizard psa 10" \
  --data-urlencode "days=1095" \
  --data-urlencode "best_offer=1"

Why history is the thing that costs money

eBay's public sold page shows about 90 days, and so does almost every other sold data API, because that is all the public page exposes. Free and Starter give you a full year, which is enough to see that golf clubs peak in spring and consoles spike in December. Growth and above page through the full 1,095 days, which is what depreciation curves, launch analysis and multi season card pricing actually need.

If you ask for a longer window than your plan covers, the call still succeeds. It returns the window your plan allows and a plan_limit object telling you what was requested, what was served and what the next tier covers, so nothing breaks silently.

The part that changes your numbers

On an accepted Best Offer sale, every source that reads eBay's public sold page reports the asking price, not what the buyer paid. In offer heavy categories that runs high by a wide margin, and a pricing model built on it is wrong in a direction the data itself will never show you. We return the amount the sale actually closed at, flagged per row with best_offer. That is included on every plan, including free.

Billing questions

Is there a free trial? The free tier is not a trial, it does not expire and it needs no card. Use it for as long as it covers what you are doing.

What counts as a request? One call to /v1/sold or /v1/comps. A request that fails on our side is not counted.

What happens when I run out? A free key pauses until the UTC month resets. Paid keys keep serving.

Can I cancel? Yes, from the console at any time, and you keep the plan until the period ends.

Do I need an eBay developer account or any approval? No. You get a key and make a call.

Price from what things
actually sold for

100 free requests a month · every filter on · no card

Get a free key