API REFERENCE

One key. Every marketplace. Plain JSON.

Base URL https://api.gw.ecommdatahub.com. Send your access key in the X-API-Key header; every response is JSON and reports what it cost in X-Credits-Charged. $1 = 1,000 credits.

cURL
curl "https://api.gw.ecommdatahub.com/amazon/v2/products/search?q=wireless+earbuds&marketplace=US" \
  -H "X-API-Key: edh_live_9f2k...q7x"

Machine-readable: openapi.json (OpenAPI 3.1, generated from the same catalog).

Amazon DataHub

Products, offers, reviews & rankings · plans & rates →

GEThttps://api.gw.ecommdatahub.com/amazon/v2/products/searchfrom 2 cr

Product search

Search the Amazon catalog by keyword.

PARAMETERDESCRIPTION · EXAMPLE
qREQUIREDSearch keywords wireless earbuds
marketplaceoptionalMarketplace country code us
pageoptionalResult page 1
Example response ▾
200 OK · application/json · X-Credits-Charged: 2
{
    "page": 1,
    "items": [
        {
            "asin": "B0C1XKX7Z4",
            "price": 29.99,
            "title": "Wireless Earbuds X2",
            "currency": "USD"
        }
    ],
    "total": 18234
}
GEThttps://api.gw.ecommdatahub.com/amazon/v2/products/detailfrom 1.2 cr

Product detail

Full product record for one ASIN.

PARAMETERDESCRIPTION · EXAMPLE
asinREQUIREDProduct ASIN B0C1XKX7Z4
marketplaceoptionalMarketplace country code us
Example response ▾
200 OK · application/json · X-Credits-Charged: 1.2
{
    "asin": "B0C1XKX7Z4",
    "brand": "Auria",
    "price": 29.99,
    "title": "Wireless Earbuds X2",
    "rating": 4.6,
    "in_stock": true,
    "reviews_count": 12873
}
GEThttps://api.gw.ecommdatahub.com/amazon/v2/reviews/listfrom 0.8 cr

Reviews list

Paginated reviews for a product.

PARAMETERDESCRIPTION · EXAMPLE
asinREQUIREDProduct ASIN B0C1XKX7Z4
pageoptionalResult page 1
Example response ▾
200 OK · application/json · X-Credits-Charged: 0.8
{
    "total": 12873,
    "reviews": [
        {
            "id": "R1K4",
            "title": "Great value",
            "rating": 5,
            "verified": true
        }
    ]
}
GEThttps://api.gw.ecommdatahub.com/amazon/v2/products/offersfrom 1.2 cr

Offers

Buy-box and third-party offers for an ASIN.

PARAMETERDESCRIPTION · EXAMPLE
asinREQUIREDProduct ASIN B0C1XKX7Z4
conditionoptionalnew | used | any new
Example response ▾
200 OK · application/json · X-Credits-Charged: 1.2
{
    "asin": "B0C1XKX7Z4",
    "total": 7,
    "buybox": {
        "price": 29.99,
        "seller": "Auria Official"
    },
    "offers": [
        {
            "price": 28.5,
            "seller": "TechDeals",
            "condition": "new"
        }
    ]
}
GEThttps://api.gw.ecommdatahub.com/amazon/v2/bestsellers/listfrom 1.6 cr

Best sellers

Category best-seller ranks, updated hourly.

PARAMETERDESCRIPTION · EXAMPLE
categoryREQUIREDCategory node id or slug electronics
marketplaceoptionalMarketplace country code us
Example response ▾
200 OK · application/json · X-Credits-Charged: 1.6
{
    "items": [
        {
            "asin": "B0C8PLX2M4",
            "rank": 1,
            "title": "Wireless Earbuds, 48H Playtime"
        }
    ],
    "category": "electronics",
    "updated_at": "2026-08-27T10:00:00Z"
}

eBay DataHub

Listings, sold history & seller data · plans & rates →

GEThttps://api.gw.ecommdatahub.com/ebay/v2/listings/searchfrom 1.6 cr

Listing search

Search live or sold eBay listings.

