Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

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, 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:

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

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

NameDescription
idSys\_id of the service category to delete. Table: Service category \[sn\_prd\_pm\_specification\_category\] Data type: String
NameDescription
None 
NameDescription
None 

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

HeaderDescription
AcceptData format of the request body. Only supports application/json.
HeaderDescription
None 

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status codeDescription
204No content.
400Bad request. A bad request type or malformed request was detected.

Response body parameters (JSON or XML)

NameDescription
None

cURL request

The following example deletes a service category with ID, a1b23456c7de8a90f0123456gh789ij. Returns a status code with messaging.

curl "https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/serviceCategory/a1b23456c7de8a90f0123456gh789ij" \
  --request DELETE \
  --header "Accept:application/json" \
  --user 'user:password'

Service Catalog Open - GET /api/sn_tmf_api/catalogmanagement/serviceCategory

Retrieves a list of all service category records in the Service Category [sn_prd_pm_specification_category] table.

URL format

Default URL: /api/sn_tmf_api/catalogmanagement/serviceCategory

Supported request parameters

NameDescription
None 
NameDescription
fieldsList of fields to return in the response. Invalid fields are ignored. Valid fields: - href - id - name Data type: String Default: Returns all fields
idFilter 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

offsetStarting 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
NameDescription
None 

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

HeaderDescription
Accept:application/json 
HeaderDescription
Content-RangeRange 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-TypeData format of the response body. Only supports application/json.
LinkContains the following links to navigate through query results: - first - last - next - previous
X-Total-CountFor paginated queries, this header specifies the total number of records available on the server.

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status codeDescription
200Request successfully processed. Full resource returned in response \(no pagination\).
206Partial resource returned in response \(with pagination\).
400Bad request.Possible reasons: - Invalid path parameter - Invalid URI
404Record not found. No records matching the query parameters are found in the table.

Response body parameters (JSON or XML)

NameDescription
externalIdentifierIdentifying information for an external system involved in managing categories.Data type: Array of Objects
"externalIdentifier": [
 {
  "id": "String",
  "owner": "String"
 }
]
externalIdentifier.idUnique 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.ownerThe system that owns the given external ID. Data type: String
hrefHyperlink to access the service category.Data type: String
idSys\_id of the service category. Table: Service Category \[sn\_prd\_pm\_specification\_category\] Data type: String
isRootFlag 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
modelCategoryList of model categories associated with the service category.Data type: Array of Objects
"modelCategory": [
 {
  "id": "String",
  "name": "String"
 }
]
modelCategory.idSys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
modelCategory.nameName of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
nameName of the service category.Data type: String
serviceCandidateList 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.@referredTypeValue is always `ServiceCategory`.Data type: String
serviceCandidate.hrefHyperlink to access the service specification.Data type: String
serviceCandidate.idSys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String
serviceCandidate.versionVersion of the service candidate.Data type: String

cURL request

The following example calls the GET operation to return a list of all service category records in theService Category [sn_prd_pm_specification_category] table.

curl "https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/serviceCategory" \
  --request GET \
  --header "Accept:application/json" \
  --user 'user:password'
``

Response body.

{
  "id": "a1b23456c7de8a90f0123456gh789ij",
  "href": "api/sn_tmf_api/service_catalog_api/serviceCategory/a2a68216d9ce2a90f87718429ae503dd",
  "name": "Cloud Services",
  "serviceCandidate": [
    {
      "id": "14fbd5ead902ea90f87718429ae503f7",
      "href": "api/sn_tmf_api/catalogmanagement/serviceSpecification/14fbd5ead902ea90f87718429ae503f7",
      "version": "1",
      "name": "servicenow",
      "@referredType": "ServiceCategory"
    }
  ],
  "modelCategory": [
    {
      "id": "a1d5bc14c3031000b959fd251eba8f5f",
      "name": "Business Service"
    }
  ],
  "externalIdentifier": [
    {
      "id": "1234234312",
      "owner": "TMF200000123233"
    }
  ],
  "isRoot": "true"
}

Service Catalog Open - GET /api/sn_tmf_api/catalogmanagement/serviceCategory/{id}

Retrieves a specific service category record in the Specification Category [sn_prd_pm_specification_category] table.

URL format

Default URL: /api/sn_tmf_api/catalogmanagement/serviceCategory

Supported request parameters

NameDescription
idSys\_id of the service category to retrieve.Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String
NameDescription
fieldsList 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

offsetStarting 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
NameDescription
None 

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

HeaderDescription
Accept:application/json 
HeaderDescription
Content-RangeRange 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-TypeData format of the response body. Only supports application/json.
LinkContains the following links to navigate through query results: - first - last - next - previous
X-Total-CountFor paginated queries, this header specifies the total number of records available on the server.

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status codeDescription
200Request successfully processed. Full resource returned in response \(no pagination\).
206Partial resource returned in response \(with pagination\).
400Bad request.Possible reasons: - Invalid path parameter - Invalid URI
404Record not found. No records matching the query parameters are found in the table.

Response body parameters (JSON or XML)

