Strip the envelope
Unwrap each acquisition payload and reduce it to the records the operation actually needs.
One contract, every operation
SoldFetch turns volatile marketplace pages into one canonical contract across 3 data operations and supported eBay sites, validated before every response.
Before // every source speaks a different language
SoldFetch normalization engine
After // one canonical shape, every operation
{
"itemId": "377534750427",
"price": "79.99",
"currency": "USD",
"condition": "Used",
"ended": true
}One integration. 3 data operations. supported eBay sites. The same validated contract on every response.
The problem
Product, search, offer, and review pages expose the same ideas through different paths. Add locale, currency, marketplace, page drift, and missing fields, and one integration quickly becomes a stack of special cases.
How it works
Every raw record passes through the same five-stage boundary. Nothing undeclared crosses into the public API.
Unwrap each acquisition payload and reduce it to the records the operation actually needs.
An explicit mapping renames provider and page-specific paths into SoldFetch’s canonical fields.
Attach the domain, locale, currency, and request identity that make the record usable.
Coerce stable types, normalize enums, and return documented nulls when a source is silent.
Check the completed object before it crosses the REST, MCP, or Skill boundary.
“Different inputs go in. The same contractual discipline comes out.”
Computed intelligence
When the source provides enough information, deterministic code normalizes price, currency, shipping cost, item identity, and observation timestamps. If the source does not know, SoldFetch returns null.
{
"soldPrice": "79.99",
"shippingPrice": null,
"totalPrice": null,
"quality": {
"priceBasis": "displayed_listing_price",
"acceptedOfferAmount": null,
"saleDateVerified": false
}
}Models reason; contracts compute.
The proprietary edge
One canonical schema is the source of truth for every operation and every interface. Change it once, and each public surface updates from the same definition.
Canonical types and the operation catalog define every supported field exactly once.
A field change flows through runtime validation, examples, OpenAPI, REST, MCP, and the Skill.
The completed object passes its contract gate before it is returned as a successful response.
Undeclared source fields stay behind the boundary instead of becoming accidental public API.
“The documentation cannot drift from the implementation, because both derive from the same source.”
One schema, every object
The same discipline extends across every eBay object SoldFetch returns—not only products. Build typed consumers once and reuse the conventions everywhere.
One contract vocabulary spans item details, sold and active listings, categories, and request context.
See the full schema referenceThe shape of it
3
marketplaces
3
operations
5
canonical objects
1
schema
SoldFetch replaces a collection of provider-shaped integrations with one public eBay data contract.
SoldFetch: One key and one public contract
Self-managed: Provider keys and contracts per source
SoldFetch: Stable eBay-domain fields
Self-managed: Different paths for pages and providers
SoldFetch: Domain, locale, and currency included
Self-managed: Reconstructed inside every integration
SoldFetch: Documented nullable fields
Self-managed: Silent omissions and provider sentinels
SoldFetch: Generated from the runtime contract
Self-managed: Hand-maintained beside the implementation
Frequently asked questions
Can’t find what you’re looking for? Talk to our team.
No. Item lookup and search operations return purpose-built canonical objects. They share the same naming discipline, request metadata, marketplace context, error model, and validation boundary.
Raw page and provider payloads are private implementation details. SoldFetch maps them into provider-neutral contracts and validates the completed object before returning it.
SoldFetch returns a documented optional or null value. It does not invent data or pass through provider-specific placeholder strings.
Yes. Each interface resolves through the same operation catalog and canonical objects, so changing transport does not require remapping your data model.
The input schema and operation catalog define supported parameters. Contract tests check the provider mapping and public examples are reviewed alongside changes.
Additive changes can arrive within the current version. Breaking changes require an explicit version boundary rather than silently changing an existing field.
One integration
Call one eBay operation and inspect the validated contract you can reuse across item details, keyword searches, and category searches.
curl "https://soldfetch.com/v1/item/377534750427?ebaySite=ebay.com" \
-H "API-KEY: soldfetch_live_YOUR_API_KEY"