PARAMETERDESCRIPTION · EXAMPLE
qREQUIREDSearch keywords vintage camera
soldoptionaltrue = sold listings false
conditionoptionalnew | used | any any
Example response ▾
200 OK · application/json · X-Credits-Charged: 1.6
{
    "total": 932,
    "listings": [
        {
            "id": "295712345",
            "price": 45,
            "title": "Vintage Camera AE-1",
            "ends_in": "2h 14m"
        }
    ]
}
GEThttps://api.gw.ecommdatahub.com/ebay/v2/listings/detailfrom 1.2 cr

Listing detail

Full item detail including shipping and returns.

PARAMETERDESCRIPTION · EXAMPLE
item_idREQUIREDeBay item id 295712345
Example response ▾
200 OK · application/json · X-Credits-Charged: 1.2
{
    "price": 45,
    "title": "Vintage Camera AE-1",
    "item_id": "295712345",
    "returns": "30 days",
    "shipping": {
        "cost": 5.9,
        "days": "3-5"
    }
}
GEThttps://api.gw.ecommdatahub.com/ebay/v2/sold/historyfrom 2 cr

Sold history

Realized prices for comparable items, 90 days.

PARAMETERDESCRIPTION · EXAMPLE
qREQUIREDItem keywords or id vintage camera ae-1
daysoptionalLookback window (max 90) 90
Example response ▾
200 OK · application/json · X-Credits-Charged: 2
{
    "count": 184,
    "median": 30.5,
    "series": [
        {
            "date": "2026-08-01",
            "price": 31.99
        },
        {
            "date": "2026-08-15",
            "price": 29.99
        }
    ]
}
GEThttps://api.gw.ecommdatahub.com/ebay/v2/sellers/profilefrom 0.8 cr

Seller profile

Feedback score, ratings breakdown, store info.

PARAMETERDESCRIPTION · EXAMPLE
seller_idREQUIREDSeller username topdeals_uk
Example response ▾
200 OK · application/json · X-Credits-Charged: 0.8
{
    "seller_id": "topdeals_uk",
    "items_sold": 48211,
    "feedback_pct": 99.1,
    "member_since": "2014"
}

AliExpress data

Catalog, pricing & shipping data · plans & rates →

GEThttps://api.gw.ecommdatahub.com/aliexpress/v2/products/searchfrom 2 cr

Product search

Product search

PARAMETERDESCRIPTION · EXAMPLE
qREQUIREDSearch keywords usb c hub
ship_fromoptionalWarehouse country code cn
Example response ▾
200 OK · application/json · X-Credits-Charged: 2
{
    "items": [
        {
            "id": "ALX-2231",
            "price": 12.4,
            "title": "7-in-1 USB-C Hub",
            "currency": "USD"
        }
    ],
    "total": 5211
}
GEThttps://api.gw.ecommdatahub.com/aliexpress/v2/products/detailfrom 1.2 cr

Product detail

Product detail

PARAMETERDESCRIPTION · EXAMPLE
item_idREQUIREDProduct id 953860896732
Example response ▾
200 OK · application/json · X-Credits-Charged: 1.2
{
    "id": "ALX-2231",
    "skus": [
        {
            "sku": "grey",
            "price": 12.4,
            "stock": 1834
        }
    ],
    "title": "7-in-1 USB-C Hub",
    "seller": {
        "name": "HubStore",
        "rating": 97.8
    }
}
GEThttps://api.gw.ecommdatahub.com/aliexpress/v2/logistics/estimatefrom 1.2 cr

Shipping estimate

Lanes, cost and delivery window by country.

PARAMETERDESCRIPTION · EXAMPLE
product_idREQUIREDProduct id ALX-2231
countryREQUIREDDestination country code de
Example response ▾
200 OK · application/json · X-Credits-Charged: 1.2
{
    "options": [
        {
            "cost": 2.14,
            "days": "12-18",
            "carrier": "Cainiao"
        }
    ],
    "product_id": "ALX-2231"
}
GEThttps://api.gw.ecommdatahub.com/aliexpress/v2/sellers/ratingsfrom 0.8 cr

Seller ratings

Store scores and dispute rates.

PARAMETERDESCRIPTION · EXAMPLE
seller_idREQUIREDStore id HubStore
Example response ▾
200 OK · application/json · X-Credits-Charged: 0.8
{
    "followers": 12894,
    "seller_id": "HubStore",
    "disputes_pct": 0.4,
    "positive_pct": 97.8
}

Taobao DataHub

Taobao & Tmall items, translated · plans & rates →

GEThttps://api.gw.ecommdatahub.com/taobao/v2/products/searchfrom 2.4 cr