NameDescription
externalIdentifierIdentifying information for an external system involved in managing categories.Data type: Array of objects
"externalIdentifier": [
 {
  "id": "String",
  "owner": "String"
 }
]
externalIdentifier.idUnique 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.ownerThe system that owns this ID. Data type: String
hrefHyperlink to access the service category.Data type: string
idSys\_id of the service category. Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String
isRootFlag 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
modelCategoryList of model categories associated with the service category.Data type: Array of objects
"modelCategory": [
 {
  "id": "String",
  "name": "String"
 }
]
modelCategory.idSys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
modelCategory.nameName of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
nameName of the service category.Data type: String
serviceCandidateList of service candidates associated with this category.Data type: Array of Objects
"serviceCandidate": [
 {
  "id": "String",
  "href": "String",
  "name": "String",
  "@referredType": "String",
  "version": "String" 
 }
]
serviceCandidate.@referredTypeReferred type of the service candidate. Value is always `ServiceCategory`.Data type: String
serviceCandidate.hrefHyperlink to access the service specification.Data type: String
serviceCandidate.idSys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String
serviceCandidate.versionVersion of the service candidate.Data type: String

cURL request

The following example calls the GET operation to return a specific service category record according to a given ID, a2a68216d9ce2a90f87718429ae503dd.

curl "https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/serviceCategory/a1b23456c7de8a90f0123456gh789ij" \
  --request GET \
  --header "Accept:application/json" \
  --user 'user:password'

Response body.

