Skip to main content
Glama
E-commerce Sales Signals MCP

E-commerce Sales Signals MCP

eBay Sold Listings Search

caffein-dot-dev--ebay-sold-listings
Read-only

Search confirmed eBay sold prices by keyword across 8 marketplaces and date ranges, then export structured comps for resale pricing and market research.

Instructions

eBay Sold Listings Search. Get confirmed eBay sold prices. Search by keyword across 8 marketplaces, filter by date range, and export clean structured data for comps, resale pricing, and market research.

When to use: Use when you need what items actually sold for on eBay (sold comps) for a keyword, marketplace and date range.

Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset.

Behavior: starts one run of the Apify Actor "caffein.dev/ebay-sold-listings" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/caffein.dev/ebay-sold-listings

Input Schema

NameRequiredDescriptionDefault
countNoNumber of listings to scrape (default: 100)
searchNoDeprecated: alias for the single-keyword `keyword` field. Use the `keywords` array instead. Accepted for backward compatibility with callers that send `search`. Backslash-escaped quotes (\") in the value are unescaped before the search runs.
keywordNoSingle search keyword. Deprecated: use the 'keywords' array field instead.
ebaySiteNoeBay site to scrape from Options: ebay.com = eBay.com (US); ebay.co.uk = eBay.co.uk (UK); ebay.de = eBay.de (Germany); ebay.fr = eBay.fr (France); ebay.it = eBay.it (Italy); ebay.es = eBay.es (Spain); ebay.ca = eBay.ca (Canada); ebay.com.au = eBay.com.au (Australia).ebay.com
keywordsNoOne or more search keywords. Each keyword runs as a separate search with the same filters applied to all. Example: ["rtx 4080"]
maxPriceNoMaximum sold price filter (search-page filter).
minPriceNoMinimum sold price filter (search-page filter).
sortOrderNoSort order for the sold search results page. Options: endedRecently = Ended recently; timeNewlyListed = Time: newly listed; pricePlusPostageLowest = Price + postage: lowest first; pricePlusPostageHighest = Price + postage: highest first; distanceNearest = Distance: nearest first.endedRecently
categoryIdNoeBay category ID — maps directly to the `_sacat` URL parameter. Enter ANY eBay category ID as free text; you are not limited to a preset list. Use "0" (the default) for All Categories. Don't know the ID? We maintain the full, up-to-date list of category & subcategory IDs at https://sold-comps.com/ebay-categories0
exactMatchNoWhen true (default), eBay's loosened 'results matching fewer words' items are removed so only listings closely matching the keyword are returned. Set to false to include them.
postalCodeNoDelivery postal code for more accurate shipping prices, in the format of the selected eBay site (e.g. a ZIP code on ebay.com, SW1A 1AA on ebay.co.uk). Leave blank to use a central postcode for the site. A value in the wrong format is ignored with a warning.
sellerTypeNoFilter by seller type. EU sites only — works on ebay.de, ebay.fr, ebay.it and ebay.es. On all other sites this filter is ignored and results are unfiltered. Options: any = Any; private = Private; business = Business.any
conditionIdNoNumeric eBay condition ID — overrides itemCondition when set.
aspectFilterNoeBay aspect facet filters, e.g. {"Brand": "Nike"}. Keys and values are double-encoded per eBay's convention.
buyingFormatNoSearch-page buying format filter. Options: all = All; auction = Auction; buyItNow = Buy It Now; acceptsOffers = Accepts Offers.all
daysToScrapeNoNumber of days back to scrape sold listings (default: 30)
itemLocationNoSearch-page item location filter. Options: default = Default; domestic = Domestic only; worldwide = Worldwide.default
itemConditionNoSearch-page condition filter. Options: any = Any; new = New; used = Used.any
sellerCountryNoOnly return listings from sellers located in this country. Two-letter ISO code, e.g. JP or GB . When set, the Item location filter is ignored. If no listing matches, eBay can return listings from other countries: check itemLocation on each item. Country codes
subcategoryIdNoOptional eBay subcategory ID — also maps to `_sacat`. Enter ANY subcategory ID as free text. When set, it overrides the Category field above. Leave blank to search at the category level. Full ID reference: https://sold-comps.com/ebay-categories. The output record's `categoryId` / `category` fields reflect the effective category actually used for the search.
includeCompletedListingsNoWhen true (default), includes eBay's Completed Listings filter alongside the Sold filter. This enables accurate detection of 'Best Offer Accepted' listings via the listingType and isBestOfferAccepted fields. When false, uses only the Sold filter — all results are guaranteed sold items, but Best Offer Accepted items will appear as regular 'buy_it_now' with the asking price shown as soldPrice.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, open-world, non-destructive and non-idempotent, so the description earns credit for what they can't say: the call starts a run of a specific Apify Actor via mcp.apify.com using the caller's own APIFY_TOKEN and account, and returns run/dataset IDs for paging. Cost, concurrency and latency implications of the run are left implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and sectioned as Purpose / When to use / Returns / Behavior / Docs, so an agent can scan the essentials fast. The opening sentence largely restates the title, which is the only real waste in an otherwise tight block.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 21-parameter scraper with no output schema, the definition covers purpose, trigger, return shape (one row per result plus paging IDs), auth/ownership and read-only safety. It stops short of describing row fields or what a partial or failed run looks like, which keeps it just under fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 21 parameters, including enums, defaults and deprecation notes, so the description only needs to reinforce the headline axes (keyword, marketplace, date range). It does that accurately but adds no syntax or edge-case detail beyond what the schema already provides, making 3 the correct baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('Get confirmed eBay sold prices') and scopes it to keyword, marketplace and date range. A reader can immediately separate this from the Amazon/TikTok/Etsy siblings because the platform and the sold-price angle are stated explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'When to use' line gives a concrete trigger: needing what items actually sold for (sold comps) for a keyword, marketplace and date range. It doesn't name an alternative tool or state when not to use it, but no direct eBay competitor exists among the siblings, so the guidance is practically complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.