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
GETendpoints 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
| Method | Path | What it is for |
|---|---|---|
POST | /oauth2/token/ | Exchange credentials, or a refresh token, for a bearer token |
GET | /v4/connections | The brands you are connected to |
GET | /v4/retailers/brands/{brand_id}/collections | That brand's collections visible to you |
GET | /v4/retailers/collections/{collection_id}/products | Products in a collection, summary or full depth |
GET | /v4/retailers/products/{product_id} | One product, full detail |
POST | /v4/retailers/subscriptions | Create a webhook subscription |
GET | /v4/retailers/subscriptions | List 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-secret | New signing secret |
POST | /v4/retailers/subscriptions/{id}/test | Send a synthetic signed event |
POST | /v4/retailers/subscriptions/{id}/resume | Resume after a suspension |
GET | /v4/retailers/subscriptions/{id}/deliveries | Delivery 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.