{
  "id": "a2a68216d9ce2a90f87718429ae503dd",
  "href": "api/sn_tmf_api/service_catalog_api/serviceCategory/a1b23456c7de8a90f0123456gh789ij",
  "name": "Cloud Services",
  "serviceCandidate": [
    {
      "id": "a1b23456c7de8a90f0123456gh789ij",
      "href": "api/sn_tmf_api/catalogmanagement/serviceSpecification/a1b23456c7de8a90f0123456gh789ij",
      "version": "1",
      "name": "servicenow",

Service Catalog Open - GET /servicespecification

Retrieves a list of all service specifications.

URL format

Default URL: /api/sn_prd_pm_adv/catalogmanagement/servicespecification

Supported request parameters

NameDescription
None 
NameDescription
fieldsList 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

offsetStarting 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
stateFilter service specifications by state. Only specifications with a state matching the value of this parameter are returned in the response.Data type: String
NameDescription
None 

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

HeaderDescription
None 
HeaderDescription
Content-RangeRange 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-TypeData format of the response body. Only supports application/json.
X-Total-CountFor paginated queries, this header specifies the total number of records available on the server.

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status codeDescription
200Request successfully processed. Full resource returned in response \(no pagination\).
206Partial resource returned in response \(with pagination\).
400Bad request. Possible reasons: - Invalid path parameter - Invalid URI
404Record not found. No records matching the query parameters are found in the table.

Response body parameters (JSON)

NameDescription
@typeType of specification.Data type: String
descriptionDescription of the specification.Data type: String
externalIdExternal 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

externalSystemThird-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
idInitial 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.
internalIdInitial version of the service specification.Data type: String Table: In the initial\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table.
internalVersionVersion of the service specification.Data type: String Table: In the version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table.
lastUpdateDate the specification was last updated.Data type: String
nameName of the specification.Data type: String
resourceSpecificationResource specifications for this service specification.Data type: Array of Objects
"resourceSpecification": [
  {
    "id": "String",
    "internalId": "String",
    "internalVersion": "String",
    "name": "String",
    "version": "String"
  }
]
resourceSpecification.idThe initial\_version or external\_id of the resource specification.Data type: String
resourceSpecification.internalIdThe initial\_version of the resource specification.Data type: String
resourceSpecification.internalVersionThe external\_version of the resource specification.Data type: String
resourceSpecification.nameName of the resource specification.Data type: String
resourceSpecification.versionVersion of the resource specification.Data type: String
serviceSpecificationRelationshipThis 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.idThe initial\_version or external\_id of the related specification.Data type: String
serviceSpecificationRelationship.internalIdThe initial\_version of the related specification.Data type: String
serviceSpecificationRelationship.internalVersionVersion of the related specification.Data type: String
serviceSpecificationRelationship.relationshipTypeType of relationship.Data type: String
serviceSpecificationRelationship.validForDate range the relationship is valid for.Data type: Object
"validFor": {
   "endDateTime": "String",
   "startDateTime": "String"
}
serviceSpecificationRelationship.validFor.endDateTimeEnd date of the relationship.Data type: String
serviceSpecificationRelationship.validFor.startDateTimeStart date of the relationship.Data type: String
serviceSpecificationRelationship.versionThe external\_version of the related specification.Data type: String
specCharacteristicSpecification characteristic.Data type: Array of Objects
"specCharacteristic": [
  {
    "characteristicValueSpecification": [Array],
    "description": "String",
    "name": "String",
    "validFor": {Object},
    "valueType": "String"
  }
]
specCharacteristic.characteristicValueSpecificationList of possible values of the characteristic.Data type: Array of Objects
"characteristicValueSpecification": [
  {
    "value": "String"
  }
]
specCharacteristic.characteristicValueSpecification.valueValue of the characteristic.Data type: String
specCharacteristic.descriptionDescription of the characteristic.Data type: String
specCharacteristic.nameName of the characteristic.Data type: String
specCharacteristic.validForDate range the characteristic is valid for.Data type: Object
"validFor": {
  "endDateTime": "String",
  "startDateTime": "String"
}
specCharacteristic.validFor.endDateTimeEnd date of the characteristic.Data type: String
specCharacteristic.validFor.startDateTimeStart date of the characteristic.Data type: String
specCharacteristic.valueTypeValue 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
validForDate range the specification is valid for.Data type: Object
"validFor": {
  "endDateTime": "String",
  "startDateTime": "String"
}
validFor.endDateTimeEnd date of the specification.Data type: String
validFor.startDateTimeStart date of the specification.Data type: String
versionExternal version of the service specification.Data type: String Table: In the external\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table.

cURL request

This example retrieves all service specifications.

curl --location --request GET "https://instance.servicenow.com/api/sn_prd_pm_adv/catalogmanagement/servicespecification" \
--user 'username':'password'

Response body.

[
   {
      "id": "16d79ec3532520103b6bddeeff7b12a6",
      "name": "SD WAN Optimization Service",
       "externalSystem": "Salesforce - TMF633",
      "description": "SD WAN Optimization Service",
      "lastUpdate": "2022-01-23 22:48:55",
      "validFor": {
         "startDateTime": "2022-01-12",
         "endDateTime": "2027-02-11"
      },
      "serviceSpecificationRelationship": [
         {
            "id": "a1f5fe981bb420106ba59acf034bcb4f",
            "name": "Deduplication and Compression",
            "version": "1",
            "type": "rfs",
            "validFor": {
               "startDateTime": "2021-02-11",
               "endDateTime": "2027-02-11"
            }
         }
      ],
      "resourceSpecification": [],
      "serviceSpecCharacteristic": [
         {
            "name": "SSL Optimization",
            "description": "SSL Optimization",
            "valueType": "choice",
            "validFor": {
               "startDatetime": "2022-01-14 07:47:57"
            },
            "productSpecCharacteristicValue": [
               {
                  "value": "False",
                  "validFor": {
                     "startDateTime": ""
                  }
               },
               {
                  "value": "True",
                  "validFor": {
                     "startDateTime": ""
                  }
               }
            ]
         },
         {
            "name": "CIFS Optimization",
            "description": "CIFS Optimization Protocol",
            "valueType": "choice",
            "validFor": {
               "startDatetime": "2022-01-14 07:49:09"
            },
            "productSpecCharacteristicValue": [
               {
                  "value": "SMB1",
                  "validFor": {
                     "startDateTime": ""
                  }
               },
               {
                  "value": "SMB2",
                  "validFor": {
                     "startDateTime": ""
                  }
               }
            ]
         }
      ]
      "externalSource": "ABC-TMF633"
   },
   {
      "id": "31c5caff07266010a7955b7e0ad3006b",
      "name": "Firewall Administration",
      "description": "Firewall Administration",
      "lastUpdate": "2022-01-23 11:46:48",
      "validFor": {
         "startDateTime": "2021-11-22",
         "endDateTime": ""
      },
      "serviceSpecificationRelationship": [],
      "resourceSpecification": [
         {
            "id": "3546463307666010a7955b7e0ad3005d",
            "name": "Cisco Firewall Management system",
            "version": "1"
         }
      ],
      "serviceSpecCharacteristic": [
         {
            "name": "Firewall Administration CPE Model",
            "description": "Firewall Administration CPE Model",
            "valueType": "choice",
            "validFor": {
               "startDatetime": "2022-02-20 00:55:37"
            },
            "productSpecCharacteristicValue": [
               {
                  "value": "2100 series",
                  "validFor": {
                     "startDateTime": ""
                  }
               },
               {
                  "value": "4100 series",
                  "validFor": {
                     "startDateTime": ""
                  }
               },
               {
                  "value": "7300 series",
                  "validFor": {
                     "startDateTime": ""
                  }
               },
               {
                  "value": "9300 series",
                  "validFor": {
                     "startDateTime": ""
                  }
               }
            ]
    "externalSource": "ABC-TMF633"
         },
         {
            "name": "Firewall Administration CPE Type",
            "description": "Firewall Administration CPE Type",
            "valueType": "choice",
            "validFor": {
               "startDatetime": "2022-02-20 00:53:45"
            },
            "productSpecCharacteristicValue": [
               {
                  "value": "Physical",
                  "validFor": {
                     "startDateTime": ""
                  }
               },
               {
                  "value": "Virtual",
                  "validFor": {
                     "startDateTime": ""
                  }
               }
            ]
         },
         {
            "name": "Configuration and Policy backup",
            "description": "Configuration and Policy backup",
            "valueType": "choice",
            "validFor": {
               "startDatetime": "2022-01-21 10:46:02"
            },
            "productSpecCharacteristicValue": [
               {
                  "value": "Weekly",
                  "validFor": {
                     "startDateTime": ""
                  }
               },
               {
                  "value": "Monthly",
                  "validFor": {
                     "startDateTime": ""
                  }
               },
               {
                  "value": "Daily",
                  "validFor": {
                     "startDateTime": ""
                  }
               }
            ]
         },
         {
            "name": "Remote CLI troubleshoot support",
            "description": "Remote CLI troubleshoot support",
            "valueType": "choice",
            "validFor": {
               "startDatetime": "2022-01-21 10:45:38"
            },
            "productSpecCharacteristicValue": [
               {
                  "value": "Standard support",
                  "validFor": {
                     "startDateTime": ""
                  }
               },
               {
                  "value": "Premium support",
                  "validFor": {
                     "startDateTime": ""
                  }
               },
               {
                  "value": "Basic support",
                  "validFor": {
                     "startDateTime": ""
                  }
               }
            ]
         },
         {
            "name": "Firewall Administration CPE ID",
            "description": "Firewall Administration CPE ID",
            "valueType": "single_line_text",
            "validFor": {
               "startDatetime": "2022-02-20 00:57:50"
            },
            "productSpecCharacteristicValue": []
         }
      ]
   }
]

Service Catalog Open - GET /servicespecification/{specificationId}

Retrieves a service specification.

URL format

Default URL: /api/sn_prd_pm_adv/catalogmanagement/servicespecification/{specificationId}

Supported request parameters

NameDescription
specificationIdSys\_id of the service specification to retrieve.Data type: String Table: Service Specification \[sn\_prd\_pm\_service\_specification\]
NameDescription
fieldsList of fields to return in the response. Invalid fields are ignored. If this parameter is not used, all fields are returned. Data type: String
stateFilter service specifications by state. Only specifications with a state matching the value of this parameter are returned in the response.Data type: String
NameDescription
None 

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

HeaderDescription
None 
HeaderDescription
Content-TypeData format of the response body. Only supports application/json.

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status codeDescription
200Request successfully processed.
400Bad Request. Could be any of the following reasons: - Invalid path parameter - Invalid URI
404Record not found. Record associated with the ID is not found in the table.

Response body parameters (JSON)

NameDescription
@typeType of specification.Data type: String
descriptionDescription of the specification.Data type: String
externalIdExternal 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

externalSystemThird-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
idInitial 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.
internalIdInitial version of the service specification.Data type: String Table: In the initial\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table.
internalVersionVersion of the service specification.Data type: String Table: In the version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table.
lastUpdateDate the specification was last updated.Data type: String
nameName of the specification.Data type: String
resourceSpecificationResource specifications for this service specification.Data type: Array of Objects
"resourceSpecification": [
  {
    "id": "String",
    "internalId": "String",
    "internalVersion": "String",
    "name": "String",
    "version": "String"
  }
]
resourceSpecification.idThe initial\_version or external\_id of the resource specification.Data type: String
resourceSpecification.internalIdThe initial\_version of the resource specification.Data type: String
resourceSpecification.internalVersionThe external\_version of the resource specification.Data type: String
resourceSpecification.nameName of the resource specification.Data type: String
resourceSpecification.versionVersion of the resource specification.Data type: String
serviceSpecificationRelationshipThis 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.idThe initial\_version or external\_id of the related specification.Data type: String
serviceSpecificationRelationship.internalIdThe initial\_version of the related specification.Data type: String
serviceSpecificationRelationship.internalVersionVersion of the related specification.Data type: String
serviceSpecificationRelationship.relationshipTypeType of relationship.Data type: String
serviceSpecificationRelationship.validForDate range the relationship is valid for.Data type: Object
"validFor": {
   "endDateTime": "String",
   "startDateTime": "String"
}
serviceSpecificationRelationship.validFor.endDateTimeEnd date of the relationship.Data type: String
serviceSpecificationRelationship.validFor.startDateTimeStart date of the relationship.Data type: String
serviceSpecificationRelationship.versionThe external\_version of the related specification.Data type: String
specCharacteristicSpecification characteristic.Data type: Array of Objects
"specCharacteristic": [
  {
    "characteristicValueSpecification": [Array],
    "description": "String",
    "name": "String",
    "validFor": {Object},
    "valueType": "String"
  }
]
specCharacteristic.characteristicValueSpecificationList of possible values of the characteristic.Data type: Array of Objects
"characteristicValueSpecification": [
  {
    "value": "String"
  }
]
specCharacteristic.characteristicValueSpecification.valueValue of the characteristic.Data type: String
specCharacteristic.descriptionDescription of the characteristic.Data type: String
specCharacteristic.nameName of the characteristic.Data type: String
specCharacteristic.validForDate range the characteristic is valid for.Data type: Object
"validFor": {
  "endDateTime": "String",
  "startDateTime": "String"
}
specCharacteristic.validFor.endDateTimeEnd date of the characteristic.Data type: String
specCharacteristic.validFor.startDateTimeStart date of the characteristic.Data type: String
specCharacteristic.valueTypeValue 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
validForDate range the specification is valid for.Data type: Object
"validFor": {
  "endDateTime": "String",
  "startDateTime": "String"
}
validFor.endDateTimeEnd date of the specification.Data type: String
validFor.startDateTimeStart date of the specification.Data type: String
versionExternal version of the service specification.Data type: String Table: In the external\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table.

cURL request

This example retrieves a service specification for a firewall service.

curl --location --request GET "https://instance.servicenow.com/api/sn_prd_pm_adv/catalogmanagement/servicespecification/31c5caff07266010a7955b7e0ad3006b" \
--user 'username':'password'

Response body.

{
   "id": "31c5caff07266010a7955b7e0ad3006b",
   "name": "Firewall Administration",
   "description": "Firewall Administration",
   "externalSystem": "Salesforce - TMF633",
   "lastUpdate": "2022-01-23 11:46:48",
   "validFor": {
      "startDateTime": "2021-11-22",
      "endDateTime": ""
   },
   "serviceSpecificationRelationship": [],
   "resourceSpecification": [
      {
         "id": "3546463307666010a7955b7e0ad3005d",
         "name": "Cisco Firewall Management system",
         "version": "1"
      }
   ],
   "serviceSpecCharacteristic": [
      {
         "name": "Firewall Administration CPE Model",
         "description": "Firewall Administration CPE Model",
         "valueType": "choice",
         "validFor": {
            "startDatetime": "2022-02-20 00:55:37"
         },
         "productSpecCharacteristicValue": [
            { "value": "2100 series", "validFor": { "startDateTime": "" } },
            { "value": "4100 series", "validFor": { "startDateTime": "" } },
            { "value": "7300 series", "validFor": { "startDateTime": "" } },
            { "value": "9300 series", "validFor": { "startDateTime": "" } }
         ]
      },
      {
         "name": "Firewall Administration CPE Type",
         "description": "Firewall Administration CPE Type",
         "valueType": "choice",
         "validFor": {
            "startDatetime": "2022-02-20 00:53:45"
         },
         "productSpecCharacteristicValue": [
            { "value": "Physical", "validFor": { "startDateTime": "" } },
            { "value": "Virtual", "validFor": { "startDateTime": "" } }
         ]
      },
      {
         "name": "Configuration and Policy backup",
         "description": "Configuration and Policy backup",
         "valueType": "choice",
         "validFor": {
            "startDatetime": "2022-01-21 10:46:02"
         },
         "productSpecCharacteristicValue": [
            { "value": "Weekly", "validFor": { "startDateTime": "" } },
            { "value": "Monthly", "validFor": { "startDateTime": "" } },
            { "value": "Daily", "validFor": { "startDateTime": "" } }
         ]
      },
      {
         "name": "Remote CLI troubleshoot support",
         "description": "Remote CLI troubleshoot support",
         "valueType": "choice",
         "validFor": {
            "startDatetime": "2022-01-21 10:45:38"
         },
         "productSpecCharacteristicValue": [
            { "value": "Standard support", "validFor": { "startDateTime": "" } },
            { "value": "Premium support", "validFor": { "startDateTime": "" } },
            { "value": "Basic support", "validFor": { "startDateTime": "" } }
         ]
      },
      {
         "name": "Firewall Administration CPE ID",
         "description": "Firewall Administration CPE ID",
         "valueType": "single_line_text",
         "validFor": {
            "startDatetime": "2022-02-20 00:57:50"
         },
         "productSpecCharacteristicValue": []
      }
   ],
   "externalSource": "ABC-TMF633"
}

Service Category Open - PATCH /api/sn_tmf_api/catalogmanagement/serviceCategory/{id}

Updates a specified 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

NameDescription
idSys\_id of the service category table.Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String
NameDescription
None 
NameDescription
externalIdentifierIdentifying information for an external system involved in managing categories.Data type: Array of Objects
"externalIdentifier": [
 {
  "id": "String",
  "owner": "String"
 }
]
externalIdentifier.idUnique 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.ownerThe system that owns this ID. Data type: String
hrefHyperlink to access the service category.Data type: String
idSys\_id of the service category. Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String
isRootFlag 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
modelCategoryList of model categories associated with the service category.Data type: Array of Objects
"modelCategory": [
 {
  "id": "String",
  "name": "String"
 }
]
modelCategory.idSys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
modelCategory.nameName of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
nameName of the service category.Data type: String
serviceCandidateList of service candidates associated with this category.Data type: Array of objects
"serviceCandidate": [
 {
  "@referredType": "String",
  "href": "String",
  "id": "String",
  "name": "String",
  "version": "String" 
 }
]
serviceCandidate.@referredTypeValue is always `ServiceCategory`.Data type: String
serviceCandidate.hrefHyperlink to access the service specification.Data type: String
serviceCandidate.idSys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String
serviceCandidate.versionVersion of the service candidate.Data type: String

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

HeaderDescription
AcceptData format of the response body. Supported types: application/json or application/xml. Default: application/json
HeaderDescription
None 

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

HeaderDescription
AcceptData format of the request body. Only supports application/json.
Content-TypeData format of the request body. Only supports application/json.
HeaderDescription
Content-TypeData format of the response body. Only supports application/json.

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status codeDescription
201Successful. The request was successfully processed.
400Bad 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.

Response body parameters (JSON or XML)

NameDescription
externalIdentifierIdentifying information for an external system involved in managing categories.Data type: Array of objects
"externalIdentifier": [
 {
  "id": "String",
  "owner": "String"
 }
]
externalIdentifier.idUnique 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.ownerThe system that owns this ID. Data type: String
hrefHyperlink to access the service category.Data type: string
idSys\_id of the service category. Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String
isRootFlag 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
modelCategoryList of model categories associated with the service category.Data type: Array of objects
"modelCategory": [
 {
  "id": "String",
  "name": "String"
 }
]
modelCategory.idSys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
modelCategory.nameName of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
nameName of the service category.Data type: string
serviceCandidateList of service candidates associated with this category.Data type: Array of objects
"serviceCandidate": [
 {
  "@referredType": "String",
  "href": "String",
  "id": "String",
  "name": "String",
  "version": "String" 
 }
]
serviceCandidate.@referredTypeValue is always `ServiceCategory`.Data type: String
serviceCandidate.hrefHyperlink to access the service specification.Data type: String
serviceCandidate.idSys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String
serviceCandidate.versionVersion of the service candidate.Data type: String

cURL request

The following example updates the service category's name, version, service candidate, model category, and external identifier information.

curl "https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/serviceCategory/a1b23456c7de8a90f0123456gh789ij" \
  --request PATCH \
  --header "Accept:application/json" \
  --header "Content-Type:application/json" \
  --data '{
    "name": "Cloud Services",
    "version": "1.0",
    "serviceCandidate": [
      {
        "id": "a1b23456c7de8a90f0123456gh789ij",
        "href": "https://mycsp.com:8080/tmf-api/serviceCatalogManagement/v4/serviceCategory/5980",
        "version": "3.2",
        "name": "Cloud Services",
        "@referredType": "ServiceCategory"
      }
    ],
    "modelCategory": [
      {
        "id": "b2d5bc14c3031000b959fd251eba8f96",
        "name": "model"
      }
    ],
    "externalIdentifier": {
      "id": "1234234312",
      "owner": "TMF200000123233"
    },
    "isRoot": true
  }' \
  --user 'user:password

Response body.

{
  "name": "Cloud Services",
  "version": "1.0",
  "serviceCandidate": [
    {
      "id": "a1b23456c7de8a90f0123456gh789ij",
      "href": "https://mycsp.com:8080/tmf-api/serviceCatalogManagement/v4/serviceCategory/5980",
      "version": "3.2",
      "name": "Cloud Services",
      "@referredType": "ServiceCategory"
    }
  ],
  "modelCategory": [
    {
      "id": "b2d5bc14c3031000b959fd251eba8f96",
      "name": "model"
    }
  ],
  "externalIdentifier": {
    "id": "1234234312",
    "owner": "TMF200000123233"
  },
  "isRoot": true,
  "id": "8138241b1caaaa10f87703c075c809fe",
  "href": "api/sn_tmf_api/catalogmanagement/serviceCategory/8138241b1caaaa10f87703c075c809fe"
}

Service Catalog Open - POST /api/sn_tmf_api/catalogmanagement/serviceCategory

Creates a new service category record in the Specification Category [sn_prd_pm_specification_category] table.

URL format

Default URL: /api/sn_tmf_api/catalogmanagement/serviceCategory

Supported request parameters

NameDescription
None 
NameDescription
None 
NameDescription
externalIdentifierIdentifying information for an external system involved in managing categories.Data type: Array of Objects
"externalIdentifier": [
 {
  "id": "String",
  "owner": "String"
 }
]
externalIdentifier.idUnique 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.ownerThe system that owns this ID. Data type: String
hrefHyperlink to access the service category.Data type: String
idSys\_id of the service category. Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String
isRootFlag 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
modelCategoryList of model categories associated with the service category.Data type: Array of Objects
"modelCategory": [
 {
  "id": "String",
  "name": "String"
 }
]
modelCategory.idSys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
modelCategory.nameName of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
nameName of the service category.Data type: String
serviceCandidateList of service candidates associated with this category.Data type: Array of objects
"serviceCandidate": [
 {
  "id": "String",
  "href": "String",
  "name": "String",
  "@referredType": "String",
  "version": "String" 
 }
]
serviceCandidate.@referredTypeValue is always `ServiceCategory`.Data type: String
serviceCandidate.hrefHyperlink to access the service specification.Data type: String
serviceCandidate.idSys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String
serviceCandidate.versionVersion of the service candidate.Data type: String

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

HeaderDescription
AcceptData format of the request body. Only supports application/json.
Content-TypeData format of the request body. Only supports application/json.
HeaderDescription
Content-TypeData format of the response body. Only supports application/json.

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status codeDescription
201Successful. The request was successfully processed.
400Bad 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.

Response body parameters (JSON or XML)

NameDescription
externalIdentifierIdentifying information for an external system involved in managing categories.Data type: Array of objects
"externalIdentifier": [
 {
  "id": "String",
  "owner": "String"
 }
]
externalIdentifier.idUnique 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.ownerThe system that owns this ID. Data type: String
hrefHyperlink to access the service category.Data type: string
idSys\_id of the service category. Table: Specification Category \[sn\_prd\_pm\_specification\_category\] Data type: String
isRootFlag 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
modelCategoryList of model categories associated with the service category.Data type: Array of objects
"modelCategory": [
 {
  "id": "String",
  "name": "String"
 }
]
modelCategory.idSys\_id of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
modelCategory.nameName of the model category. Table: Model Category \[cmdb\_model\_category\] Data type: String
nameName of the service category.Data type: string
serviceCandidateList of service candidates associated with this category.Data type: Array of objects
"serviceCandidate": [
 {
  "id": "String",
  "href": "String",
  "name": "String",
  "@referredType": "String",
  "version": "String" 
 }
]
serviceCandidate.@referredTypeValue is always `ServiceCategory`.Data type: String
serviceCandidate.hrefHyperlink to access the service specification.Data type: String
serviceCandidate.idSys\_id of the service specification.Table: Service Specification \[sn\_prd\_pm\_service\_specification\] Data type: String
serviceCandidate.versionVersion of the service candidate.Data type: String

cURL request

The following example calls POST to create a new service category record according to details provided in the request body.

curl "https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/serviceCategory" \
  --request POST \
  --header "Accept:application/json" \
  --header "Content-Type:application/json" \
  --user 'user:password' \
  --data '{
    "name": "Cloud Services",
    "version": "1.0",
    "serviceCandidate": [
      {
        "id": "a1b23456c7de8a90f0123456gh789ij",
        "href": "https://mycsp.com:8080/tmf-api/serviceCatalogManagement/v4/serviceCategory/5980",
        "version": "3.2",
        "name": "Cloud Services",
        "@referredType": "ServiceCategory"
      }
    ],
    "modelCategory": [
      {
        "id": "b2d5bc14c3031000b959fd251eba8f96",
        "name": "model"
      }
    ],
    "externalIdentifier": {
      "id": "1234234312",
      "owner": "TMF200000123233"
    },
    "isRoot": true
  }'

Response body.

{
  "name": "Cloud Services",
  "version": "1.0",
  "serviceCandidate": [
    {
      "id": "a1b23456c7de8a90f0123456gh789ij",
      "href": "https://mycsp.com:8080/tmf-api/serviceCatalogManagement/v4/serviceCategory/5980",
      "version": "3.2",
      "name": "Cloud Services",
      "@referredType": "ServiceCategory"
    }
  ],
  "modelCategory": [
    {
      "id": "b2d5bc14c3031000b959fd251eba8f96",
      "name": "model"
    }
  ],
  "externalIdentifier": {
    "id": "1234234312",
    "owner": "TMF200000123233"
  },
  "isRoot": true,
  "id": "8138241b1caaaa10f87703c075c809fe",
  "href": "api/sn_tmf_api/service_catalog_api/serviceCategory/8138241b1caaaa10f87703c075c809fe"
}

Service Catalog Open - POST /servicespecification

Creates a service specification.

URL format

Default URL: /api/sn_prd_pm_adv/catalogmanagement/servicespecification

Supported request parameters

NameDescription
None 
NameDescription
None 
NameDescription
descriptionRequired. 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]