Product search

Keyword search with optional EN translation.

PARAMETERDESCRIPTION · EXAMPLE
qREQUIREDSearch keywords bluetooth speaker
translateoptionalTranslate fields to language code en
Example response ▾
200 OK · application/json · X-Credits-Charged: 2.4
{
    "items": [
        {
            "id": "TB-778201",
            "price": {
                "value": 89,
                "currency": "CNY"
            },
            "title": "蓝牙音箱 Bluetooth Speaker"
        }
    ],
    "total": 40211
}
GEThttps://api.gw.ecommdatahub.com/taobao/v2/products/detailfrom 1.6 cr

Product detail

SKU matrix, promos, seller and shop data.

PARAMETERDESCRIPTION · EXAMPLE
item_idREQUIREDTaobao item id TB-778201
translateoptionalTranslate fields to language code en
Example response ▾
200 OK · application/json · X-Credits-Charged: 1.6
{
    "id": "TB-778201",
    "shop": {
        "name": "声动旗舰店",
        "rating": 4.9
    },
    "skus": [
        {
            "name": "black",
            "price_cny": 89,
            "price_usd": 12.3
        }
    ],
    "title": "Bluetooth Speaker"
}
GEThttps://api.gw.ecommdatahub.com/taobao/v2/products/image-searchfrom 4 cr

Image search

Find items matching an uploaded image.

PARAMETERDESCRIPTION · EXAMPLE
image_urlREQUIREDPublic image URL https://example.com/speaker.jpg
Example response ▾
200 OK · application/json · X-Credits-Charged: 4
{
    "matches": [
        {
            "id": "TB-778201",
            "price": {
                "value": 89,
                "currency": "CNY"
            },
            "title": "蓝牙音箱 Bluetooth Speaker",
            "similarity": 0.94
        }
    ]
}
GEThttps://api.gw.ecommdatahub.com/taobao/v2/sellers/profilefrom 1.2 cr

Seller profile

Shop ratings, DSR scores, years active.

PARAMETERDESCRIPTION · EXAMPLE
shop_idREQUIREDShop id or name 声动旗舰店
Example response ▾
200 OK · application/json · X-Credits-Charged: 1.2
{
    "dsr": {
        "desc": 4.9,
        "service": 4.8,
        "logistics": 4.9
    },
    "shop": "声动旗舰店",
    "years": 7
}

1688 DataHub

· plans & rates →

GEThttps://api.gw.ecommdatahub.com/1688/v1/products/searchfrom 0.4 cr

Product Search

Product Search

No parameters.

Example response ▾
200 OK · application/json · X-Credits-Charged: 0.4
{
    "status": "ok",
    "credits_charged": 1,
    "data": {
        "…": "…"
    }
}
GEThttps://api.gw.ecommdatahub.com/1688/v1/products/detailfrom 2 cr

Product Details

Product Details

No parameters.

Example response ▾
200 OK · application/json · X-Credits-Charged: 2
{
    "status": "ok",
    "credits_charged": 1,
    "data": {
        "…": "…"
    }
}

Errors

The HTTP status is the gateway's verdict. A call the gateway refuses carries its own status and a gateway code below, and costs nothing. A call the gateway admits is HTTP 200 whatever the service found, and is billed: read ok, response.status and response.error — every failure is {"ok":false, …, "response":{"status", "error":{"code","message","details"}}}, and details.retryable / retry_after say whether and when to retry. Check ok, not the HTTP status. Rate-limit state rides on every response as X-EDH-RateLimit-Limit / -Remaining / -Reset; 429s add Retry-After.

