E-commerce & Marketplaces

eBay API

The eBay API returns active listings, sold prices and seller data as clean JSON.

7 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary search endpoint returns items with id, title, price, condition, buying format, shipping, location and URL, and the sold_search endpoint exposes completed-sale prices — the real market data behind eBay. You can also pull an item_detail, a seller's items and profile, current deals and the category tree. It is built for price research, reselling tools and marketplace analytics that need eBay data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/ebay/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "iphone 13 pro"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "ebay",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 5287.4,
    "record_count": 60,
    "bytes": 2259537,
    "cache_hit": false,
    "version": "0.1",
    "domain": "com",
    "pagination": {
      "page": 1,
      "has_more": true
    }
  },
  "data": {
    "query": "iphone 13 pro",
    "results": [
      {
        "item_id": "[redacted-phone]",
        "title": "Apple iPhone 13 Pro (Excellent Condition) - (Unlocked, AT&T, Verizon, T-Mobile)",
        "price": {
          "raw": "$479.99",
          "value": 479.99,
          "currency": "USD"
        },
        "condition": "Pre-Owned",
        "buying_format": "Buy It Now",
        "shipping": "delivery in 2-4 days",
        "location": "United States",
        "image": "https://i.ebayimg.com/images/g/tokAAeSwY6BpjObA/s-l500.webp",
        "url": "https://www.ebay.com/itm/[redacted-phone]",
        "catalog_rating": {
          "average": 5,
          "review_count": 0
        }
      },
      {
        "item_id": "[redacted-phone]",
        "title": "Apple iPhone 13 128GB Fully Unlocked - Very Good Condition",
        "price": {
          "raw": "$259.99",
          "value": 259.99,
          "currency": "USD"
        },
        "condition": "1 YEAR WARRANTY🔥 FREE RETURNS🔥FREE 2 DAY SHIPPING",
        "buying_format": "Buy It Now",
        "shipping": "Free delivery in 2-3 days",
        "location": "United States",
        "image": "https://i.ebayimg.com/images/g/uVoAAOSwNx1lxQnL/s-l500.webp",
        "url": "https://www.ebay.com/itm/[redacted-phone]",
        "sold_count": "1,093+ sold"
      },
      {
        "item_id": "[redacted-phone]",
        "title": "Apple iPhone 13 128GB 256GB 512GB Verizon AT&T T-Mobile Unlocked (Good)",
        "price": {
          "raw": "$221.99",
          "value": 221.99,
          "currency": "USD"
        },
        "condition": "Pre-Owned",
        "buying_format": "Buy It Now",
        "shipping": "Free delivery in 3-4 days",
        "location": "United States",
        "image": "https://i.ebayimg.com/images/g/ic8AAeSwVeRpcwzG/s-l500.webp",
        "url": "https://www.ebay.com/itm/[redacted-phone]",
        "catalog_rating": {
          "average": 4.5,
          "review_count": 0
        }
      }
    ]
  }
}
Actions

What the eBay API does