externalSystemThird-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

internalVersionVersion of the service specification.Data type: String Default: Blank string Table: Service Specification \[sn\_prd\_pm\_service\_specification\]
lastUpdateDate the specification was last updated.Data type: String Default: Blank string
nameRequired. Name of the specification.Data type: String
resourceSpecificationRequired. Resource specifications for this service specification.Data type: Array of Objects
"resourceSpecification": [
  {
    "id": "String",
    "internalVersion": "String",
    "name": "String",
    "version": "String"
  }
]
resourceSpecification.idRequired. The initial\_version or external\_id of the resource specification.Data type: String
resourceSpecification.internalVersionThe external\_version of the resource specification.Data type: String Default: Blank string
resourceSpecification.nameName of the resource specification.Data type: String Default: Blank string
resourceSpecification.versionVersion of the resource specification.Data type: String Default: Blank string
serviceSpecificationRelationshipDetails 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.idRequired if using the serviceSpecificationRelationship parameter. Initial_version or external_id of the related specification.Data type: String
serviceSpecificationRelationship.internalVersionVersion 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.validForDate range the relationship is valid for.Data type: Object
"validFor": {
  "endDateTime": "String",
  "startDateTime": "String"
}
serviceSpecificationRelationship.validFor.endDateTimeEnd date of the relationship.Data type: String Default: Blank string
serviceSpecificationRelationship.validFor.startDateTimeStart date of the relationship.Data type: String Default: Blank string
serviceSpecificationRelationship.versionThe external\_version of the related specification.Data type: String Default: Blank string
specCharacteristicSpecification characteristic.Data type: Array of Objects
"specCharacteristic": [
  {
    "characteristicValueSpecification": [Array],
    "description": "String",
    "name": "String",
    "validFor": {Object},
    "valueType": "String"
  }
]
specCharacteristic.characteristicValueSpecificationRequired. Possible values of the characteristic.Data type: Array of Objects
"characteristicValueSpecification": [
  {
    "value": "String"
  }
]
specCharacteristic.characteristicValueSpecification.valueRequired. Value of the characteristic.Data type: String
specCharacteristic.descriptionDescription of the characteristic.Data type: String Default: Blank string
specCharacteristic.nameRequired. Name of the characteristic.Data type: String
specCharacteristic.validForDate range the characteristic is valid for.Data type: Object
"validFor": {
  "endDateTime": "String",
  "startDateTime": "String"
}
specCharacteristic.validFor.endDateTimeEnd date of the characteristic.Data type: String Default: Blank string
specCharacteristic.validFor.startDateTimeStart date of the characteristic.Data type: String Default: Blank string
specCharacteristic.valueTypeValue 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
validForRequired. Date range the specification is valid for.Data type: Object
"validFor": {
  "endDateTime": "String",
  "startDateTime": "String"
}
validFor.endDateTimeEnd date of the specification.Data type: String Default: Blank string
validFor.startDateTimeStart date of the specification.Data type: String Default: Blank string
versionExternal 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.
@typeRequired. Type of specification.Valid values: - CustomerFacingServiceSpecification - ResourceFacingServiceSpecification Data type: String

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

