---
title: CatCategory - Scoped
description: The CatCategory API provides methods that enable you to create and modify service catalog categories using scripts.Adds the Available For user criteria to the current catalog category.Determines whether a specified user can view a specified category on a mobile device or desktop.Insert the defined category.Deletes the category record on which the CatCategory class was initially instantiated.Returns the sys\_id of the current category.Adds the Not Available For user criteria to a catalog category.Returns a mapping of the category.Defines the attribute values for this category.Defines the table name for this category.Updates the current category with the specified name-value pairs.
locale: en-US
canonical_url: https://www.servicenow.com/docs/r/australia/api-reference/server-api-reference/c\_CatCategory.html
release: australia
product: Server API Reference
classification: server-api-reference
topic_type: concept
last_updated: "2026-03-12"
reading_time_minutes: 4
breadcrumb: [Server API reference, API reference, API implementation and reference]
---
# CatCategory- Scoped
The CatCategory API provides methods that enable you to create and modify service catalog categories using scripts.
This API runs in the `sn_sc` namespace.
**Important:** This API is accessible; however, the recommended implementation is the [Service Catalog REST API](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/c_ServiceCatalogAPI.md).
**Parent Topic:**[Server API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/api-server.md)
## CatCategory - availableForUserCriteria\(String action, Array criteriaIDs\)
Adds the **Available For** user criteria to the current catalog category.
|
Name
|
Type
|
Description
|
|---|
|
action
|
String
|
Action to perform.- `add`: Adds the user criteria to the **Available For** list.
- `delete`: Deletes the user criteria from the **Available For** list.
|
|
criteriaIDs
|
Array
|
Array of the user criteria sys\_ids.
|
|Type|Description|
|----|-----------|
|void| |
```
var item = new sn_sc.CatCategory("31bea3d53790200044e0bfc8bcbe5dec");
item.availableForUserCriteria("add", ["0c441abbc6112275000025157c651c89"]);
```
## CatCategory - canView\(Boolean isMobile, String userSysId\)
Determines whether a specified user can view a specified category on a mobile device or desktop.
|
Name
|
Type
|
Description
|
|---|
|
isMobile
|
Boolean
|
Flag that indicates whether to verify the user for access on a mobile device or desktop.- true: Validate for mobile.
- false: Validate for desktop.
|
|
userSysId
|
String
|
Sys\_id of the user to validate.
|
|
Type
|
Description
|
|---|
|
Boolean
|
Flag that indicates whether the user can view the associated category.- true: User can view the category.
- false: User cannot view the category.
|
```
var scopedCategoryObj = new sn_sc.CatCategory('7b1262b9530033007444ddeeff7b12ae');
scopedCategoryObj.canView(false, '62826bf03710200044e0bfc8bcbe5df1');
```
## CatCategory - create\(Boolean standardUpdate\)
Insert the defined category.
|
Name
|
Type
|
Description
|
|---|
|
standardUpdate
|
Boolean
|
Flag that indicates whether to enable the running of engines and workflow.Valid values:
- true: Enable engines and workflow.
- false: Do not enable engines and workflow.
|
|Type|Description|
|----|-----------|
|String|Sys\_id of the inserted variable record.|
```
var categoryCreate = new sn_sc.CatCategory();
categoryCreate.setAttributes({"title" : "test a scoped category", "sc_catalog" : "e0d08b13c3330100c8b837659bba8fb4"});
var categorySysId = categoryCreate.create();
var isValidSysId = categorySysId.match(/^[0-9a-fA-F]{32}$/) == null ? false : true;
global.Assert.assertEquals(true, isValidSysId,"CategorySysId: ["+ categorySysId +"] is not valid", true, isValidSysId);
```
## CatCategory - deleteRecord\(Boolean standardUpdate\)
Deletes the category record on which the CatCategory class was initially instantiated.
|
Name
|
Type
|
Description
|
|---|
|
standardUpdate
|
Boolean
|
Flag that indicates whether to enable the running of engines and workflow.Valid values:
- true: Enable engines and workflow.
- false: Do not enable engines and workflow.
|
|Type|Description|
|----|-----------|
|void| |
```
var categoryDelete = new sn_sc.CatCategory(categorySysId);
categoryDelete.deleteRecord();
var category = new sn_sc.CatCategory(categorySysId);
values = category.read({"title" : "", "sc_catalog":""}, false);
global.Assert.assertEquals("", values.title,"Category should title");
```
## CatCategory - getID\(\)
Returns the sys\_id of the current category.
|Name|Type|Description|
|----|----|-----------|
|None| | |
|Type|Description|
|----|-----------|
|String|Sys\_id of the current category.|
Example:
```
var cart = new sn_sc.CatCategory("2809952237b1300054b6a3549dbe5dd4");
var categoryID = cart.getID();
gs.info(categoryID);
```
Output:
```
2809952237b1300054b6a3549dbe5dd4
```
## CatCategory - notAvailableForUserCriteria\(String action, Array\[\] criteriaIDs\)
Adds the **Not Available For** user criteria to a catalog category.
|
Name
|
Type
|
Description
|
|---|
|
action
|
String
|
Action to perform.- `add`: Adds the user criteria to the **Not Available For** list.
- `delete`: Deletes the user criteria from the **Not Available For** list.
|
|Type|Description|
|----|-----------|
|void| |
```
var item = new sn_sc.CatCategory("31bea3d53790200044e0bfc8bcbe5dec");
item. notAvailableForUserCriteria("add", ["0c441abbc6112275000025157c651c89"]);
```
## CatCategory - read\(Object columns, Boolean standardUpdate\)
Returns a mapping of the category.
|
Name
|
Type
|
Description
|
|---|
|
columns
|
Object
|
Set of columns that you would like the values for.
|
|
standardUpdate
|
Boolean
|
Flag that indicates whether to enable the running of engines and workflow.Valid values:
- true: Enable engines and workflow.
- false: Do not enable engines and workflow.
|
|Type|Description|
|----|-----------|
|Object|Mapping of column names to values.|
```
var category = new sn_sc.CatCategory("a96277509f300200b407b89a442e704e");
var values = category.read({"title" : ""}, true);
gs.log(values.title);
```
## CatCategory - setAttributes\(Object attributes\)
Defines the attribute values for this category.
|Name|Type|Description|
|----|----|-----------|
|attributes|Object|Attributes for the new field and value pairs.|
|Type|Description|
|----|-----------|
|void| |
```
var categoryCreate = new sn_sc.CatCategory();
categoryCreate.setAttributes({"title" : "test a scoped category", "sc_catalog" : "e0d08b13c3330100c8b837659bba8fb4"});
var categorySysId = categoryCreate.create();
var isValidSysId = categorySysId.match(/^[0-9a-fA-F]{32}$/) == null ? false : true;
global.Assert.assertEquals(true, isValidSysId,"CategorySysId: ["+ categorySysId +"] is not valid", true, isValidSysId);
```
## CatCategory - setTableName\(String tableName\)
Defines the table name for this category.
|Name|Type|Description|
|----|----|-----------|
|tableName|String|Name of the table that extends sc\_category.|
|Type|Description|
|----|-----------|
|void| |
```
var categoryRead = new sn_sc.CatCategory(categorySysId);
categoryRead.setTableName("test_category");
var values = categoryRead.read({"title" : "", "sc_catalog":"", "test": ""}, false);
gs.info(categorySysId);
gs.info(values.title);
gs.info(values.test);
global.Assert.assertEquals("testValue", values.test,"Category extends sc_category and stores its extended value");
```
## CatCategory - update\(Object columnValues, Boolean standardUpdate\)
Updates the current category with the specified name-value pairs.
|
Name
|
Type
|
Description
|
|---|
|
columnValues
|
Object
|
Mapping of column names to values.
|
|
standardUpdate
|
Boolean
|
Flag that indicates whether to enable the running of engines and workflow.Valid values:
- true: Enable engines and workflow.
- false: Do not enable engines and workflow.
|
|Type|Description|
|----|-----------|
|void| |
```
var categoryUpdate = new sn_sc.CatCategory(categorySysId);
categoryUpdate.update({"title" : "test changed scoped category"}, true);
values = categoryUpdate.read({"title" : "", "sc_catalog":""}, false);
global.Assert.assertEquals("test changed scoped category", values.title,"Category should title");
```