--- title: Service Catalog Open API description: The Service Catalog Open API provides endpoints to create and retrieve service specifications.Deletes the specified service category record in the Specification Category \[sn\_prd\_pm\_specification\_category\] table.Retrieves a list of all service category records in the Service Category \[sn\_prd\_pm\_specification\_category\] table.Retrieves a specific service category record in the Specification Category \[sn\_prd\_pm\_specification\_category\] table.Retrieves a list of all service specifications.Retrieves a service specification.Updates a specified record in the Specification Category \[sn\_prd\_pm\_specification\_category\] table.Creates a new service category record in the Specification Category \[sn\_prd\_pm\_specification\_category\] table.Creates a service specification. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/api-reference/rest-apis/service-catalog-open-api.html release: australia product: REST APIs classification: rest-apis topic_type: concept last_updated: "2026-03-12" reading_time_minutes: 40 breadcrumb: [REST API reference, API reference, API implementation and reference] --- # Service Catalog Open API The Service Catalog Open API provides endpoints to create and retrieve service specifications. Use this API to manage service catalog information between external systems and the ServiceNow AI Platform. The Service Catalog Open API is a ServiceNow® implementation of the TM Forum Service Catalog API REST specification. This implementation is based on the [TMF633 Service Catalog API REST Specification Version 4](https://www.tmforum.org/resources/standard/tmf633-service-catalog-api-user-guide-v4-0-0/), October 2020. This API is included in the Product Catalog Advanced application, which is available on the ServiceNow Store. This API's endpoints are provided within the `sn_tmf-api` namespace under the Product Catalog Open API name: - Create Service Category \(POST\) - [Service Catalog Open - POST /api/sn\_tmf\_api/catalogmanagement/serviceCategory](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/service-catalog-open-api.md) - Create Service Specification \(POST\) - [Service Catalog Open - POST /servicespecification](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/service-catalog-open-api.md) - Delete Service Category \(DELETE\) - [Service Catalog Open - DELETE /api/sn\_tmf\_api/catalogmanagement/serviceCategory/\{id\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/service-catalog-open-api.md) - Get Service Category \(GET\) - [Service Catalog Open - GET /api/sn\_tmf\_api/catalogmanagement/serviceCategory/\{id\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/service-catalog-open-api.md) - Get Service Specification \(GET\) - [Service Catalog Open - GET /servicespecification/\{specificationId\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/service-catalog-open-api.md) - List Service Specifications \(GET\) - [Service Catalog Open - GET /servicespecification](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/service-catalog-open-api.md) - Update Service Category \(PATCH\) - [Service Catalog Open - POST /api/sn\_tmf\_api/catalogmanagement/serviceCategory](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/service-catalog-open-api.md) The calling user must have the sn\_prd\_pm\_adv.catalog\_integrator role. This API creates and updates data in the following tables. - Characteristic \[sn\_prd\_pm\_characteristic\] - Characteristic Option \[sn\_prd\_pm\_characteristic\_option\] - Service Specification \[sn\_prd\_pm\_service\_specification\] - Specification Relationship \[sn\_prd\_pm\_specification\_relationship\] **Parent Topic:**[REST API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/api-rest.md) ## Service Catalog Open - DELETE /api/sn\_tmf\_api/catalogmanagement/serviceCategory/\{id\} Deletes the specified service category record in the Specification Category \[sn\_prd\_pm\_specification\_category\] table. ### URL format Default URL: `/api/sn_tmf_api/catalogmanagement/serviceCategory/{id}` ### Supported request parameters
| Name | Description |
|---|---|
| id | Sys\_id of the service category to delete. Table: Service category \[sn\_prd\_pm\_specification\_category\] Data type: String |
| Name | Description |
|---|---|
| fields | List of fields to return in the response. Invalid fields are ignored. Valid fields: - href - id - name Data type: String Default: Returns all fields |
| id | Filter service categories by specific sys\_id\(s\). Table: Service Category \[service\_category\] Data type: String |
| limit | Maximum number of records to return. For requests that exceed this number of records, use the **offset** parameter to paginate record retrieval. Data type: Number Default: 20 Maximum: 100 |
| offset | Starting index at which to begin retrieving records. This functionality enables the retrieval of all records, regardless of the number of records, in small manageable chunks. Use this value to paginate record retrieval. Don't use a negative number value.Data type: Number Default: 0 |
| Header | Description |
|---|---|
| Content-Range | Range of content returned in a paginated call. For example, if `offset=2` and `limit=3`, the value of the Content-Range header is items `3-5`. |
| Content-Type | Data format of the response body. Only supports application/json. |
| Link | Contains the following links to navigate through query results: - first - last - next - previous |
| X-Total-Count | For paginated queries, this header specifies the total number of records available on the server. |
| Status code | Description |
|---|---|
| 200 | Request successfully processed. Full resource returned in response \(no pagination\). |
| 206 | Partial resource returned in response \(with pagination\). |
| 400 | Bad request.Possible reasons: - Invalid path parameter - Invalid URI |
| 404 | Record not found. No records matching the query parameters are found in the table. |
| Name | Description |
|---|---|
| externalIdentifier | Identifying information for an external system involved in managing categories.Data type: Array of Objects ``` "externalIdentifier": [ { "id": "String", "owner": "String" } ] ``` |
| externalIdentifier.id | Unique identifier for the service category. This value is determined by an external system. Data type: String Table: Service Category \[sn\_prd\_pm\_specification\_category\], field external\_id |
| externalIdentifier.owner | The system that owns the given external ID. Data type: String |
| href | Hyperlink to access the service category.Data type: String |
| id | Sys\_id of the service category. Table: Service Category \[sn\_prd\_pm\_specification\_category\] Data type: String |
| isRoot | Flag that indicates whether the category is a root of categories.Valid values: - true: Category is a root of categories. - false: Category isn't a root of categories. Data type: Boolean |
| modelCategory | List of model categories associated with the service category.Data type: Array of Objects ``` "modelCategory": [ { "id": "String", "name": "String" } ] ``` |
| modelCategory.id | Sys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| modelCategory.name | Name of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| name | Name of the service category.Data type: String |
| serviceCandidate | List of service candidates references associated with this category.Data type: Array of Objects ``` "serviceCandidate": [ { "id": "String", "href": "String", "name": "String", "@referredType": "String", "version": "String" } ] ``` |
| serviceCandidate.@referredType | Value is always `ServiceCategory`.Data type: String |
| serviceCandidate.href | Hyperlink to access the service specification.Data type: String |
| serviceCandidate.id | Sys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String |
| serviceCandidate.version | Version of the service candidate.Data type: String |
| Name | Description |
|---|---|
| id | Sys\_id of the service category to retrieve.Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String |
| Name | Description |
|---|---|
| fields | List of fields to return in the response. Invalid fields are ignored. Valid fields: - href - id - name Data type: String Default: Returns all fields |
| limit | Maximum number of records to return. For requests that exceed this number of records, use the **offset** parameter to paginate record retrieval. Data type: Number Default: 20 Maximum: 100 |
| offset | Starting index at which to begin retrieving records. This functionality enables the retrieval of all records, regardless of the number of records, in small manageable chunks. Use this value to paginate record retrieval. Don't use a negative number value.Data type: Number Default: 0 |
| Header | Description |
|---|---|
| Content-Range | Range of content returned in a paginated call. For example, if `offset=2` and `limit=3`, the value of the Content-Range header is items `3-5`. |
| Content-Type | Data format of the response body. Only supports application/json. |
| Link | Contains the following links to navigate through query results: - first - last - next - previous |
| X-Total-Count | For paginated queries, this header specifies the total number of records available on the server. |
| Status code | Description |
|---|---|
| 200 | Request successfully processed. Full resource returned in response \(no pagination\). |
| 206 | Partial resource returned in response \(with pagination\). |
| 400 | Bad request.Possible reasons: - Invalid path parameter - Invalid URI |
| 404 | Record not found. No records matching the query parameters are found in the table. |
| Name | Description |
|---|---|
| externalIdentifier | Identifying information for an external system involved in managing categories.Data type: Array of objects ``` "externalIdentifier": [ { "id": "String", "owner": "String" } ] ``` |
| externalIdentifier.id | Unique identifier for the service category. This value is determined by an external system. Data type: String Table: Specification Category \[sn\_prd\_pm\_specification\_category\], Field: external\_id |
| externalIdentifier.owner | The system that owns this ID. Data type: String |
| href | Hyperlink to access the service category.Data type: string |
| id | Sys\_id of the service category. Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String |
| isRoot | Flag that indicates whether the category is a root of categories.Valid values: - true: Category is a root of categories. - false: Category isn't a root of categories. Data type:Boolean |
| modelCategory | List of model categories associated with the service category.Data type: Array of objects ``` "modelCategory": [ { "id": "String", "name": "String" } ] ``` |
| modelCategory.id | Sys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| modelCategory.name | Name of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| name | Name of the service category.Data type: String |
| serviceCandidate | List of service candidates associated with this category.Data type: Array of Objects ``` "serviceCandidate": [ { "id": "String", "href": "String", "name": "String", "@referredType": "String", "version": "String" } ] ``` |
| serviceCandidate.@referredType | Referred type of the service candidate. Value is always `ServiceCategory`.Data type: String |
| serviceCandidate.href | Hyperlink to access the service specification.Data type: String |
| serviceCandidate.id | Sys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String |
| serviceCandidate.version | Version of the service candidate.Data type: String |
| Name | Description |
|---|---|
| fields | List of fields to return in the response. Invalid fields are ignored. If this parameter is not used, all fields are returned. Data type: String |
| limit | Maximum number of records to return. For requests that exceed this number of records, use the **offset** parameter to paginate record retrieval. Data type: Number Default: 20 Maximum: 100 |
| offset | Starting index at which to begin retrieving records. Use this value to paginate record retrieval. This functionality enables the retrieval of all records, regardless of the number of records, in small manageable chunks.Data type: Number Default: 0 |
| state | Filter service specifications by state. Only specifications with a state matching the value of this parameter are returned in the response.Data type: String |
| Header | Description |
|---|---|
| Content-Range | Range of content returned in a paginated call. For example, if `offset=2` and `limit=3`, the value of the **Content-Range** header is `items 3-5`. |
| Content-Type | Data format of the response body. Only supports **application/json**. |
| Link | Contains the following links to navigate through query results.- first - last - next - previous |
| X-Total-Count | For paginated queries, this header specifies the total number of records available on the server. |
| Status code | Description |
|---|---|
| 200 | Request successfully processed. Full resource returned in response \(no pagination\). |
| 206 | Partial resource returned in response \(with pagination\). |
| 400 | Bad request. Possible reasons: - Invalid path parameter - Invalid URI |
| 404 | Record not found. No records matching the query parameters are found in the table. |
| Name | Description |
|---|---|
| @type | Type of specification.Data type: String |
| description | Description of the specification.Data type: String |
| externalId | External ID of the service specification.Data type: String Table: In the external\_id field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| externalSystem | External system of the service specification, appended with `TMF633`. For example, if the external system is ABC then enter the value in **externalSystem** as `ABC-TMF633`. Data Type: String |
| externalSystem | Third-party or non-native platform that interacts with the service catalog. Value is always appended with `TMF633`. For example, if the external system is `ABC` then the value in the external source should be `ABC-TMF633`. Data type: String |
| id | Initial version or external ID of the service specification.Data type: String Table: In the initial\_version or external\_id field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| internalId | Initial version of the service specification.Data type: String Table: In the initial\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| internalVersion | Version of the service specification.Data type: String Table: In the version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| lastUpdate | Date the specification was last updated.Data type: String |
| name | Name of the specification.Data type: String |
| resourceSpecification | Resource specifications for this service specification.Data type: Array of Objects ``` "resourceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] ``` |
| resourceSpecification.id | The initial\_version or external\_id of the resource specification.Data type: String |
| resourceSpecification.internalId | The initial\_version of the resource specification.Data type: String |
| resourceSpecification.internalVersion | The external\_version of the resource specification.Data type: String |
| resourceSpecification.name | Name of the resource specification.Data type: String |
| resourceSpecification.version | Version of the resource specification.Data type: String |
| serviceSpecificationRelationship | This specification's relationships to other service specifications.Data type: Array of Objects ``` "serviceSpecificationRelationship": [ { "id": "String", "internalId": "String", "internalVersion": "String", "relationshipType": "String", "validFor": {Object}, "version": "String" } ] ``` |
| serviceSpecificationRelationship.id | The initial\_version or external\_id of the related specification.Data type: String |
| serviceSpecificationRelationship.internalId | The initial\_version of the related specification.Data type: String |
| serviceSpecificationRelationship.internalVersion | Version of the related specification.Data type: String |
| serviceSpecificationRelationship.relationshipType | Type of relationship.Data type: String |
| serviceSpecificationRelationship.validFor | Date range the relationship is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| serviceSpecificationRelationship.validFor.endDateTime | End date of the relationship.Data type: String |
| serviceSpecificationRelationship.validFor.startDateTime | Start date of the relationship.Data type: String |
| serviceSpecificationRelationship.version | The external\_version of the related specification.Data type: String |
| specCharacteristic | Specification characteristic.Data type: Array of Objects ``` "specCharacteristic": [ { "characteristicValueSpecification": [Array], "description": "String", "name": "String", "validFor": {Object}, "valueType": "String" } ] ``` |
| specCharacteristic.characteristicValueSpecification | List of possible values of the characteristic.Data type: Array of Objects ``` "characteristicValueSpecification": [ { "value": "String" } ] ``` |
| specCharacteristic.characteristicValueSpecification.value | Value of the characteristic.Data type: String |
| specCharacteristic.description | Description of the characteristic.Data type: String |
| specCharacteristic.name | Name of the characteristic.Data type: String |
| specCharacteristic.validFor | Date range the characteristic is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| specCharacteristic.validFor.endDateTime | End date of the characteristic.Data type: String |
| specCharacteristic.validFor.startDateTime | Start date of the characteristic.Data type: String |
| specCharacteristic.valueType | Value type of the characteristic, such as choice or email. Can be a simple or complex characteristic.Possible values: - Date,Address - Integer,Date/Time - Array.Integer - Array.Single Line Test - Single Line Text - Array.Obect - Array.Date - Array.Decimal - Yes/No - Object - Array.Datetime - Checkbox - Email - Choice Data type: String |
| validFor | Date range the specification is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| validFor.endDateTime | End date of the specification.Data type: String |
| validFor.startDateTime | Start date of the specification.Data type: String |
| version | External version of the service specification.Data type: String Table: In the external\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| Name | Description |
|---|---|
| specificationId | Sys\_id of the service specification to retrieve.Data type: String Table: Service Specification \[sn\_prd\_pm\_service\_specification\] |
| Name | Description |
|---|---|
| fields | List of fields to return in the response. Invalid fields are ignored. If this parameter is not used, all fields are returned. Data type: String |
| state | Filter service specifications by state. Only specifications with a state matching the value of this parameter are returned in the response.Data type: String |
| Status code | Description |
|---|---|
| 200 | Request successfully processed. |
| 400 | Bad Request. Could be any of the following reasons: - Invalid path parameter - Invalid URI |
| 404 | Record not found. Record associated with the ID is not found in the table. |
| Name | Description |
|---|---|
| @type | Type of specification.Data type: String |
| description | Description of the specification.Data type: String |
| externalId | External ID of the service specification.Data type: String Table: In the external\_id field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| externalSystem | External system of the service specification, appended with `TMF633`. For example, if the external system is ABC then enter the value in **externalSystem** as `ABC-TMF633`. Data Type: String |
| externalSystem | Third-party or non-native platform that interacts with the service catalog. Value is always appended with `TMF633`. For example, if the external system is `ABC` then the value in the external source should be `ABC-TMF633`. Data type: String |
| id | Initial version or external ID of the service specification.Data type: String Table: In the initial\_version or external\_id field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| internalId | Initial version of the service specification.Data type: String Table: In the initial\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| internalVersion | Version of the service specification.Data type: String Table: In the version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| lastUpdate | Date the specification was last updated.Data type: String |
| name | Name of the specification.Data type: String |
| resourceSpecification | Resource specifications for this service specification.Data type: Array of Objects ``` "resourceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] ``` |
| resourceSpecification.id | The initial\_version or external\_id of the resource specification.Data type: String |
| resourceSpecification.internalId | The initial\_version of the resource specification.Data type: String |
| resourceSpecification.internalVersion | The external\_version of the resource specification.Data type: String |
| resourceSpecification.name | Name of the resource specification.Data type: String |
| resourceSpecification.version | Version of the resource specification.Data type: String |
| serviceSpecificationRelationship | This specification's relationships to other service specifications.Data type: Array of Objects ``` "serviceSpecificationRelationship": [ { "id": "String", "internalId": "String", "internalVersion": "String", "relationshipType": "String", "validFor": {Object}, "version": "String" } ] ``` |
| serviceSpecificationRelationship.id | The initial\_version or external\_id of the related specification.Data type: String |
| serviceSpecificationRelationship.internalId | The initial\_version of the related specification.Data type: String |
| serviceSpecificationRelationship.internalVersion | Version of the related specification.Data type: String |
| serviceSpecificationRelationship.relationshipType | Type of relationship.Data type: String |
| serviceSpecificationRelationship.validFor | Date range the relationship is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| serviceSpecificationRelationship.validFor.endDateTime | End date of the relationship.Data type: String |
| serviceSpecificationRelationship.validFor.startDateTime | Start date of the relationship.Data type: String |
| serviceSpecificationRelationship.version | The external\_version of the related specification.Data type: String |
| specCharacteristic | Specification characteristic.Data type: Array of Objects ``` "specCharacteristic": [ { "characteristicValueSpecification": [Array], "description": "String", "name": "String", "validFor": {Object}, "valueType": "String" } ] ``` |
| specCharacteristic.characteristicValueSpecification | List of possible values of the characteristic.Data type: Array of Objects ``` "characteristicValueSpecification": [ { "value": "String" } ] ``` |
| specCharacteristic.characteristicValueSpecification.value | Value of the characteristic.Data type: String |
| specCharacteristic.description | Description of the characteristic.Data type: String |
| specCharacteristic.name | Name of the characteristic.Data type: String |
| specCharacteristic.validFor | Date range the characteristic is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| specCharacteristic.validFor.endDateTime | End date of the characteristic.Data type: String |
| specCharacteristic.validFor.startDateTime | Start date of the characteristic.Data type: String |
| specCharacteristic.valueType | Value type of the characteristic, such as choice or email. Can be a simple or complex characteristic.Possible values: - Date,Address - Integer,Date/Time - Array.Integer - Array.Single Line Test - Single Line Text - Array.Obect - Array.Date - Array.Decimal - Yes/No - Object - Array.Datetime - Checkbox - Email - Choice Data type: String |
| validFor | Date range the specification is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| validFor.endDateTime | End date of the specification.Data type: String |
| validFor.startDateTime | Start date of the specification.Data type: String |
| version | External version of the service specification.Data type: String Table: In the external\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| Name | Description |
|---|---|
| id | Sys\_id of the service category table.Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String |
| Name | Description |
|---|---|
| externalIdentifier | Identifying information for an external system involved in managing categories.Data type: Array of Objects ``` "externalIdentifier": [ { "id": "String", "owner": "String" } ] ``` |
| externalIdentifier.id | Unique identifier for the service category. This value is determined by an external system. Table: Specification Category \[sn\_prd\_pm\_specification\_category\], Field: external\_id Data type: String |
| externalIdentifier.owner | The system that owns this ID. Data type: String |
| href | Hyperlink to access the service category.Data type: String |
| id | Sys\_id of the service category. Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String |
| isRoot | Flag that indicates whether the category is a root of categories.Valid values: - true: Category is a root of categories. - false: Category isn't a root of categories. Data type: Boolean |
| modelCategory | List of model categories associated with the service category.Data type: Array of Objects ``` "modelCategory": [ { "id": "String", "name": "String" } ] ``` |
| modelCategory.id | Sys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| modelCategory.name | Name of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| name | Name of the service category.Data type: String |
| serviceCandidate | List of service candidates associated with this category.Data type: Array of objects ``` "serviceCandidate": [ { "@referredType": "String", "href": "String", "id": "String", "name": "String", "version": "String" } ] ``` |
| serviceCandidate.@referredType | Value is always `ServiceCategory`.Data type: String |
| serviceCandidate.href | Hyperlink to access the service specification.Data type: String |
| serviceCandidate.id | Sys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String |
| serviceCandidate.version | Version of the service candidate.Data type: String |
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json** |
| Status code | Description |
|---|---|
| 201 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected for one or more of the following reasons: - Empty payload. - Invalid payload. - Mandatory field missing. |
| Name | Description |
|---|---|
| externalIdentifier | Identifying information for an external system involved in managing categories.Data type: Array of objects ``` "externalIdentifier": [ { "id": "String", "owner": "String" } ] ``` |
| externalIdentifier.id | Unique identifier for the service category. This value is determined by an external system. Data type: String Table: Specification Category \[sn\_prd\_pm\_specification\_category\], Field: external\_id |
| externalIdentifier.owner | The system that owns this ID. Data type: String |
| href | Hyperlink to access the service category.Data type: string |
| id | Sys\_id of the service category. Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String |
| isRoot | Flag that indicates whether the category is a root of categories.Valid values: - true: Category is a root of categories. - false: Category isn't a root of categories. Data type:Boolean |
| modelCategory | List of model categories associated with the service category.Data type: Array of objects ``` "modelCategory": [ { "id": "String", "name": "String" } ] ``` |
| modelCategory.id | Sys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| modelCategory.name | Name of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| name | Name of the service category.Data type: string |
| serviceCandidate | List of service candidates associated with this category.Data type: Array of objects ``` "serviceCandidate": [ { "@referredType": "String", "href": "String", "id": "String", "name": "String", "version": "String" } ] ``` |
| serviceCandidate.@referredType | Value is always `ServiceCategory`.Data type: String |
| serviceCandidate.href | Hyperlink to access the service specification.Data type: String |
| serviceCandidate.id | Sys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String |
| serviceCandidate.version | Version of the service candidate.Data type: String |
| Name | Description |
|---|---|
| externalIdentifier | Identifying information for an external system involved in managing categories.Data type: Array of Objects ``` "externalIdentifier": [ { "id": "String", "owner": "String" } ] ``` |
| externalIdentifier.id | Unique identifier for the service category. This value is determined by an external system. Table: Specification Category \[sn\_prd\_pm\_specification\_category\], Field: external\_id Data type: String |
| externalIdentifier.owner | The system that owns this ID. Data type: String |
| href | Hyperlink to access the service category.Data type: String |
| id | Sys\_id of the service category. Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String |
| isRoot | Flag that indicates whether the category is a root of categories.Valid values: - true: Category is a root of categories. - false: Category isn't a root of categories. Data type: Boolean |
| modelCategory | List of model categories associated with the service category.Data type: Array of Objects ``` "modelCategory": [ { "id": "String", "name": "String" } ] ``` |
| modelCategory.id | Sys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| modelCategory.name | Name of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| name | Name of the service category.Data type: String |
| serviceCandidate | List of service candidates associated with this category.Data type: Array of objects ``` "serviceCandidate": [ { "id": "String", "href": "String", "name": "String", "@referredType": "String", "version": "String" } ] ``` |
| serviceCandidate.@referredType | Value is always `ServiceCategory`.Data type: String |
| serviceCandidate.href | Hyperlink to access the service specification.Data type: String |
| serviceCandidate.id | Sys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String |
| serviceCandidate.version | Version of the service candidate.Data type: String |
| Status code | Description |
|---|---|
| 201 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected for one or more of the following reasons: - Empty payload. - Invalid payload. - Mandatory field missing. |
| Name | Description |
|---|---|
| externalIdentifier | Identifying information for an external system involved in managing categories.Data type: Array of objects ``` "externalIdentifier": [ { "id": "String", "owner": "String" } ] ``` |
| externalIdentifier.id | Unique identifier for the service category. This value is determined by an external system. Data type: String Table: Specification Category \[sn\_prd\_pm\_specification\_category\], Field: external\_id |
| externalIdentifier.owner | The system that owns this ID. Data type: String |
| href | Hyperlink to access the service category.Data type: string |
| id | Sys\_id of the service category. Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String |
| isRoot | Flag that indicates whether the category is a root of categories.Valid values: - true: Category is a root of categories. - false: Category isn't a root of categories. Data type:Boolean |
| modelCategory | List of model categories associated with the service category.Data type: Array of objects ``` "modelCategory": [ { "id": "String", "name": "String" } ] ``` |
| modelCategory.id | Sys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| modelCategory.name | Name of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String |
| name | Name of the service category.Data type: string |
| serviceCandidate | List of service candidates associated with this category.Data type: Array of objects ``` "serviceCandidate": [ { "id": "String", "href": "String", "name": "String", "@referredType": "String", "version": "String" } ] ``` |
| serviceCandidate.@referredType | Value is always `ServiceCategory`.Data type: String |
| serviceCandidate.href | Hyperlink to access the service specification.Data type: String |
| serviceCandidate.id | Sys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String |
| serviceCandidate.version | Version of the service candidate.Data type: String |
| Name | Description |
|---|---|
| description | Required. Description of the specification.Data type: String |
| externalId | External ID of the service specification.If both **externalId** and **id** are provided, they must refer to the same specification. Data type: String Default: Blank string Table: Service Specification \[sn\_prd\_pm\_service\_specification\] |
| externalSystem | Third-party or non-native platform that interacts with the service catalog. Value is always appended with `TMF633`.For example, if the external system is `ABC` then the value in the external source should be `ABC-TMF633`. Data type: String |
| id | The initial\_version or external\_id of the service specification. If **id** is not provided, this endpoint creates a new specification with version=1. If **id** is provided, this endpoint creates a new version of the given specification. If both **externalId** and **id** are provided, they must refer to the same specification. Data type: String Default: Blank string |
| internalVersion | Version of the service specification.Data type: String Default: Blank string Table: Service Specification \[sn\_prd\_pm\_service\_specification\] |
| lastUpdate | Date the specification was last updated.Data type: String Default: Blank string |
| name | Required. Name of the specification.Data type: String |
| resourceSpecification | Required. Resource specifications for this service specification.Data type: Array of Objects ``` "resourceSpecification": [ { "id": "String", "internalVersion": "String", "name": "String", "version": "String" } ] ``` |
| resourceSpecification.id | Required. The initial\_version or external\_id of the resource specification.Data type: String |
| resourceSpecification.internalVersion | The external\_version of the resource specification.Data type: String Default: Blank string |
| resourceSpecification.name | Name of the resource specification.Data type: String Default: Blank string |
| resourceSpecification.version | Version of the resource specification.Data type: String Default: Blank string |
| serviceSpecificationRelationship | Details of the specification's relationships to other service specifications.Data type: Array of Objects ``` "serviceSpecificationRelationship": [ { "id": "String", "internalVersion": "String", "relationshipType": "String", "validFor": {Object}, "version": "String" } ] ``` |
| serviceSpecificationRelationship.id | Required if using the **serviceSpecificationRelationship** parameter. Initial\_version or external\_id of the related specification.Data type: String |
| serviceSpecificationRelationship.internalVersion | Version of the related specification.Data type: String Default: Blank string |
| serviceSpecificationRelationship.relationshipType | Required if using the **serviceSpecificationRelationship** parameter. Type of relationship.Valid values: - bundles - composed\_of Data type: String |
| serviceSpecificationRelationship.validFor | Date range the relationship is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| serviceSpecificationRelationship.validFor.endDateTime | End date of the relationship.Data type: String Default: Blank string |
| serviceSpecificationRelationship.validFor.startDateTime | Start date of the relationship.Data type: String Default: Blank string |
| serviceSpecificationRelationship.version | The external\_version of the related specification.Data type: String Default: Blank string |
| specCharacteristic | Specification characteristic.Data type: Array of Objects ``` "specCharacteristic": [ { "characteristicValueSpecification": [Array], "description": "String", "name": "String", "validFor": {Object}, "valueType": "String" } ] ``` |
| specCharacteristic.characteristicValueSpecification | Required. Possible values of the characteristic.Data type: Array of Objects ``` "characteristicValueSpecification": [ { "value": "String" } ] ``` |
| specCharacteristic.characteristicValueSpecification.value | Required. Value of the characteristic.Data type: String |
| specCharacteristic.description | Description of the characteristic.Data type: String Default: Blank string |
| specCharacteristic.name | Required. Name of the characteristic.Data type: String |
| specCharacteristic.validFor | Date range the characteristic is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| specCharacteristic.validFor.endDateTime | End date of the characteristic.Data type: String Default: Blank string |
| specCharacteristic.validFor.startDateTime | Start date of the characteristic.Data type: String Default: Blank string |
| specCharacteristic.valueType | Value type of the characteristic, such as choice or email. Can be a simple or complex characteristic.Possible values: - Date,Address - Integer,Date/Time - Array.Integer - Array.Single Line Test - Single Line Text - Array.Obect - Array.Date - Array.Decimal - Yes/No - Object - Array.Datetime - Checkbox - Email - Choice Data type: String |
| validFor | Required. Date range the specification is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| validFor.endDateTime | End date of the specification.Data type: String Default: Blank string |
| validFor.startDateTime | Start date of the specification.Data type: String Default: Blank string |
| version | External version of the service specification. Version must be unique for the given version chain. Data type: String Default: Blank string Table: In the external\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| @type | Required. Type of specification.Valid values: - CustomerFacingServiceSpecification - ResourceFacingServiceSpecification Data type: String |
| Status code | Description |
|---|---|
| 201 | Request successfully processed. |
| 400 | Bad Request. Could be any of the following reasons: - Empty payload. - Invalid payload. Mandatory field missing: <field name> |
| Name | Description |
|---|---|
| @type | Type of specification.Data type: String |
| description | Description of the specification.Data type: String |
| externalId | External ID of the service specification.Data type: String Table: In the external\_id field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| externalSystem | External system of the service specification, appended with `TMF633`. For example, if the external system is ABC then enter the value in **externalSystem** as `ABC-TMF633`. Data Type: String |
| externalSystem | Third-party or non-native platform that interacts with the service catalog. Value is always appended with `TMF633`. For example, if the external system is `ABC` then the value in the external source should be `ABC-TMF633`. Data type: String |
| id | Initial version or external ID of the service specification.Data type: String Table: In the initial\_version or external\_id field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| internalId | Initial version of the service specification.Data type: String Table: In the initial\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| internalVersion | Version of the service specification.Data type: String Table: In the version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |
| lastUpdate | Date the specification was last updated.Data type: String |
| name | Name of the specification.Data type: String |
| resourceSpecification | Resource specifications for this service specification.Data type: Array of Objects ``` "resourceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] ``` |
| resourceSpecification.id | The initial\_version or external\_id of the resource specification.Data type: String |
| resourceSpecification.internalId | The initial\_version of the resource specification.Data type: String |
| resourceSpecification.internalVersion | The external\_version of the resource specification.Data type: String |
| resourceSpecification.name | Name of the resource specification.Data type: String |
| resourceSpecification.version | Version of the resource specification.Data type: String |
| serviceSpecificationRelationship | This specification's relationships to other service specifications.Data type: Array of Objects ``` "serviceSpecificationRelationship": [ { "id": "String", "internalId": "String", "internalVersion": "String", "relationshipType": "String", "validFor": {Object}, "version": "String" } ] ``` |
| serviceSpecificationRelationship.id | The initial\_version or external\_id of the related specification.Data type: String |
| serviceSpecificationRelationship.internalId | The initial\_version of the related specification.Data type: String |
| serviceSpecificationRelationship.internalVersion | Version of the related specification.Data type: String |
| serviceSpecificationRelationship.relationshipType | Type of relationship.Data type: String |
| serviceSpecificationRelationship.validFor | Date range the relationship is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| serviceSpecificationRelationship.validFor.endDateTime | End date of the relationship.Data type: String |
| serviceSpecificationRelationship.validFor.startDateTime | Start date of the relationship.Data type: String |
| serviceSpecificationRelationship.version | The external\_version of the related specification.Data type: String |
| specCharacteristic | Specification characteristic.Data type: Array of Objects ``` "specCharacteristic": [ { "characteristicValueSpecification": [Array], "description": "String", "name": "String", "validFor": {Object}, "valueType": "String" } ] ``` |
| specCharacteristic.characteristicValueSpecification | List of possible values of the characteristic.Data type: Array of Objects ``` "characteristicValueSpecification": [ { "value": "String" } ] ``` |
| specCharacteristic.characteristicValueSpecification.value | Value of the characteristic.Data type: String |
| specCharacteristic.description | Description of the characteristic.Data type: String |
| specCharacteristic.name | Name of the characteristic.Data type: String |
| specCharacteristic.validFor | Date range the characteristic is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| specCharacteristic.validFor.endDateTime | End date of the characteristic.Data type: String |
| specCharacteristic.validFor.startDateTime | Start date of the characteristic.Data type: String |
| specCharacteristic.valueType | Value type of the characteristic, such as choice or email. Can be a simple or complex characteristic.Possible values: - Date,Address - Integer,Date/Time - Array.Integer - Array.Single Line Test - Single Line Text - Array.Obect - Array.Date - Array.Decimal - Yes/No - Object - Array.Datetime - Checkbox - Email - Choice Data type: String |
| validFor | Date range the specification is valid for.Data type: Object ``` "validFor": { "endDateTime": "String", "startDateTime": "String" } ``` |
| validFor.endDateTime | End date of the specification.Data type: String |
| validFor.startDateTime | Start date of the specification.Data type: String |
| version | External version of the service specification.Data type: String Table: In the external\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table. |