HeaderDescription
AcceptData format of the response body. Only supports application/json.
Content-TypeData format of the request body. Only supports application/json.
HeaderDescription
Content-TypeData format of the response body. Only supports application/json.

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status codeDescription
201Request successfully processed.
400Bad Request. Could be any of the following reasons: - Empty payload. - Invalid payload. Mandatory field missing: <field name>

Response body parameters (JSON)

NameDescription
@typeType of specification.Data type: String
descriptionDescription of the specification.Data type: String
externalIdExternal 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

externalSystemThird-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
idInitial 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.
internalIdInitial version of the service specification.Data type: String Table: In the initial\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table.
internalVersionVersion of the service specification.Data type: String Table: In the version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table.
lastUpdateDate the specification was last updated.Data type: String
nameName of the specification.Data type: String
resourceSpecificationResource specifications for this service specification.Data type: Array of Objects
"resourceSpecification": [
  {
    "id": "String",
    "internalId": "String",
    "internalVersion": "String",
    "name": "String",
    "version": "String"
  }
]
resourceSpecification.idThe initial\_version or external\_id of the resource specification.Data type: String
resourceSpecification.internalIdThe initial\_version of the resource specification.Data type: String
resourceSpecification.internalVersionThe external\_version of the resource specification.Data type: String
resourceSpecification.nameName of the resource specification.Data type: String
resourceSpecification.versionVersion of the resource specification.Data type: String
serviceSpecificationRelationshipThis 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.idThe initial\_version or external\_id of the related specification.Data type: String
serviceSpecificationRelationship.internalIdThe initial\_version of the related specification.Data type: String
serviceSpecificationRelationship.internalVersionVersion of the related specification.Data type: String
serviceSpecificationRelationship.relationshipTypeType of relationship.Data type: String
serviceSpecificationRelationship.validForDate range the relationship is valid for.Data type: Object
"validFor": {
   "endDateTime": "String",
   "startDateTime": "String"
}
serviceSpecificationRelationship.validFor.endDateTimeEnd date of the relationship.Data type: String
serviceSpecificationRelationship.validFor.startDateTimeStart date of the relationship.Data type: String
serviceSpecificationRelationship.versionThe external\_version of the related specification.Data type: String
specCharacteristicSpecification characteristic.Data type: Array of Objects
"specCharacteristic": [
  {
    "characteristicValueSpecification": [Array],
    "description": "String",
    "name": "String",
    "validFor": {Object},
    "valueType": "String"
  }
]
specCharacteristic.characteristicValueSpecificationList of possible values of the characteristic.Data type: Array of Objects
"characteristicValueSpecification": [
  {
    "value": "String"
  }
]
specCharacteristic.characteristicValueSpecification.valueValue of the characteristic.Data type: String
specCharacteristic.descriptionDescription of the characteristic.Data type: String
specCharacteristic.nameName of the characteristic.Data type: String
specCharacteristic.validForDate range the characteristic is valid for.Data type: Object
"validFor": {
  "endDateTime": "String",
  "startDateTime": "String"
}
specCharacteristic.validFor.endDateTimeEnd date of the characteristic.Data type: String
specCharacteristic.validFor.startDateTimeStart date of the characteristic.Data type: String
specCharacteristic.valueTypeValue 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
validForDate range the specification is valid for.Data type: Object
"validFor": {
  "endDateTime": "String",
  "startDateTime": "String"
}
validFor.endDateTimeEnd date of the specification.Data type: String
validFor.startDateTimeStart date of the specification.Data type: String
versionExternal version of the service specification.Data type: String Table: In the external\_version field of the Service Specification \[sn\_prd\_pm\_service\_specification\] table.

