Skip to content

Zoipler developers

Product and Discovery API

Authenticated catalogue search, product details, all live offers, landed pricing, delivery promises, taxonomy, ranks, history, recommendations, exports, change feeds and signed webhooks.

Every product API request requires a registered application. There is no anonymous API tier, and general discovery never requires a seller credential. Direct apps use client credentials; third-party apps use explicit buyer or seller consent with Authorization Code + S256 PKCE.

Base URL

https://zoipler.com/api/v1

Authentication

Exchange the registered client ID and secret for a short-lived application token. Secrets belong only in server-side applications.

curl -X POST 'https://zoipler.com/api/v1/oauth/token' \
  -H 'Content-Type: application/json' \
  -d '{
    "grant_type": "client_credentials",
    "client_id": "zapp_...",
    "client_secret": "zsec_...",
    "scope": "products:read offers:read pricing:read delivery:quote"
  }'

Send the returned zat_... token as Authorization: Bearer .... Tokens expire after 15 minutes by default.

Third-party applications

Send the owner to https://zoipler.com/oauth/authorize with an exact registered redirect_uri, response_type=code, subject_type=buyer or seller, scopes, state, and an S256 PKCE challenge. Exchange the single-use zac_... code at the token endpoint. Rotating zrt_... refresh tokens are returned for delegated grants; reuse revokes the family.

Implemented resources

MethodEndpointScope
GET/search, /search/suggestionsproducts:read
GET/products/{zoid}products:read
POST/products/batchproducts:read bulk:read + bulk entitlement
GET/products/{zoid}/offersoffers:read pricing:read
POST/delivery-promisesdelivery:quote
GET/taxonomy/versions/current, /taxonomy/categoriestaxonomy:read
GET/products/{zoid}/sales-ranksranks:read
GET/products/{zoid}/history/{prices|ranks|sales}Dataset scope + entitlement
GET/products/{zoid}/recommendationsrecommendations:read
POST/exportsbulk:read + bulk entitlement
GET/changeschanges:read + changes entitlement
POST/webhook-subscriptions and delivery controlschanges:read webhooks:manage + changes entitlement

Rate limits and metering

Calls consume weighted application, organization, optional grant and endpoint-family buckets. Responses include RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, X-Zoipler-RateLimit-Bucket and X-Zoipler-Request-Cost.

Data semantics

  • Money is a decimal string plus ISO currency; landed totals reconcile their components.
  • Delivery promises are offer-, quantity-, destination- and time-specific and carry expiry and limitations.
  • Ranks are category- and marketplace-scoped.
  • Sales history explicitly distinguishes actual, observed_external and estimated.
  • Missing historical observations are null with a reason, never silently changed to zero.

View the complete OpenAPI contract