CMS Tool API

CMS Tool API schema

Public API version 1.4.10.

Categories

Categories are used to group products. Products can belong in up to 8 categories. Categories can also form a tree, with Category parent ID = 0 being the parent level category. The term group is synomous with category, so many elements are prefixed with the word group.

Endpoint URL

https://api.cms-tool.net/api/category

/api/category

Read and update product categories.

GET

List records, or retrieve one by appending its ID to the path.

Query parameters

NameTypeExampleNotes
idint123Filter results by id.
pageint123Filter results by page.
keywordstextexampleFilter results by keywords.
codetextABC123Filter results by code.
parentidint123Filter results by parentid.
filenametextexample.jpgFilter results by filename.
offsetint123Skip this many matching records before returning results.
pageSizeint123Limit the number of records returned.

POST

Create or update a record from a JSON object.

Request content type: application/json

Request body fields

NameTypeExampleNotes
idint123Set the id value.
group_nametextexampleSet the group name value.
group_codetextABC123Set the group code value.
group_parentint123Set the group parent value.
pageint123Set the page value.

Data definitions

FieldTypeDescriptionFormatExample
group_metadesctextSEO Meta Description for search engine results
group_price_rrp_ratedecimalOnly when prices of products in this category should use the rate card from a base price
group_maxlevelforseeintIf no trade customners should see this product, then the value should be 175, that includes a broad range of retail customer levels. 200 level is an authorised user.  (Validation: 175,200,300,500,999)
group_pricea_ratedecimalOnly when prices of products in this category should use the rate card from a base price
group_subtitletextSub title, optional field (specific use cases)
group_product_footertextCascade this text to all product footers. (Validation: HTML)
group_priceh_ratedecimalOnly when prices of products in this category should use the rate card from a base price
group_sort_overridetextIrrespective of how categories are usually sorted within a list of categories, this sort override will take preference. Allowing you to have a finer control over over the sorting. Sorting by this column is alphanumeric. Default sorting will take second precedence if this column is blank. Advanced users only. (Validation: eg A1, A2, B1, B2, etc)
group_priceb_ratedecimalOnly when prices of products in this category should use the rate card from a base price
group_api_setting_idintWhich API connection is active as the master/source for syncing products with this category
group_filenametextSEO Filename, can be root / based for published file, or otherwise /category/ is prepended for dynamic categories (Validation: eg /blue-suede-shoes)
group_img_jsonjsonMeta data about the primary image for the category
group_imgtextPrimary image for a category as displayed in a list of categories.  When importing data, you can reference an external URL to an image, and some minutes/hours later, the image file will be migrated to our server, and the database updated to use a local reference. (Validation: eg /images/ or https://...)
group_nametextCategory name and title. As used in category menu, or within page as the primary link text to navigate to a category. (Validation: required)
group_sortingtextOverrides the default sorting of a list of products within the category.. Sorting affects the product list. (Validation: CHRONO, ALPHA etc)
groupidserialPrimary ID for the category / group of products123456
group_api_source_nametextThe name of the third party category that is synced with this category
group_pricef_ratedecimalOnly when prices of products in this category should use the rate card from a base price
group_pricec_ratedecimalOnly when prices of products in this category should use the rate card from a base price
group_product_information_tabtextCascade this text to all product information tabs. (Validation: HTML)
group_data_jsonjsonAdditional Data about this category
group_google_categorytexteg as per https://support.google.com/merchants/answer/6324436?hl=en
group_desctextShort description, as might be displayed in a list of categories.
pageintSystem ID representing the page ID123456
group_age_targetintTarget age of product user. Only the following integers are used, indicating the closest target age group. eg 25 young adult. 50 mature adult. 70 retired. If value is > 0 then cascades to products automatically.  Used with market places. (Validation: 0,1,2,3,5,10,15,25,50,70)
group_privacy_cascadeboolOptional setting to apply the above privacy rules to all products within this category. By default, products are soft linked to categories, and category privacy does not impact on products.  (Validation: t,f)
group_all_products_categoryidintLimit the smart category choices by this category ID
group_html_footertextHTML Content displayed at the end of a category (after product list) (Validation: HTML)
group_privacy_mbrgroupidintIf only selected user groups should see this, then a non zero ID of the required member group. Usually this should be used in conjunction with a group_minlevelforsee>0 for best security.  (Validation: Fkey reference to mbr_groupid)
group_codetextA third party code used for syncing data during import/export,
group_api_source_idtextGUID or similar third party category ID that is linked to our category
group_linkgroupidintDummy link to a target category. Essentially this category doesn't exist, but simply links to the target category, and the target category name/description/url etc takes precedence for display. (Validation: FKey to groupid)
group_api_auto_last_lookuptimestampThe timestamp of the last sync of this category2025-12-31 23:59:59
group_pricee_ratedecimalOnly when prices of products in this category should use the rate card from a base price
group_banner_imagetextIf the template supports a banner, then this image will replace the page or site banner. (Validation: eg /images/)
group_search_advancedintThe category menus can be split into multiple menus, so 2 = secondary menu, 3 = third menu etc. Primarily this is used with the template advanced product search filter widget. (Validation: 0,2,3,4)
group_all_productstextNot your ordinary category, this category will ignore any products assigned to it, but will instead search all products in your database that match some special rules. (Validation: ALL = All productsNEW = New products NEW180 = New products 180 daysONSPECIAL = All discounted products REVIEWS = All products  with recent reviews.)
group_html_headertextHTML Content displayed at the top of a category (before product list) (Validation: HTML)
group_parentintSub categories will point to their parent Category ID. Top level categories will have value = 0 (Validation: Fkey to groupid )
group_madeincountrytextCountry Code of origin. (2 digit country code, one code only. Used with market places.. Cascades to products (Validation: NZ,AU,US,CA,CM,JP etc)
group_old_category_parenttextUsed during imports only...provides the parent category name, ID,. or parent code, and then converts to an ID
group_minlevelforseeintIf only trade customers should see this product, then the value is > 0. If 0, then this product is visible to public. (Validation: 0,100,200,...,999)
group_all_products_filtertextWhen using the All Product Filter Mode, this field might provide additional filter keywords to apply, eg a brand name to match on if all product filte rmode is brand.
group_metatitletextSEO Meta Title for search engine results
group_catidintOur market places integration will use this generic category ID to associate your products with relevant generic classifications (Validation: FKey to third party list)
group_priced_ratedecimalOnly when prices of products in this category should use the rate card from a base price
group_api_auto_addboolShould products be automatically added to this category?
group_priceg_ratedecimalOnly when prices of products in this category should use the rate card from a base price
group_price_checkout_ratedecimalOnly when prices of products in this category should use the rate card from a base price
group_banner_img_jsonjsonAdditional meta data about the banner image, eg size and resolution
group_api_extra_paramstextExtra parameters required to sync this category with a third party category

Sample object

 {
            "group_privacy_mbrgroupid": 0,
            "group_pricea_rate": "0.00",
            "group_linkgroupid": -9,
            "group_pricee_rate": "0.00",
            "group_duplicationid": 0,
            "group_priceh_rate": "0.00",
            "group_priceb_rate": "0.00",
            "group_search_advanced": 0,
            "id": 198902,
            "group_parent": 0,
            "group_name": "API Products",
            "groupid": 123,
            "group_pricef_rate": "0.00",
            "group_minlevelforsee": 0,
            "group_cnt_sub_categories": 0,
            "group_cnt_products": 0,
            "group_cnt_products_public": 0,
            "group_pricec_rate": "0.00",
            "group_catid": 0,
            "group_hidden": " ",
            "page": 0,
            "group_order": 100,
            "group_priced_rate": "0.00",
            "group_priceg_rate": "0.00",
            "cid": 111
        }

Machine-readable documentation

This documentation is also available as JSON or Markdown at the same URL. Request JSON with Accept: application/json or Markdown with Accept: text/markdown.