cURL request

This example creates a service specification for a firewall service.

curl "https://instance.servicenow.com/api/sn_prd_pm_adv/catalogmanagement/servicespecification" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
   \"externalId\": \"7655\",
   \"name\": \"Firewall Service\",
   \"description\": \"This service specification describes a firewall service that can be deployed in customer-premises equipment.\",
   \"validFor\": {
      \"startDateTime\": \"2017-08-23T00:00\",
      \"endDateTime\": \"2021-03-25T00:00\"
   },
   \"lastUpdate\": \"2020-08-15T00:00\",
   \"externalSource\": \"ABC-TMF633\",
   \"resourceSpecification\": [
      {
         \"id\": \"af66e551c32f10105252716b7d40dd52\",
         \"name\": \"Firewall\"
      }
   ],
   \"specCharacteristic\": [
      {
         \"name\": \"Edge\",
         \"description\": \"This characteristic describes the operating system run by the service\",
         \"valueType\": \"choice\",
         \"validFor\": {
            \"startDateTime\": \"2017-08-12T00:00\",
            \"endDateTime\": \"2021-03-07T00:00\"
         },
         \"characteristicValueSpecification\": [
            {
               \"value\": \"Android KitKat\"
            }
         ]
      }
   ],
   \"serviceSpecRelationship\": [
      {
         \"relationshipType\": \"composed_of\",
         \"id\": \"65033023ebdb30107ee5302698522849\",
         \"validFor\": {
            \"startDateTime\": \"2017-08-25T00:00\",
            \"endDateTime\": \"2021-03-25T00:00\"
         }
      }
   ],
   \"@type\": \"ResourceFacingServiceSpecification\"
}" \
--user 'username':'password'

