Skip to main content

Catalog API

The Catalog API assists in the first step of your customer journey by providing a robust endpoint for product discovery. You can access the Catalog API in two ways.

Pre-configured catalog

Your business users can create a specific catalog of products from the universe of products available through a UI in their Orchestrpay dashboard. This is typically used when doing promotions or if you wish to display curated, cross-categories product lists.

alt text

In the example above, business users have created an "Eid Essentials" catalog manually and they're fetching it through the API to display the products assigned in the catalog in real time.

When you query the API with a pre-configured catalog, the data returned is in real-time, meaning any change that is made by business users through the dashboard will be reflected instantly.

You can also create multiple catalogs and assign tags to them, such as homepage, you can then query the Catalogs API to list all the categories that you should display on your homepage, allowing business users to take control of it without the need for pushing a software update.

Pre-configured catalogs have no category-specific attributes.

Querying live objects

The Catalog API also allows you to build a full fledged product browser with dynamic category-specific attributes, filtering and sorting.

The Display Size is a typical category-specific attribute present when you're browsing the "Television & Video" category as well as their sub-categories.

Note that the API doesn't return product rating or price range as category specific attribute, but you can hard code them in the UI and use them to query.

Fetch Catalogs

GET /catalogs

The below properties can be passed through the query string (e.g. /catalogs?filter.tags=homepage)

PropertyDescriptionExample
filter.catalogIdThe ID(s) of the pre-configured catalog. Use the $in filter operator if you want to browse multiple at once. by?filter.catalogId=$in:9ba08b71-ebb3-4be2-a604-00c6c5451a8f
filter.tagsBrowse products only from catalogs that have had this tag assigned by business users.&filter.tags=homepage
Response (200)
{
"catalogs": [
{
"id": "9ba08b71-ebb3-4be2-a604-00c6c5451a8f",
"title":{
"en": "Eid Essentials",
"ar": "أساسيات العيد",
},
"tags": ["homepage","eid2025","no-promo"],
"totalProducts": 192,
}
]
}

Fetch Categories

Pre-configured catalogs

GET /catalogs-products

The below properties can be passed through the query string (e.g. /catalogs-products?sortBy=popularity:DESC)

PropertyDescriptionExample
filter.catalogIdThe ID(s) of the pre-configured catalog. Use the $in filter operator if you want to browse multiple at once. by?filter.catalogId=$in:9ba08b71-ebb3-4be2-a604-00c6c5451a8f
filter.tagsBrowse products only from catalogs that have had this tag assigned by business users.&filter.tags=homepage
perPageNumber of products to display per page. Maximum value is 100.&perPage=25
filter.ratingsCountFilter based on the number of ratings that were submitted for the product.&filters.ratingsAcount=$gt:100
filter.ratingsAverageFilter based on the average rating of the products.&filters.ratingsAverage=$btw:4,5
filter.titlePerforms a full text search on the product title, uses the arabic title if any arabic letter is present in the value.&filters.title=$ilike:ATA 32HON
filter.priceFilter by product price.&filters.price=$btw:35000,72000
isInStockDefaults to true.&isInStock=false
sortByDefault column to sort by. Available options are popularity, price, ratingsAverage.&sortBy=popularity:ASC
Response (200)
{
"catalogs": [
{
"title": {
"en": "Your catalog title"
},
"id": "9ba08b71-ebb3-4be2-a604-00c6c5451a8f",
"children": [],
"categoryAttributes": [],
"products": [
// An array of Product Objects
],
}
],
"pagination": {
"totalItems": 12,
"currentPage": 1,
"pageSize": 25,
"totalPages": 1
}
}

Querying live products

GET /category

The below properties can be passed through the query string (e.g. /category?sortBy=popularity:DESC)

PropertyDescriptionExample
pageThe current page to fetch the data for.&page=3
perPageNumber of products to display per page. Maximum value is 100.&perPage=25
filter.attr.{attribute}Filters the products by the category-specific attribute ID, using our Filter Operators.&filter.attr.3e449962-c304-402f-b0b9-a1be5b73565f=$in:[5f803479-2d79-40ff-8f0b-35162464181a,4c1881f2-d34c-4b3b-960b-bf7d5a12d420] This will return only TVs that are "LED & LCD TVs" or "OLED TVs".
filter.ratingsCountFilter based on the number of ratings that were submitted for the product.&filters.ratingsAcount=$gt:100
filter.ratingsAverageFilter based on the average rating of the products.&filters.ratingsAverage=$btw:4,5
categoryIdThe parent category that you're trying to fetch the products / child categories for.&categoryId=3e449962-c304-402f-b0b9-a1be5b73565f`
filter.titlePerforms a full text search on the product title, uses the arabic title if any arabic letter is present in the value.&filters.title=$ilike:ATA 32HON
filter.priceFilter by product price.&filters.price=$btw:35000,72000
isInStockDefaults to true.&isInStock=false
sortByDefault column to sort by. Available options are popularity, price, ratingsAverage.&sortBy=popularity:ASC
Response (200)
{
"categories": [
{
"title": {
"key": "category_electronics",
"en": "Electronics",
"ar": "Electronics",
},
"id": "3e449962-c304-402f-b0b9-a1be5b73565f",
"children": [
{
"title": {
"key": "category_led_lcd_tvs",
"en": "LED & LCD TVs",
"ar": "LED & LCD TVs"
},
"id": "5f803479-2d79-40ff-8f0b-35162464181a",
},
{
"title": {
"key": "category_oled_tvs",
"en": "OLED TVs",
"ar": "OLED TVs"
},
"id": "4c1881f2-d34c-4b3b-960b-bf7d5a12d420",
},
// ...
],
"categoryAttributes": [
{
"title": {
"key": "category_display_size",
"en": "Display Size",
"ar": "Display Size"
},
"id": "6769aaab-573b-4960-8757-db2a59b5df31",
"values": [
{
"id": "4a3df447-dd50-4ebe-aefd-af7306e7954e",
"title": {
"key": "attr_4a3df447-dd50-4ebe-aefd-af7306e7954e",
"en": "32",
"ar": "32"
},
},
{
"id": "0b462a50-8a28-4ece-877e-77fe1761a534",
"title": {
"key": "attr_0b462a50-8a28-4ece-877e-77fe1761a534",
"en":"39",
"ar":"39"
},
},
// ...
]
},
{
"title": {
"key": "category_brand",
"en": "Brand",
"ar": "Brand"
},
"id": "ec80351f-12b8-47c2-9378-d22ccbfa5a78",
"values": [
{
"title": {
"key": "attr_35f76f54-4deb-44bd-8a53-09aea6b3e50c",
"en": "AKAI",
"ar": "AKAI"
},
"id": "35f76f54-4deb-44bd-8a53-09aea6b3e50c"
},
{
"title": {
"key": "attr_e080646f-77a1-43a6-b92f-a5e61379464d",
"en": "Armadillo",
"ar": "Armadillo"
},
"id": "e080646f-77a1-43a6-b92f-a5e61379464d"
},
// ...
]
}
]
}
],
"products": [
// An array of Product Objects
],
"pagination": {
"totalItems": 290,
"currentPage": 1,
"pageSize": 25,
"totalPages": 12
}
}