Refused by the gateway — HTTP status · code · nothing charged
STATUS · CODEMEANINGWHAT TO DO
401 UNAUTHENTICATEDThe X-API-Key header is missing, malformed or unknown.Send a valid access key; create or rotate one in the console under Keys.
403 ACCOUNT_SUSPENDEDThe account behind the key is suspended.Check your inbox for the reason and contact support.
403 ACCOUNT_UNDER_REVIEWRequests are paused while we review the account.You get an email the moment the review is complete; contact support if it takes longer than a business day.
403 ACCOUNT_INACTIVEThe account behind the key has been closed.Keys of a closed account stop working for good; sign up again to keep using the API.
403 KEY_SCOPE_FORBIDDENThe key is not scoped to this service.Use a key whose scopes include the service, or create one that does.
403 KEY_IP_FORBIDDENThe request came from an address outside the key's IP allowlist.Call from an allowed address or edit the allowlist on the key.
404 UNKNOWN_ENDPOINTNo endpoint at this path/version (or one your plan cannot see).Compare the path with this reference; private endpoints need a plan that includes them.
402 NOT_SUBSCRIBEDNo active subscription for this service.Subscribe in the console — pay-as-you-go has no monthly fee.
402 PAYMENT_FAILEDA renewal payment failed and access is paused until it succeeds.Update the card under Billing; access resumes on the next successful charge.
402 INSUFFICIENT_CREDITSThe monthly quota is used up and the credit wallet is empty.Top up credits (or enable auto top-up) — the request is retried as soon as credits exist.
429 QUOTA_EXHAUSTEDA hard plan quota or per-endpoint cap was reached for this window.Wait for the window to reset (see the error details) or move to a larger plan.
429 RATE_LIMITEDMore requests per second than the plan allows.Back off using Retry-After and the X-EDH-RateLimit-* headers, then retry.
503 NODE_SYNCINGThe gateway node that took the request is still loading its state.Retry after a few seconds — other nodes may already answer.
503 NODE_UNAVAILABLEThe gateway node cannot reach its state store.Retry with exponential backoff; the status page shows fleet health.
503 NODE_DISABLEDThe node that took the request was taken out of service by the operator.Retry: the balancer routes the next call to another node. Nothing was charged.
410 ENDPOINT_SUNSETThis endpoint version was retired after its announced sunset date.Migrate to the successor named in the Link header and in error.details.replacement.
405 METHOD_NOT_ALLOWEDThe path exists but not with this HTTP method.Use one of error.details.allowed_methods (also sent as the Allow header).
503 APPLICATION_UNAVAILABLEThe service is temporarily out of order on the node that took the request.Retry: another node answers. Nothing was charged.
Admitted, the marketplace or the route to it failed — HTTP 200, response.status · code · billed
RESPONSE.STATUS · CODEMEANINGWHAT TO DO
502 UPSTREAM_ERRORThe marketplace returned an error or an unreadable answer.Retry after details.retry_after; if it persists the item may not be served through this endpoint.
503 UPSTREAM_UNAVAILABLEThe marketplace is not answering right now.Retry after details.retry_after seconds.
504 UPSTREAM_TIMEOUTThe marketplace did not answer in time.Retry after details.retry_after seconds.
503 ROUTING_UNAVAILABLENo exit is available for the requested country right now.Retry later, or request another country (details.country names the one that had no exit).
503 NODE_UNAVAILABLEThe gateway node lost its state store during the call.Retry with backoff; another node may answer.
500 INTERNAL_ERRORSomething failed on our side.Nothing to change; retry later. The request id is in the response for support.
Admitted, the request or the item was the problem — HTTP 200, response.status · code · billed
RESPONSE.STATUS · CODEMEANINGWHAT TO DO
422 VALIDATION_FAILEDA parameter is missing or invalid.error.details.fields names each failing parameter and what was expected; fix the request.
400 INVALID_JSONThe request body is not JSON, or not a JSON object.Send a JSON object (details.reason says which).
415 UNSUPPORTED_MEDIA_TYPEThe request body was sent as something other than JSON.Send Content-Type: application/json.
404 NO_RESULTS_FOUNDThe marketplace has no such item (or nothing matched).Check the identifier; a deleted or unlisted item stays 404.

Versioning policy

How endpoints change without breaking your integration.

✓Versions are path segments — /amazon/v2/products/search. A new major version is a new path; the old one keeps answering unchanged.
✓Additive changes are not versions — new optional parameters and new response fields can appear at any time; never rely on key order or on unknown fields being absent.
✓Deprecations are announced in-band, at least 90 days before sunset — a deprecated endpoint answers with Deprecation, Sunset: <HTTP date> and Link: <successor>; rel="successor-version" headers, is flagged on this page and in openapi.json (deprecated: true), and your account is notified by email.
✓After the sunset date the path returns 410 ENDPOINT_SUNSET with error.details.replacement naming the successor — nothing is silently redirected.

Start with 1,000 free credits.

No card required. Create a key, hit the playground, and see structured marketplace data in under five minutes.

Create free account