Response body.

{
   "id": "21a7ee64c32310105253716b8d40dd60",
   "name": "Firewall Service",
   "description": "This service specification describes a firewall service that can be deployed in customer-premises equipment.",
   "validFor": {
      "startDateTime": "2017-08-23T00:00",
      "endDateTime": "2021-03-25T00:00"
   },
   "lastUpdate": "2020-08-15T00:00",
   "externalSource": "ABC-TMF633",
   "resourceSpecification": [
      {
         "id": "af66e551c32f10105252716b7d40dd52",
         "name": "Firewall"
      }
   ],
   "specCharacteristic": [
      {
         "name": "Edge",
         "description": "This characteristic describes the operating system run by the service",
         "valueType": "choice",
         "validFor": {
            "startDateTime": "2017-08-12T00:00",
            "endDateTime": "2021-03-07T00:00"
         },
         "characteristicValueSpecification": [
            {
               "value": "Android KitKat"
            }
         ]
      }
   ],
   "serviceSpecRelationship": [
      {
         "relationshipType": "composed_of",
         "id": "65033023ebdb30107ee5302698522849",
         "validFor": {
            "startDateTime": "2017-08-25T00:00",
            "endDateTime": "2021-03-25T00:00"
         }
      }
   ],
   "@type": "ResourceFacingServiceSpecification"
}