Catalog API (Beta)

Pull the catalog of the brands you are connected to on JOOR, and stay in sync as that catalog changes.

Request access. Contact our sales team to enable access to this API.

The Catalog API lets a retailer pull the catalog of the brands it is connected to on JOOR, and stay in sync as that catalog changes.

It has two halves, designed to be used together:

  • The Read API. Paginated GET endpoints that walk your catalog: connections, then a brand's collections, then a collection's products, then a product's full detail. There is a bulk mode that returns whole pages of full product detail, which is how you seed your copy.
  • Change webhooks. You register an HTTPS callback and JOOR posts a signed notification whenever a product you can see changes, enters your catalog, or leaves it. Each notification carries the complete current data for whatever changed, so you apply it directly. Re reading through the Read API is available for reconciliation but is never required.

Sections

  • Getting Started — what the API is, your first call, and the rules every request follows
  • Read API — walking your catalog and seeding a full copy of it
  • Webhooks — subscribing to changes, verifying them, applying them correctly

Every endpoint, at a glance

MethodPathWhat it is for
POST/oauth2/token/Exchange credentials, or a refresh token, for a bearer token
GET/v4/connectionsThe brands you are connected to
GET/v4/retailers/brands/{brand_id}/collectionsThat brand's collections visible to you
GET/v4/retailers/collections/{collection_id}/productsProducts in a collection, summary or full depth
GET/v4/retailers/products/{product_id}One product, full detail
POST/v4/retailers/subscriptionsCreate a webhook subscription
GET/v4/retailers/subscriptionsList subscriptions
GET/v4/retailers/subscriptions/{id}One subscription, with stats
PATCH/v4/retailers/subscriptions/{id}Change callback_url, events or active
DELETE/v4/retailers/subscriptions/{id}Delete a subscription and its delivery history
POST/v4/retailers/subscriptions/{id}/rotate-secretNew signing secret
POST/v4/retailers/subscriptions/{id}/testSend a synthetic signed event
POST/v4/retailers/subscriptions/{id}/resumeResume after a suspension
GET/v4/retailers/subscriptions/{id}/deliveriesDelivery attempt history, 90 day retention

Any verb other than the one listed returns 405. Every endpoint under /v4 requires ?account= with the id of the retailer account you are acting for.