ActionDescriptionConcrete use caseKey params
searchactive-listing search by `query` -> results[]{item_id,title,price{value,currency},condition,buying_format,shipping,location,image,url,sold_count?,catalog_rating?}. Filters: domain(com/co.uk/de/...), page, max_results(<=240/page), sort(best_match|newly_listed|ending_soonest|price_low|price_high), condition(new|used|refurbished|open_box|for_parts), category, buy_it_now, auction. seller is item-page-only.Pricing teams call search to get active-listing search by `query` -> results[]{item_id,title,price{value,currency},condition,b….query, domain, page, max_results, sort, ...
sold_search⭐SOLD/completed search by `query` (LH_Sold=1&LH_Complete=1, bare, NOT login-gated) -> results[]{...,sold_price{value,currency},sold_date} + price_stats{count,min,max,avg,median,stdDev,p10/p25/p75/p90,recommendedPrice(IQR-trimmed),outliers_removed,per_condition{bucket:{count,median,avg,min,max}},velocity{sales_per_day,days_to_sell,recent_sales_per_day,sales_last_7d/30d,span_days},trend{direction,slope_per_day,pct_change}} — ALL derived from the sold-array+sold_date, NO extra fetch (AI-free comps math). Same filters as search. The price-research moat.Marketplace operators call sold_search to get ⭐SOLD/completed search by `query` (LH_Sold=1&LH_Complete=1, bare, NOT login-gated) -> results….query, domain, page, max_results, condition, ...
item_detailFull eBay item detail by item_id or listing URL: title, price, list price, currency, condition, availability, brand, model, MPN, images, category path, item specifics, seller (name, feedback score, review count), shipping terms, return policy, PLUS auction fields (bids, current_bid, time_left, end_time), watchers, quantity_available/quantity_sold, best_offer flag, and multi-variation SKUs (variations[]{dimension, values[]{value, out_of_stock}}). Set include_description=1 to inline the full seller description text.Catalog enrichment teams call item_detail to get full eBay item detail by item_id or listing URL.item_id, url, domain, include_description
seller_itemsAll active listings in a seller's storefront by `seller` username (eBay _ssn) -> results[]{item_id,title,price{value,currency},condition,buying_format,shipping,location,image,url}. Same card shape + filters/pagination as `search`. Use to scan a competitor's full catalog. Page-native paging via meta.pagination.Retail analysts call seller_items to get all active listings in a seller's storefront by `seller` username (eBay _ssn) -> results[]{it….seller, domain, page, max_results, sort, ...
seller_profileSeller reputation by `seller` username -> seller_profile{store_name, feedback_score, feedback_positive_pct, positive_pct_12mo, items_sold_display, followers_display, member_since, location, business_seller, top_rated, feedback_ratings{positive/neutral/negative:{m1,m6,m12}}}. From the public storefront + feedback pages (logged-out, no account).Pricing teams call seller_profile to get seller reputation by `seller` username -> seller_profile{store_name, feedback_score, feedback….seller, domain
dealseBay Daily Deals grid (/deals) -> results[]{item_id,title,price{value,currency},was_price{value,currency},shipping,deal_badge,image,url}. Current promoted discounts site-wide for the marketplace. No query needed.Marketplace operators call deals to get eBay Daily Deals grid (/deals) -> results[]{item_id,title,price{value,currency},was_price{val….domain, max_results
categorieseBay category tree / ID lookup (/n/all-categories) -> categories[]{category_id,name,slug} + groups[] (top-level departments). Pass `query` to filter by name so you can resolve a category name (e.g. 'cell phones') to the numeric ID used by search's `category` param — no need to know '9355' in advance.Catalog enrichment teams call categories to get eBay category tree / ID lookup (/n/all-categories) -> categories[]{category_id,name,slug} + g….query, domain, max_results
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/ebay/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"iphone 13 pro"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.ebay.search with {"query":"iphone 13 pro"}.
Use cases

Who uses this API and why

  • Resale-pricing tools call sold_search to find an item's true market value from completed sales.
  • Marketplace analysts use search and deals to track active-listing prices and promotions.
  • Seller-intelligence products use seller_items and seller_profile to audit a competitor's full inventory.
FAQ

Questions developers ask before integrating

What is the eBay API?

eBay API is a ReefAPI endpoint group for active listings plus sold prices and market stats. It returns live JSON through POST requests under /ebay/v1.

Is the eBay API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. eBay calls use the same shared credit balance as every other ReefAPI engine.

Do I need a eBay login or account?

No login to eBay is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the eBay data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the eBay API use?

eBay actions currently cost 1-3 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call eBay from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call ebay actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the eBay API a eBay scraper?

It is the managed alternative to a DIY eBay scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same active listings plus sold prices and market stats back as clean JSON.

Why does my eBay scraper keep getting blocked?

Most eBay scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / ebay

eBay

Active listings plus sold prices and market stats.

base /ebay/v17 endpoints
post/ebay/v1/item_detail2 credits

Full eBay item detail by item_id or listing URL: title, price, list price, currency, condition, availability, brand, model, MPN, images, category path, item specifics, seller (name, feedback score, review count), shipping terms, return policy, PLUS auction fields (bids, current_bid, time_left, end_time), watchers, quantity_available/quantity_sold, best_offer flag, and multi-variation SKUs (variations[]{dimension, values[]{value, out_of_stock}}). Set include_description=1 to inline the full seller description text.

ParameterAllowed / rangeDescription
item_idoptionaleBay item number — the digits in the listing URL after /itm/. Provide item_id OR url (one of the two is required).
urloptionalFull eBay listing URL — alternative to item_id.
include_description = falseoptionalAlso fetch and inline the full seller description text (one extra request; off by default for speed).
domain = comoptionalcom · co.uk · de · com.au · ca · fr · it · es · nl · at · ch · ie · plWhich eBay site to query (sets currency and local listings). Dropdown = the 13 live-verified sites; other eBay country sites (e.g. com.sg, com.hk) are also accepted.
Try in playground →
post/ebay/v1/seller_items2 credits

All active listings in a seller's storefront by `seller` username (eBay _ssn) -> results[]{item_id,title,price{value,currency},condition,buying_format,shipping,location,image,url}. Same card shape + filters/pagination as `search`. Use to scan a competitor's full catalog. Page-native paging via meta.pagination.

ParameterAllowed / rangeDescription
sellerrequiredeBay seller username (store/usr name) — the handle in /usr/{seller} or the 'Sold by' link on a listing.
sort = best_matchoptionalbest_match · newly_listed · ending_soonest · price_low · price_highResult ordering.
conditionoptionalnew · open_box · refurbished · used · for_partsOnly items in this condition (empty = all conditions).
categoryoptionaleBay category ID to narrow results — the number in an eBay category URL (e.g. 9355 = Cell Phones & Smartphones). Use the `categories` action to look an ID up by name. Empty = all.
price_minoptional0–Minimum price (eBay _udlo), in the marketplace's currency.
price_maxoptional0–Maximum price (eBay _udhi), in the marketplace's currency.
free_shipping = falseoptionalOnly listings with free shipping.
returns_accepted = falseoptionalOnly listings that accept returns.
best_offer = falseoptionalOnly listings that accept Best Offers.
locationoptionalus · worldwide · north_americaRestrict by item location.
domain = comoptionalcom · co.uk · de · com.au · ca · fr · it · es · nl · at · ch · ie · plWhich eBay site to query (sets currency and local listings). Dropdown = the 13 live-verified sites; other eBay country sites (e.g. com.sg, com.hk) are also accepted.
page = 1optional1–Page number (easy paging: 1, 2, 3…).
max_results = 60optional1–240How many results to return (1–240 per page; larger values are capped at 240).
Try in playground →
post/ebay/v1/seller_profile3 credits

Seller reputation by `seller` username -> seller_profile{store_name, feedback_score, feedback_positive_pct, positive_pct_12mo, items_sold_display, followers_display, member_since, location, business_seller, top_rated, feedback_ratings{positive/neutral/negative:{m1,m6,m12}}}. From the public storefront + feedback pages (logged-out, no account).

ParameterAllowed / rangeDescription
sellerrequiredeBay seller username (store/usr name) — the handle in /usr/{seller} or the 'Sold by' link on a listing.
domain = comoptionalcom · co.uk · de · com.au · ca · fr · it · es · nl · at · ch · ie · plWhich eBay site to query (sets currency and local listings). Dropdown = the 13 live-verified sites; other eBay country sites (e.g. com.sg, com.hk) are also accepted.
Try in playground →
post/ebay/v1/deals1 credit

eBay Daily Deals grid (/deals) -> results[]{item_id,title,price{value,currency},was_price{value,currency},shipping,deal_badge,image,url}. Current promoted discounts site-wide for the marketplace. No query needed.

ParameterAllowed / rangeDescription
domain = comoptionalcom · co.uk · de · com.au · ca · fr · it · es · nl · at · ch · ie · plWhich eBay site to query (sets currency and local listings). Dropdown = the 13 live-verified sites; other eBay country sites (e.g. com.sg, com.hk) are also accepted.
max_results = 60optional1–240How many results to return (1–240 per page; larger values are capped at 240).
Try in playground →
post/ebay/v1/categories1 credit

eBay category tree / ID lookup (/n/all-categories) -> categories[]{category_id,name,slug} + groups[] (top-level departments). Pass `query` to filter by name so you can resolve a category name (e.g. 'cell phones') to the numeric ID used by search's `category` param — no need to know '9355' in advance.

ParameterAllowed / rangeDescription
queryoptionalFilter categories by name/slug substring (case-insensitive). Empty = the full top-level tree.
domain = comoptionalcom · co.uk · de · com.au · ca · fr · it · es · nl · at · ch · ie · plWhich eBay site to query (sets currency and local listings). Dropdown = the 13 live-verified sites; other eBay country sites (e.g. com.sg, com.hk) are also accepted.
max_results = 60optional1–240How many results to return (1–240 per page; larger values are capped at 240).
Try in playground →