{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":547,"path":"api-reference/rest-apis/service-catalog-open-api.md","title":"Service Catalog Open API","bundle":null,"doc_type":null,"release":"australia","body":"\n# Service Catalog Open API\n\nThe Service Catalog Open API provides endpoints to create and retrieve service specifications.\n\nUse 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.\n\nThis API is included in the Product Catalog Advanced application, which is available on the ServiceNow Store.\n\nThis API's endpoints are provided within the `sn_tmf-api` namespace under the Product Catalog Open API name:\n\n-   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)\n-   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)\n-   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)\n-   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)\n-   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)\n-   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)\n-   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)\n\nThe calling user must have the sn\\_prd\\_pm\\_adv.catalog\\_integrator role.\n\nThis API creates and updates data in the following tables.\n\n-   Characteristic \\[sn\\_prd\\_pm\\_characteristic\\]\n-   Characteristic Option \\[sn\\_prd\\_pm\\_characteristic\\_option\\]\n-   Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\]\n-   Specification Relationship \\[sn\\_prd\\_pm\\_specification\\_relationship\\]\n\n**Parent Topic:**[REST API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/api-rest.md)\n\n## Service Catalog Open - DELETE /api/sn\\_tmf\\_api/catalogmanagement/serviceCategory/\\{id\\}\n\nDeletes the specified service category record in the Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\] table.\n\n### URL format\n\nDefault URL: `/api/sn_tmf_api/catalogmanagement/serviceCategory/{id}`\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nid\n\n</td><td>\n\nSys\\_id of the service category to delete. Table: Service category \\[sn\\_prd\\_pm\\_specification\\_category\\]\n\nData type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Header|Description|\n|------|-----------|\n|Accept|Data format of the request body. Only supports application/json.|\n\n|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Status code|Description|\n|-----------|-----------|\n|204|No content.|\n|400|Bad request. A bad request type or malformed request was detected.|\n\n### Response body parameters \\(JSON or XML\\)\n\n|Name|Description|\n|----|-----------|\n|None||\n\n### cURL request\n\nThe following example deletes a service category with ID, a1b23456c7de8a90f0123456gh789ij. Returns a status code with messaging.\n\n```\ncurl \"https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/serviceCategory/a1b23456c7de8a90f0123456gh789ij\" \\\n  --request DELETE \\\n  --header \"Accept:application/json\" \\\n  --user 'user:password'\n```\n\n## Service Catalog Open - GET /api/sn\\_tmf\\_api/catalogmanagement/serviceCategory\n\nRetrieves a list of all service category records in the Service Category \\[sn\\_prd\\_pm\\_specification\\_category\\] table.\n\n### URL format\n\nDefault URL: `/api/sn_tmf_api/catalogmanagement/serviceCategory`\n\n### Supported request parameters\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n<table class=\"rest_api_query_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nfields\n\n</td><td>\n\nList of fields to return in the response. Invalid fields are ignored. Valid fields:\n\n-   href\n-   id\n-   name\n\nData type: String\n\nDefault: Returns all fields\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nFilter service categories by specific sys\\_id\\(s\\). Table: Service Category \\[service\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nlimit\n\n</td><td>\n\nMaximum number of records to return. For requests that exceed this number of records, use the **offset** parameter to paginate record retrieval. Data type: Number\n\nDefault: 20\n\nMaximum: 100\n\n</td></tr><tr><td>\n\noffset\n\n</td><td>\n\nStarting 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\n\nDefault: 0\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Header|Description|\n|------|-----------|\n|Accept:application/json| |\n\n<table class=\"rest_api_response_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nContent-Range\n\n</td><td>\n\nRange 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`.\n\n</td></tr><tr><td>\n\nContent-Type\n\n</td><td>\n\nData format of the response body. Only supports application/json.\n\n</td></tr><tr><td>\n\nLink\n\n</td><td>\n\nContains the following links to navigate through query results:\n\n-   first\n-   last\n-   next\n-   previous\n\n</td></tr><tr><td>\n\nX-Total-Count\n\n</td><td>\n\nFor paginated queries, this header specifies the total number of records available on the server.\n\n</td></tr></tbody>\n</table>### Status codes\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table><thead><tr><th>\n\nStatus code\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n200\n\n</td><td>\n\nRequest successfully processed. Full resource returned in response \\(no pagination\\).\n\n</td></tr><tr><td>\n\n206\n\n</td><td>\n\nPartial resource returned in response \\(with pagination\\).\n\n</td></tr><tr><td>\n\n400\n\n</td><td>\n\nBad request.Possible reasons:\n\n-   Invalid path parameter\n-   Invalid URI\n\n</td></tr><tr><td>\n\n404\n\n</td><td>\n\nRecord not found. No records matching the query parameters are found in the table.\n\n</td></tr></tbody>\n</table>### Response body parameters \\(JSON or XML\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nexternalIdentifier\n\n</td><td>\n\nIdentifying information for an external system involved in managing categories.Data type: Array of Objects\n\n```\n\"externalIdentifier\": [\n {\n  \"id\": \"String\",\n  \"owner\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nexternalIdentifier.id\n\n</td><td>\n\nUnique identifier for the service category. This value is determined by an external system. Data type: String\n\nTable: Service Category \\[sn\\_prd\\_pm\\_specification\\_category\\], field external\\_id\n\n</td></tr><tr><td>\n\nexternalIdentifier.owner\n\n</td><td>\n\nThe system that owns the given external ID. Data type: String\n\n</td></tr><tr><td>\n\nhref\n\n</td><td>\n\nHyperlink to access the service category.Data type: String\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nSys\\_id of the service category. Table: Service Category \\[sn\\_prd\\_pm\\_specification\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nisRoot\n\n</td><td>\n\nFlag that indicates whether the category is a root of categories.Valid values:\n\n-   true: Category is a root of categories.\n-   false: Category isn't a root of categories.\n\nData type: Boolean\n\n</td></tr><tr><td>\n\nmodelCategory\n\n</td><td>\n\nList of model categories associated with the service category.Data type: Array of Objects\n\n```\n\"modelCategory\": [\n {\n  \"id\": \"String\",\n  \"name\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nmodelCategory.id\n\n</td><td>\n\nSys\\_id of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nmodelCategory.name\n\n</td><td>\n\nName of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nname\n\n</td><td>\n\nName of the service category.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate\n\n</td><td>\n\nList of service candidates references associated with this category.Data type: Array of Objects\n\n```\n\"serviceCandidate\": [\n {\n  \"id\": \"String\",\n  \"href\": \"String\",\n  \"name\": \"String\",\n  \"@referredType\": \"String\",\n  \"version\": \"String\" \n }\n]\n```\n\n</td></tr><tr><td>\n\nserviceCandidate.@referredType\n\n</td><td>\n\nValue is always `ServiceCategory`.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.href\n\n</td><td>\n\nHyperlink to access the service specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.id\n\n</td><td>\n\nSys\\_id of the service specification.Table: Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.version\n\n</td><td>\n\nVersion of the service candidate.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThe following example calls the GET operation to return a list of all service category records in theService Category \\[sn\\_prd\\_pm\\_specification\\_category\\] table.\n\n```\ncurl \"https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/serviceCategory\" \\\n  --request GET \\\n  --header \"Accept:application/json\" \\\n  --user 'user:password'\n``\n```\n\nResponse body.\n\n```\n{\n  \"id\": \"a1b23456c7de8a90f0123456gh789ij\",\n  \"href\": \"api/sn_tmf_api/service_catalog_api/serviceCategory/a2a68216d9ce2a90f87718429ae503dd\",\n  \"name\": \"Cloud Services\",\n  \"serviceCandidate\": [\n    {\n      \"id\": \"14fbd5ead902ea90f87718429ae503f7\",\n      \"href\": \"api/sn_tmf_api/catalogmanagement/serviceSpecification/14fbd5ead902ea90f87718429ae503f7\",\n      \"version\": \"1\",\n      \"name\": \"servicenow\",\n      \"@referredType\": \"ServiceCategory\"\n    }\n  ],\n  \"modelCategory\": [\n    {\n      \"id\": \"a1d5bc14c3031000b959fd251eba8f5f\",\n      \"name\": \"Business Service\"\n    }\n  ],\n  \"externalIdentifier\": [\n    {\n      \"id\": \"1234234312\",\n      \"owner\": \"TMF200000123233\"\n    }\n  ],\n  \"isRoot\": \"true\"\n}\n```\n\n## Service Catalog Open - GET /api/sn\\_tmf\\_api/catalogmanagement/serviceCategory/\\{id\\}\n\nRetrieves a specific service category record in the Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\] table.\n\n### URL format\n\nDefault URL: `/api/sn_tmf_api/catalogmanagement/serviceCategory`\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nid\n\n</td><td>\n\nSys\\_id of the service category to retrieve.Table: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\]\n\nData type: String\n\n</td></tr></tbody>\n</table><table class=\"rest_api_query_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nfields\n\n</td><td>\n\nList of fields to return in the response. Invalid fields are ignored. Valid fields:\n\n-   href\n-   id\n-   name\n\nData type: String\n\nDefault: Returns all fields\n\n</td></tr><tr><td>\n\nlimit\n\n</td><td>\n\nMaximum number of records to return. For requests that exceed this number of records, use the **offset** parameter to paginate record retrieval. Data type: Number\n\nDefault: 20\n\nMaximum: 100\n\n</td></tr><tr><td>\n\noffset\n\n</td><td>\n\nStarting 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\n\nDefault: 0\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Header|Description|\n|------|-----------|\n|Accept:application/json| |\n\n<table id=\"table_oth_bdp_zgc\" class=\"rest_api_response_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nContent-Range\n\n</td><td>\n\nRange 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`.\n\n</td></tr><tr><td>\n\nContent-Type\n\n</td><td>\n\nData format of the response body. Only supports application/json.\n\n</td></tr><tr><td>\n\nLink\n\n</td><td>\n\nContains the following links to navigate through query results:\n\n-   first\n-   last\n-   next\n-   previous\n\n</td></tr><tr><td>\n\nX-Total-Count\n\n</td><td>\n\nFor paginated queries, this header specifies the total number of records available on the server.\n\n</td></tr></tbody>\n</table>### Status codes\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table id=\"table_xwz_ncp_zgc\"><thead><tr><th>\n\nStatus code\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n200\n\n</td><td>\n\nRequest successfully processed. Full resource returned in response \\(no pagination\\).\n\n</td></tr><tr><td>\n\n206\n\n</td><td>\n\nPartial resource returned in response \\(with pagination\\).\n\n</td></tr><tr><td>\n\n400\n\n</td><td>\n\nBad request.Possible reasons:\n\n-   Invalid path parameter\n-   Invalid URI\n\n</td></tr><tr><td>\n\n404\n\n</td><td>\n\nRecord not found. No records matching the query parameters are found in the table.\n\n</td></tr></tbody>\n</table>### Response body parameters \\(JSON or XML\\)\n\n<table id=\"table_d3r_4cp_zgc\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nexternalIdentifier\n\n</td><td>\n\nIdentifying information for an external system involved in managing categories.Data type: Array of objects\n\n```\n\"externalIdentifier\": [\n {\n  \"id\": \"String\",\n  \"owner\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nexternalIdentifier.id\n\n</td><td>\n\nUnique identifier for the service category. This value is determined by an external system. Data type: String\n\nTable: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\], Field: external\\_id\n\n</td></tr><tr><td>\n\nexternalIdentifier.owner\n\n</td><td>\n\nThe system that owns this ID. Data type: String\n\n</td></tr><tr><td>\n\nhref\n\n</td><td>\n\nHyperlink to access the service category.Data type: string\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nSys\\_id of the service category. Table: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nisRoot\n\n</td><td>\n\nFlag that indicates whether the category is a root of categories.Valid values:\n\n-   true: Category is a root of categories.\n-   false: Category isn't a root of categories.\n\nData type:Boolean\n\n</td></tr><tr><td>\n\nmodelCategory\n\n</td><td>\n\nList of model categories associated with the service category.Data type: Array of objects\n\n```\n\"modelCategory\": [\n {\n  \"id\": \"String\",\n  \"name\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nmodelCategory.id\n\n</td><td>\n\nSys\\_id of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nmodelCategory.name\n\n</td><td>\n\nName of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nname\n\n</td><td>\n\nName of the service category.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate\n\n</td><td>\n\nList of service candidates associated with this category.Data type: Array of Objects\n\n```\n\"serviceCandidate\": [\n {\n  \"id\": \"String\",\n  \"href\": \"String\",\n  \"name\": \"String\",\n  \"@referredType\": \"String\",\n  \"version\": \"String\" \n }\n]\n```\n\n</td></tr><tr><td>\n\nserviceCandidate.@referredType\n\n</td><td>\n\nReferred type of the service candidate. Value is always `ServiceCategory`.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.href\n\n</td><td>\n\nHyperlink to access the service specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.id\n\n</td><td>\n\nSys\\_id of the service specification.Table: Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.version\n\n</td><td>\n\nVersion of the service candidate.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThe following example calls the GET operation to return a specific service category record according to a given ID, a2a68216d9ce2a90f87718429ae503dd.\n\n```\ncurl \"https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/serviceCategory/a1b23456c7de8a90f0123456gh789ij\" \\\n  --request GET \\\n  --header \"Accept:application/json\" \\\n  --user 'user:password'\n```\n\nResponse body.\n\n```\n{\n  \"id\": \"a2a68216d9ce2a90f87718429ae503dd\",\n  \"href\": \"api/sn_tmf_api/service_catalog_api/serviceCategory/a1b23456c7de8a90f0123456gh789ij\",\n  \"name\": \"Cloud Services\",\n  \"serviceCandidate\": [\n    {\n      \"id\": \"a1b23456c7de8a90f0123456gh789ij\",\n      \"href\": \"api/sn_tmf_api/catalogmanagement/serviceSpecification/a1b23456c7de8a90f0123456gh789ij\",\n      \"version\": \"1\",\n      \"name\": \"servicenow\",\n     \n```\n\n## Service Catalog Open - GET /servicespecification\n\nRetrieves a list of all service specifications.\n\n### URL format\n\nDefault URL: `/api/sn_prd_pm_adv/catalogmanagement/servicespecification`\n\n### Supported request parameters\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n<table id=\"table_pfr_vgy_fsb\" class=\"rest_api_query_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nfields\n\n</td><td>\n\nList of fields to return in the response. Invalid fields are ignored. If this parameter is not used, all fields are returned. Data type: String\n\n</td></tr><tr><td>\n\nlimit\n\n</td><td>\n\nMaximum number of records to return. For requests that exceed this number of records, use the **offset** parameter to paginate record retrieval. Data type: Number\n\nDefault: 20\n\nMaximum: 100\n\n</td></tr><tr><td>\n\noffset\n\n</td><td>\n\nStarting 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\n\nDefault: 0\n\n</td></tr><tr><td>\n\nstate\n\n</td><td>\n\nFilter service specifications by state. Only specifications with a state matching the value of this parameter are returned in the response.Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Header|Description|\n|------|-----------|\n|None| |\n\n<table id=\"table_c2r_4gm_lsb\" class=\"rest_api_response_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr id=\"content-range-row\"><td>\n\nContent-Range\n\n</td><td>\n\nRange 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`.\n\n</td></tr><tr id=\"content-type-row\"><td>\n\nContent-Type\n\n</td><td>\n\nData format of the response body. Only supports **application/json**.\n\n</td></tr><tr id=\"links-pagination-row\"><td>\n\nLink\n\n</td><td>\n\nContains the following links to navigate through query results.-   first\n-   last\n-   next\n-   previous\n\n</td></tr><tr id=\"x-total-count-row\"><td id=\"x-total-count\">\n\nX-Total-Count\n\n</td><td>\n\nFor paginated queries, this header specifies the total number of records available on the server.\n\n</td></tr></tbody>\n</table>### Status codes\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table id=\"table_qbg_4cm_lsb\"><thead><tr><th>\n\nStatus code\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n200\n\n</td><td id=\"tmf-get-status-200-entry\">\n\nRequest successfully processed. Full resource returned in response \\(no pagination\\).\n\n</td></tr><tr><td>\n\n206\n\n</td><td id=\"tmf-get-status-206-entry\">\n\nPartial resource returned in response \\(with pagination\\).\n\n</td></tr><tr><td>\n\n400\n\n</td><td id=\"tmf-get-status-400-entry\">\n\nBad request. Possible reasons:\n\n-   Invalid path parameter\n-   Invalid URI\n\n</td></tr><tr><td>\n\n404\n\n</td><td id=\"tmf-get-status-404-entry\">\n\nRecord not found. No records matching the query parameters are found in the table.\n\n</td></tr></tbody>\n</table>### Response body parameters \\(JSON\\)\n\n<table id=\"table_hnx_3gy_fsb\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n@type\n\n</td><td>\n\nType of specification.Data type: String\n\n</td></tr><tr><td>\n\ndescription\n\n</td><td>\n\nDescription of the specification.Data type: String\n\n</td></tr><tr><td>\n\nexternalId\n\n</td><td>\n\nExternal ID of the service specification.Data type: String\n\nTable: In the external\\_id field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\nexternalSystem\n\n</td><td>\n\nExternal 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`.\n\nData Type: String\n\n</td></tr><tr><td>\n\nexternalSystem\n\n</td><td>\n\nThird-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\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nInitial version or external ID of the service specification.Data type: String\n\nTable: In the initial\\_version or external\\_id field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\ninternalId\n\n</td><td>\n\nInitial version of the service specification.Data type: String\n\nTable: In the initial\\_version field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\ninternalVersion\n\n</td><td>\n\nVersion of the service specification.Data type: String\n\nTable: In the version field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\nlastUpdate\n\n</td><td>\n\nDate the specification was last updated.Data type: String\n\n</td></tr><tr><td>\n\nname\n\n</td><td>\n\nName of the specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification\n\n</td><td>\n\nResource specifications for this service specification.Data type: Array of Objects\n\n```\n\"resourceSpecification\": [\n  {\n    \"id\": \"String\",\n    \"internalId\": \"String\",\n    \"internalVersion\": \"String\",\n    \"name\": \"String\",\n    \"version\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nresourceSpecification.id\n\n</td><td>\n\nThe initial\\_version or external\\_id of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.internalId\n\n</td><td>\n\nThe initial\\_version of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.internalVersion\n\n</td><td>\n\nThe external\\_version of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.name\n\n</td><td>\n\nName of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.version\n\n</td><td>\n\nVersion of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship\n\n</td><td>\n\nThis specification's relationships to other service specifications.Data type: Array of Objects\n\n```\n\"serviceSpecificationRelationship\": [\n  {\n    \"id\": \"String\",\n    \"internalId\": \"String\",\n    \"internalVersion\": \"String\",\n    \"relationshipType\": \"String\",\n    \"validFor\": {Object},\n    \"version\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.id\n\n</td><td>\n\nThe initial\\_version or external\\_id of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.internalId\n\n</td><td>\n\nThe initial\\_version of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.internalVersion\n\n</td><td>\n\nVersion of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.relationshipType\n\n</td><td>\n\nType of relationship.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor\n\n</td><td>\n\nDate range the relationship is valid for.Data type: Object\n\n```\n\"validFor\": {\n   \"endDateTime\": \"String\",\n   \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor.endDateTime\n\n</td><td>\n\nEnd date of the relationship.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor.startDateTime\n\n</td><td>\n\nStart date of the relationship.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.version\n\n</td><td>\n\nThe external\\_version of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic\n\n</td><td>\n\nSpecification characteristic.Data type: Array of Objects\n\n```\n\"specCharacteristic\": [\n  {\n    \"characteristicValueSpecification\": [Array],\n    \"description\": \"String\",\n    \"name\": \"String\",\n    \"validFor\": {Object},\n    \"valueType\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.characteristicValueSpecification\n\n</td><td>\n\nList of possible values of the characteristic.Data type: Array of Objects\n\n```\n\"characteristicValueSpecification\": [\n  {\n    \"value\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.characteristicValueSpecification.value\n\n</td><td>\n\nValue of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.description\n\n</td><td>\n\nDescription of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.name\n\n</td><td>\n\nName of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor\n\n</td><td>\n\nDate range the characteristic is valid for.Data type: Object\n\n```\n\"validFor\": {\n  \"endDateTime\": \"String\",\n  \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor.endDateTime\n\n</td><td>\n\nEnd date of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor.startDateTime\n\n</td><td>\n\nStart date of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.valueType\n\n</td><td>\n\nValue type of the characteristic, such as choice or email. Can be a simple or complex characteristic.Possible values:\n\n-   Date,Address\n-   Integer,Date/Time\n-   Array.Integer\n-   Array.Single Line Test\n-   Single Line Text\n-   Array.Obect\n-   Array.Date\n-   Array.Decimal\n-   Yes/No\n-   Object\n-   Array.Datetime\n-   Checkbox\n-   Email\n-   Choice\n\nData type: String\n\n</td></tr><tr><td>\n\nvalidFor\n\n</td><td>\n\nDate range the specification is valid for.Data type: Object\n\n```\n\"validFor\": {\n  \"endDateTime\": \"String\",\n  \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nvalidFor.endDateTime\n\n</td><td>\n\nEnd date of the specification.Data type: String\n\n</td></tr><tr><td>\n\nvalidFor.startDateTime\n\n</td><td>\n\nStart date of the specification.Data type: String\n\n</td></tr><tr><td>\n\nversion\n\n</td><td>\n\nExternal version of the service specification.Data type: String\n\nTable: In the external\\_version field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr></tbody>\n</table>### cURL request\n\nThis example retrieves all service specifications.\n\n```\ncurl --location --request GET \"https://instance.servicenow.com/api/sn_prd_pm_adv/catalogmanagement/servicespecification\" \\\n--user 'username':'password'\n\n```\n\nResponse body.\n\n```\n[\n   {\n      \"id\": \"16d79ec3532520103b6bddeeff7b12a6\",\n      \"name\": \"SD WAN Optimization Service\",\n       \"externalSystem\": \"Salesforce - TMF633\",\n      \"description\": \"SD WAN Optimization Service\",\n      \"lastUpdate\": \"2022-01-23 22:48:55\",\n      \"validFor\": {\n         \"startDateTime\": \"2022-01-12\",\n         \"endDateTime\": \"2027-02-11\"\n      },\n      \"serviceSpecificationRelationship\": [\n         {\n            \"id\": \"a1f5fe981bb420106ba59acf034bcb4f\",\n            \"name\": \"Deduplication and Compression\",\n            \"version\": \"1\",\n            \"type\": \"rfs\",\n            \"validFor\": {\n               \"startDateTime\": \"2021-02-11\",\n               \"endDateTime\": \"2027-02-11\"\n            }\n         }\n      ],\n      \"resourceSpecification\": [],\n      \"serviceSpecCharacteristic\": [\n         {\n            \"name\": \"SSL Optimization\",\n            \"description\": \"SSL Optimization\",\n            \"valueType\": \"choice\",\n            \"validFor\": {\n               \"startDatetime\": \"2022-01-14 07:47:57\"\n            },\n            \"productSpecCharacteristicValue\": [\n               {\n                  \"value\": \"False\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               },\n               {\n                  \"value\": \"True\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               }\n            ]\n         },\n         {\n            \"name\": \"CIFS Optimization\",\n            \"description\": \"CIFS Optimization Protocol\",\n            \"valueType\": \"choice\",\n            \"validFor\": {\n               \"startDatetime\": \"2022-01-14 07:49:09\"\n            },\n            \"productSpecCharacteristicValue\": [\n               {\n                  \"value\": \"SMB1\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               },\n               {\n                  \"value\": \"SMB2\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               }\n            ]\n         }\n      ]\n      \"externalSource\": \"ABC-TMF633\"\n   },\n   {\n      \"id\": \"31c5caff07266010a7955b7e0ad3006b\",\n      \"name\": \"Firewall Administration\",\n      \"description\": \"Firewall Administration\",\n      \"lastUpdate\": \"2022-01-23 11:46:48\",\n      \"validFor\": {\n         \"startDateTime\": \"2021-11-22\",\n         \"endDateTime\": \"\"\n      },\n      \"serviceSpecificationRelationship\": [],\n      \"resourceSpecification\": [\n         {\n            \"id\": \"3546463307666010a7955b7e0ad3005d\",\n            \"name\": \"Cisco Firewall Management system\",\n            \"version\": \"1\"\n         }\n      ],\n      \"serviceSpecCharacteristic\": [\n         {\n            \"name\": \"Firewall Administration CPE Model\",\n            \"description\": \"Firewall Administration CPE Model\",\n            \"valueType\": \"choice\",\n            \"validFor\": {\n               \"startDatetime\": \"2022-02-20 00:55:37\"\n            },\n            \"productSpecCharacteristicValue\": [\n               {\n                  \"value\": \"2100 series\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               },\n               {\n                  \"value\": \"4100 series\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               },\n               {\n                  \"value\": \"7300 series\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               },\n               {\n                  \"value\": \"9300 series\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               }\n            ]\n    \"externalSource\": \"ABC-TMF633\"\n         },\n         {\n            \"name\": \"Firewall Administration CPE Type\",\n            \"description\": \"Firewall Administration CPE Type\",\n            \"valueType\": \"choice\",\n            \"validFor\": {\n               \"startDatetime\": \"2022-02-20 00:53:45\"\n            },\n            \"productSpecCharacteristicValue\": [\n               {\n                  \"value\": \"Physical\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               },\n               {\n                  \"value\": \"Virtual\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               }\n            ]\n         },\n         {\n            \"name\": \"Configuration and Policy backup\",\n            \"description\": \"Configuration and Policy backup\",\n            \"valueType\": \"choice\",\n            \"validFor\": {\n               \"startDatetime\": \"2022-01-21 10:46:02\"\n            },\n            \"productSpecCharacteristicValue\": [\n               {\n                  \"value\": \"Weekly\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               },\n               {\n                  \"value\": \"Monthly\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               },\n               {\n                  \"value\": \"Daily\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               }\n            ]\n         },\n         {\n            \"name\": \"Remote CLI troubleshoot support\",\n            \"description\": \"Remote CLI troubleshoot support\",\n            \"valueType\": \"choice\",\n            \"validFor\": {\n               \"startDatetime\": \"2022-01-21 10:45:38\"\n            },\n            \"productSpecCharacteristicValue\": [\n               {\n                  \"value\": \"Standard support\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               },\n               {\n                  \"value\": \"Premium support\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               },\n               {\n                  \"value\": \"Basic support\",\n                  \"validFor\": {\n                     \"startDateTime\": \"\"\n                  }\n               }\n            ]\n         },\n         {\n            \"name\": \"Firewall Administration CPE ID\",\n            \"description\": \"Firewall Administration CPE ID\",\n            \"valueType\": \"single_line_text\",\n            \"validFor\": {\n               \"startDatetime\": \"2022-02-20 00:57:50\"\n            },\n            \"productSpecCharacteristicValue\": []\n         }\n      ]\n   }\n]\n```\n\n## Service Catalog Open - GET /servicespecification/\\{specificationId\\}\n\nRetrieves a service specification.\n\n### URL format\n\nDefault URL: `/api/sn_prd_pm_adv/catalogmanagement/servicespecification/{specificationId}`\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nspecificationId\n\n</td><td>\n\nSys\\_id of the service specification to retrieve.Data type: String\n\nTable: Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\]\n\n</td></tr></tbody>\n</table><table id=\"table_pfr_vgy_fsb\" class=\"rest_api_query_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nfields\n\n</td><td>\n\nList of fields to return in the response. Invalid fields are ignored. If this parameter is not used, all fields are returned. Data type: String\n\n</td></tr><tr><td>\n\nstate\n\n</td><td>\n\nFilter service specifications by state. Only specifications with a state matching the value of this parameter are returned in the response.Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n### Headers\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Header|Description|\n|------|-----------|\n|None| |\n\n|Header|Description|\n|------|-----------|\n|Content-Type|Data format of the response body. Only supports **application/json**.|\n\n### Status codes\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table><thead><tr><th>\n\nStatus code\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n200\n\n</td><td>\n\nRequest successfully processed.\n\n</td></tr><tr><td>\n\n400\n\n</td><td>\n\nBad Request. Could be any of the following reasons:\n\n-   Invalid path parameter\n-   Invalid URI\n\n</td></tr><tr><td>\n\n404\n\n</td><td>\n\nRecord not found. Record associated with the ID is not found in the table.\n\n</td></tr></tbody>\n</table>### Response body parameters \\(JSON\\)\n\n<table id=\"table_hnx_3gy_fsb\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n@type\n\n</td><td>\n\nType of specification.Data type: String\n\n</td></tr><tr><td>\n\ndescription\n\n</td><td>\n\nDescription of the specification.Data type: String\n\n</td></tr><tr><td>\n\nexternalId\n\n</td><td>\n\nExternal ID of the service specification.Data type: String\n\nTable: In the external\\_id field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\nexternalSystem\n\n</td><td>\n\nExternal 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`.\n\nData Type: String\n\n</td></tr><tr><td>\n\nexternalSystem\n\n</td><td>\n\nThird-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\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nInitial version or external ID of the service specification.Data type: String\n\nTable: In the initial\\_version or external\\_id field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\ninternalId\n\n</td><td>\n\nInitial version of the service specification.Data type: String\n\nTable: In the initial\\_version field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\ninternalVersion\n\n</td><td>\n\nVersion of the service specification.Data type: String\n\nTable: In the version field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\nlastUpdate\n\n</td><td>\n\nDate the specification was last updated.Data type: String\n\n</td></tr><tr><td>\n\nname\n\n</td><td>\n\nName of the specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification\n\n</td><td>\n\nResource specifications for this service specification.Data type: Array of Objects\n\n```\n\"resourceSpecification\": [\n  {\n    \"id\": \"String\",\n    \"internalId\": \"String\",\n    \"internalVersion\": \"String\",\n    \"name\": \"String\",\n    \"version\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nresourceSpecification.id\n\n</td><td>\n\nThe initial\\_version or external\\_id of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.internalId\n\n</td><td>\n\nThe initial\\_version of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.internalVersion\n\n</td><td>\n\nThe external\\_version of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.name\n\n</td><td>\n\nName of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.version\n\n</td><td>\n\nVersion of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship\n\n</td><td>\n\nThis specification's relationships to other service specifications.Data type: Array of Objects\n\n```\n\"serviceSpecificationRelationship\": [\n  {\n    \"id\": \"String\",\n    \"internalId\": \"String\",\n    \"internalVersion\": \"String\",\n    \"relationshipType\": \"String\",\n    \"validFor\": {Object},\n    \"version\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.id\n\n</td><td>\n\nThe initial\\_version or external\\_id of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.internalId\n\n</td><td>\n\nThe initial\\_version of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.internalVersion\n\n</td><td>\n\nVersion of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.relationshipType\n\n</td><td>\n\nType of relationship.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor\n\n</td><td>\n\nDate range the relationship is valid for.Data type: Object\n\n```\n\"validFor\": {\n   \"endDateTime\": \"String\",\n   \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor.endDateTime\n\n</td><td>\n\nEnd date of the relationship.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor.startDateTime\n\n</td><td>\n\nStart date of the relationship.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.version\n\n</td><td>\n\nThe external\\_version of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic\n\n</td><td>\n\nSpecification characteristic.Data type: Array of Objects\n\n```\n\"specCharacteristic\": [\n  {\n    \"characteristicValueSpecification\": [Array],\n    \"description\": \"String\",\n    \"name\": \"String\",\n    \"validFor\": {Object},\n    \"valueType\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.characteristicValueSpecification\n\n</td><td>\n\nList of possible values of the characteristic.Data type: Array of Objects\n\n```\n\"characteristicValueSpecification\": [\n  {\n    \"value\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.characteristicValueSpecification.value\n\n</td><td>\n\nValue of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.description\n\n</td><td>\n\nDescription of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.name\n\n</td><td>\n\nName of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor\n\n</td><td>\n\nDate range the characteristic is valid for.Data type: Object\n\n```\n\"validFor\": {\n  \"endDateTime\": \"String\",\n  \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor.endDateTime\n\n</td><td>\n\nEnd date of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor.startDateTime\n\n</td><td>\n\nStart date of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.valueType\n\n</td><td>\n\nValue type of the characteristic, such as choice or email. Can be a simple or complex characteristic.Possible values:\n\n-   Date,Address\n-   Integer,Date/Time\n-   Array.Integer\n-   Array.Single Line Test\n-   Single Line Text\n-   Array.Obect\n-   Array.Date\n-   Array.Decimal\n-   Yes/No\n-   Object\n-   Array.Datetime\n-   Checkbox\n-   Email\n-   Choice\n\nData type: String\n\n</td></tr><tr><td>\n\nvalidFor\n\n</td><td>\n\nDate range the specification is valid for.Data type: Object\n\n```\n\"validFor\": {\n  \"endDateTime\": \"String\",\n  \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nvalidFor.endDateTime\n\n</td><td>\n\nEnd date of the specification.Data type: String\n\n</td></tr><tr><td>\n\nvalidFor.startDateTime\n\n</td><td>\n\nStart date of the specification.Data type: String\n\n</td></tr><tr><td>\n\nversion\n\n</td><td>\n\nExternal version of the service specification.Data type: String\n\nTable: In the external\\_version field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr></tbody>\n</table>### cURL request\n\nThis example retrieves a service specification for a firewall service.\n\n```\ncurl --location --request GET \"https://instance.servicenow.com/api/sn_prd_pm_adv/catalogmanagement/servicespecification/31c5caff07266010a7955b7e0ad3006b\" \\\n--user 'username':'password'\n```\n\nResponse body.\n\n```\n\n{\n   \"id\": \"31c5caff07266010a7955b7e0ad3006b\",\n   \"name\": \"Firewall Administration\",\n   \"description\": \"Firewall Administration\",\n   \"externalSystem\": \"Salesforce - TMF633\",\n   \"lastUpdate\": \"2022-01-23 11:46:48\",\n   \"validFor\": {\n      \"startDateTime\": \"2021-11-22\",\n      \"endDateTime\": \"\"\n   },\n   \"serviceSpecificationRelationship\": [],\n   \"resourceSpecification\": [\n      {\n         \"id\": \"3546463307666010a7955b7e0ad3005d\",\n         \"name\": \"Cisco Firewall Management system\",\n         \"version\": \"1\"\n      }\n   ],\n   \"serviceSpecCharacteristic\": [\n      {\n         \"name\": \"Firewall Administration CPE Model\",\n         \"description\": \"Firewall Administration CPE Model\",\n         \"valueType\": \"choice\",\n         \"validFor\": {\n            \"startDatetime\": \"2022-02-20 00:55:37\"\n         },\n         \"productSpecCharacteristicValue\": [\n            { \"value\": \"2100 series\", \"validFor\": { \"startDateTime\": \"\" } },\n            { \"value\": \"4100 series\", \"validFor\": { \"startDateTime\": \"\" } },\n            { \"value\": \"7300 series\", \"validFor\": { \"startDateTime\": \"\" } },\n            { \"value\": \"9300 series\", \"validFor\": { \"startDateTime\": \"\" } }\n         ]\n      },\n      {\n         \"name\": \"Firewall Administration CPE Type\",\n         \"description\": \"Firewall Administration CPE Type\",\n         \"valueType\": \"choice\",\n         \"validFor\": {\n            \"startDatetime\": \"2022-02-20 00:53:45\"\n         },\n         \"productSpecCharacteristicValue\": [\n            { \"value\": \"Physical\", \"validFor\": { \"startDateTime\": \"\" } },\n            { \"value\": \"Virtual\", \"validFor\": { \"startDateTime\": \"\" } }\n         ]\n      },\n      {\n         \"name\": \"Configuration and Policy backup\",\n         \"description\": \"Configuration and Policy backup\",\n         \"valueType\": \"choice\",\n         \"validFor\": {\n            \"startDatetime\": \"2022-01-21 10:46:02\"\n         },\n         \"productSpecCharacteristicValue\": [\n            { \"value\": \"Weekly\", \"validFor\": { \"startDateTime\": \"\" } },\n            { \"value\": \"Monthly\", \"validFor\": { \"startDateTime\": \"\" } },\n            { \"value\": \"Daily\", \"validFor\": { \"startDateTime\": \"\" } }\n         ]\n      },\n      {\n         \"name\": \"Remote CLI troubleshoot support\",\n         \"description\": \"Remote CLI troubleshoot support\",\n         \"valueType\": \"choice\",\n         \"validFor\": {\n            \"startDatetime\": \"2022-01-21 10:45:38\"\n         },\n         \"productSpecCharacteristicValue\": [\n            { \"value\": \"Standard support\", \"validFor\": { \"startDateTime\": \"\" } },\n            { \"value\": \"Premium support\", \"validFor\": { \"startDateTime\": \"\" } },\n            { \"value\": \"Basic support\", \"validFor\": { \"startDateTime\": \"\" } }\n         ]\n      },\n      {\n         \"name\": \"Firewall Administration CPE ID\",\n         \"description\": \"Firewall Administration CPE ID\",\n         \"valueType\": \"single_line_text\",\n         \"validFor\": {\n            \"startDatetime\": \"2022-02-20 00:57:50\"\n         },\n         \"productSpecCharacteristicValue\": []\n      }\n   ],\n   \"externalSource\": \"ABC-TMF633\"\n}\n```\n\n## Service Category Open - PATCH /api/sn\\_tmf\\_api/catalogmanagement/serviceCategory/\\{id\\}\n\nUpdates a specified record in the Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\] table.\n\n### URL format\n\nDefault URL: `/api/sn_tmf_api/catalogmanagement/serviceCategory/ {id}`\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nid\n\n</td><td>\n\nSys\\_id of the service category table.Table: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\]\n\nData type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n<table class=\"rest_api_request_body\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nexternalIdentifier\n\n</td><td>\n\nIdentifying information for an external system involved in managing categories.Data type: Array of Objects\n\n```\n\"externalIdentifier\": [\n {\n  \"id\": \"String\",\n  \"owner\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nexternalIdentifier.id\n\n</td><td>\n\nUnique identifier for the service category. This value is determined by an external system. Table: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\], Field: external\\_id\n\nData type: String\n\n</td></tr><tr><td>\n\nexternalIdentifier.owner\n\n</td><td>\n\nThe system that owns this ID. Data type: String\n\n</td></tr><tr><td>\n\nhref\n\n</td><td>\n\nHyperlink to access the service category.Data type: String\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nSys\\_id of the service category. Table: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nisRoot\n\n</td><td>\n\nFlag that indicates whether the category is a root of categories.Valid values:\n\n-   true: Category is a root of categories.\n-   false: Category isn't a root of categories.\n\nData type: Boolean\n\n</td></tr><tr><td>\n\nmodelCategory\n\n</td><td>\n\nList of model categories associated with the service category.Data type: Array of Objects\n\n```\n\"modelCategory\": [\n {\n  \"id\": \"String\",\n  \"name\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nmodelCategory.id\n\n</td><td>\n\nSys\\_id of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nmodelCategory.name\n\n</td><td>\n\nName of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nname\n\n</td><td>\n\nName of the service category.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate\n\n</td><td>\n\nList of service candidates associated with this category.Data type: Array of objects\n\n```\n\"serviceCandidate\": [\n {\n  \"@referredType\": \"String\",\n  \"href\": \"String\",\n  \"id\": \"String\",\n  \"name\": \"String\",\n  \"version\": \"String\" \n }\n]\n```\n\n</td></tr><tr><td>\n\nserviceCandidate.@referredType\n\n</td><td>\n\nValue is always `ServiceCategory`.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.href\n\n</td><td>\n\nHyperlink to access the service specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.id\n\n</td><td>\n\nSys\\_id of the service specification.Table: Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.version\n\n</td><td>\n\nVersion of the service candidate.Data type: String\n\n</td></tr></tbody>\n</table>### Headers\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table class=\"rest_api_request_headers\"><thead><tr><th>\n\nHeader\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nAccept\n\n</td><td id=\"accept-entry-RESTAPI\">\n\nData format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json**\n\n</td></tr></tbody>\n</table>|Header|Description|\n|------|-----------|\n|None| |\n\n### Headers\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Header|Description|\n|------|-----------|\n|Accept|Data format of the request body. Only supports application/json.|\n|Content-Type|Data format of the request body. Only supports application/json.|\n\n|Header|Description|\n|------|-----------|\n|Content-Type|Data format of the response body. Only supports application/json.|\n\n### Status codes\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table id=\"table_lpd_1kp_zgc\"><thead><tr><th>\n\nStatus code\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n201\n\n</td><td>\n\nSuccessful. The request was successfully processed.\n\n</td></tr><tr><td>\n\n400\n\n</td><td>\n\nBad Request. A bad request type or malformed request was detected for one or more of the following reasons:\n\n-   Empty payload.\n-   Invalid payload.\n-   Mandatory field missing.\n\n</td></tr></tbody>\n</table>### Response body parameters \\(JSON or XML\\)\n\n<table id=\"table_d3r_4cp_zgc\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nexternalIdentifier\n\n</td><td>\n\nIdentifying information for an external system involved in managing categories.Data type: Array of objects\n\n```\n\"externalIdentifier\": [\n {\n  \"id\": \"String\",\n  \"owner\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nexternalIdentifier.id\n\n</td><td>\n\nUnique identifier for the service category. This value is determined by an external system. Data type: String\n\nTable: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\], Field: external\\_id\n\n</td></tr><tr><td>\n\nexternalIdentifier.owner\n\n</td><td>\n\nThe system that owns this ID. Data type: String\n\n</td></tr><tr><td>\n\nhref\n\n</td><td>\n\nHyperlink to access the service category.Data type: string\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nSys\\_id of the service category. Table: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nisRoot\n\n</td><td>\n\nFlag that indicates whether the category is a root of categories.Valid values:\n\n-   true: Category is a root of categories.\n-   false: Category isn't a root of categories.\n\nData type:Boolean\n\n</td></tr><tr><td>\n\nmodelCategory\n\n</td><td>\n\nList of model categories associated with the service category.Data type: Array of objects\n\n```\n\"modelCategory\": [\n {\n  \"id\": \"String\",\n  \"name\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nmodelCategory.id\n\n</td><td>\n\nSys\\_id of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nmodelCategory.name\n\n</td><td>\n\nName of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nname\n\n</td><td>\n\nName of the service category.Data type: string\n\n</td></tr><tr><td>\n\nserviceCandidate\n\n</td><td>\n\nList of service candidates associated with this category.Data type: Array of objects\n\n```\n\"serviceCandidate\": [\n {\n  \"@referredType\": \"String\",\n  \"href\": \"String\",\n  \"id\": \"String\",\n  \"name\": \"String\",\n  \"version\": \"String\" \n }\n]\n```\n\n</td></tr><tr><td>\n\nserviceCandidate.@referredType\n\n</td><td>\n\nValue is always `ServiceCategory`.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.href\n\n</td><td>\n\nHyperlink to access the service specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.id\n\n</td><td>\n\nSys\\_id of the service specification.Table: Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.version\n\n</td><td>\n\nVersion of the service candidate.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThe following example updates the service category's name, version, service candidate, model category, and external identifier information.\n\n```\ncurl \"https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/serviceCategory/a1b23456c7de8a90f0123456gh789ij\" \\\n  --request PATCH \\\n  --header \"Accept:application/json\" \\\n  --header \"Content-Type:application/json\" \\\n  --data '{\n    \"name\": \"Cloud Services\",\n    \"version\": \"1.0\",\n    \"serviceCandidate\": [\n      {\n        \"id\": \"a1b23456c7de8a90f0123456gh789ij\",\n        \"href\": \"https://mycsp.com:8080/tmf-api/serviceCatalogManagement/v4/serviceCategory/5980\",\n        \"version\": \"3.2\",\n        \"name\": \"Cloud Services\",\n        \"@referredType\": \"ServiceCategory\"\n      }\n    ],\n    \"modelCategory\": [\n      {\n        \"id\": \"b2d5bc14c3031000b959fd251eba8f96\",\n        \"name\": \"model\"\n      }\n    ],\n    \"externalIdentifier\": {\n      \"id\": \"1234234312\",\n      \"owner\": \"TMF200000123233\"\n    },\n    \"isRoot\": true\n  }' \\\n  --user 'user:password\n```\n\nResponse body.\n\n```\n{\n  \"name\": \"Cloud Services\",\n  \"version\": \"1.0\",\n  \"serviceCandidate\": [\n    {\n      \"id\": \"a1b23456c7de8a90f0123456gh789ij\",\n      \"href\": \"https://mycsp.com:8080/tmf-api/serviceCatalogManagement/v4/serviceCategory/5980\",\n      \"version\": \"3.2\",\n      \"name\": \"Cloud Services\",\n      \"@referredType\": \"ServiceCategory\"\n    }\n  ],\n  \"modelCategory\": [\n    {\n      \"id\": \"b2d5bc14c3031000b959fd251eba8f96\",\n      \"name\": \"model\"\n    }\n  ],\n  \"externalIdentifier\": {\n    \"id\": \"1234234312\",\n    \"owner\": \"TMF200000123233\"\n  },\n  \"isRoot\": true,\n  \"id\": \"8138241b1caaaa10f87703c075c809fe\",\n  \"href\": \"api/sn_tmf_api/catalogmanagement/serviceCategory/8138241b1caaaa10f87703c075c809fe\"\n}\n```\n\n## Service Catalog Open - POST /api/sn\\_tmf\\_api/catalogmanagement/serviceCategory\n\nCreates a new service category record in the Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\] table.\n\n### URL format\n\nDefault URL: `/api/sn_tmf_api/catalogmanagement/serviceCategory`\n\n### Supported request parameters\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n<table class=\"rest_api_request_body\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nexternalIdentifier\n\n</td><td>\n\nIdentifying information for an external system involved in managing categories.Data type: Array of Objects\n\n```\n\"externalIdentifier\": [\n {\n  \"id\": \"String\",\n  \"owner\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nexternalIdentifier.id\n\n</td><td>\n\nUnique identifier for the service category. This value is determined by an external system. Table: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\], Field: external\\_id\n\nData type: String\n\n</td></tr><tr><td>\n\nexternalIdentifier.owner\n\n</td><td>\n\nThe system that owns this ID. Data type: String\n\n</td></tr><tr><td>\n\nhref\n\n</td><td>\n\nHyperlink to access the service category.Data type: String\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nSys\\_id of the service category. Table: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nisRoot\n\n</td><td>\n\nFlag that indicates whether the category is a root of categories.Valid values:\n\n-   true: Category is a root of categories.\n-   false: Category isn't a root of categories.\n\nData type: Boolean\n\n</td></tr><tr><td>\n\nmodelCategory\n\n</td><td>\n\nList of model categories associated with the service category.Data type: Array of Objects\n\n```\n\"modelCategory\": [\n {\n  \"id\": \"String\",\n  \"name\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nmodelCategory.id\n\n</td><td>\n\nSys\\_id of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nmodelCategory.name\n\n</td><td>\n\nName of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nname\n\n</td><td>\n\nName of the service category.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate\n\n</td><td>\n\nList of service candidates associated with this category.Data type: Array of objects\n\n```\n\"serviceCandidate\": [\n {\n  \"id\": \"String\",\n  \"href\": \"String\",\n  \"name\": \"String\",\n  \"@referredType\": \"String\",\n  \"version\": \"String\" \n }\n]\n```\n\n</td></tr><tr><td>\n\nserviceCandidate.@referredType\n\n</td><td>\n\nValue is always `ServiceCategory`.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.href\n\n</td><td>\n\nHyperlink to access the service specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.id\n\n</td><td>\n\nSys\\_id of the service specification.Table: Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.version\n\n</td><td>\n\nVersion of the service candidate.Data type: String\n\n</td></tr></tbody>\n</table>### Headers\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Header|Description|\n|------|-----------|\n|Accept|Data format of the request body. Only supports application/json.|\n|Content-Type|Data format of the request body. Only supports application/json.|\n\n|Header|Description|\n|------|-----------|\n|Content-Type|Data format of the response body. Only supports application/json.|\n\n### Status codes\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table><thead><tr><th>\n\nStatus code\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n201\n\n</td><td>\n\nSuccessful. The request was successfully processed.\n\n</td></tr><tr><td>\n\n400\n\n</td><td>\n\nBad Request. A bad request type or malformed request was detected for one or more of the following reasons:\n\n-   Empty payload.\n-   Invalid payload.\n-   Mandatory field missing.\n\n</td></tr></tbody>\n</table>### Response body parameters \\(JSON or XML\\)\n\n<table id=\"table_d3r_4cp_zgc\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nexternalIdentifier\n\n</td><td>\n\nIdentifying information for an external system involved in managing categories.Data type: Array of objects\n\n```\n\"externalIdentifier\": [\n {\n  \"id\": \"String\",\n  \"owner\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nexternalIdentifier.id\n\n</td><td>\n\nUnique identifier for the service category. This value is determined by an external system. Data type: String\n\nTable: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\], Field: external\\_id\n\n</td></tr><tr><td>\n\nexternalIdentifier.owner\n\n</td><td>\n\nThe system that owns this ID. Data type: String\n\n</td></tr><tr><td>\n\nhref\n\n</td><td>\n\nHyperlink to access the service category.Data type: string\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nSys\\_id of the service category. Table: Specification Category \\[sn\\_prd\\_pm\\_specification\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nisRoot\n\n</td><td>\n\nFlag that indicates whether the category is a root of categories.Valid values:\n\n-   true: Category is a root of categories.\n-   false: Category isn't a root of categories.\n\nData type:Boolean\n\n</td></tr><tr><td>\n\nmodelCategory\n\n</td><td>\n\nList of model categories associated with the service category.Data type: Array of objects\n\n```\n\"modelCategory\": [\n {\n  \"id\": \"String\",\n  \"name\": \"String\"\n }\n]\n```\n\n</td></tr><tr><td>\n\nmodelCategory.id\n\n</td><td>\n\nSys\\_id of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nmodelCategory.name\n\n</td><td>\n\nName of the model category. Table: Model Category \\[cmdb\\_model\\_category\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nname\n\n</td><td>\n\nName of the service category.Data type: string\n\n</td></tr><tr><td>\n\nserviceCandidate\n\n</td><td>\n\nList of service candidates associated with this category.Data type: Array of objects\n\n```\n\"serviceCandidate\": [\n {\n  \"id\": \"String\",\n  \"href\": \"String\",\n  \"name\": \"String\",\n  \"@referredType\": \"String\",\n  \"version\": \"String\" \n }\n]\n```\n\n</td></tr><tr><td>\n\nserviceCandidate.@referredType\n\n</td><td>\n\nValue is always `ServiceCategory`.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.href\n\n</td><td>\n\nHyperlink to access the service specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.id\n\n</td><td>\n\nSys\\_id of the service specification.Table: Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\]\n\nData type: String\n\n</td></tr><tr><td>\n\nserviceCandidate.version\n\n</td><td>\n\nVersion of the service candidate.Data type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThe following example calls POST to create a new service category record according to details provided in the request body.\n\n```\ncurl \"https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/serviceCategory\" \\\n  --request POST \\\n  --header \"Accept:application/json\" \\\n  --header \"Content-Type:application/json\" \\\n  --user 'user:password' \\\n  --data '{\n    \"name\": \"Cloud Services\",\n    \"version\": \"1.0\",\n    \"serviceCandidate\": [\n      {\n        \"id\": \"a1b23456c7de8a90f0123456gh789ij\",\n        \"href\": \"https://mycsp.com:8080/tmf-api/serviceCatalogManagement/v4/serviceCategory/5980\",\n        \"version\": \"3.2\",\n        \"name\": \"Cloud Services\",\n        \"@referredType\": \"ServiceCategory\"\n      }\n    ],\n    \"modelCategory\": [\n      {\n        \"id\": \"b2d5bc14c3031000b959fd251eba8f96\",\n        \"name\": \"model\"\n      }\n    ],\n    \"externalIdentifier\": {\n      \"id\": \"1234234312\",\n      \"owner\": \"TMF200000123233\"\n    },\n    \"isRoot\": true\n  }'\n```\n\nResponse body.\n\n```\n{\n  \"name\": \"Cloud Services\",\n  \"version\": \"1.0\",\n  \"serviceCandidate\": [\n    {\n      \"id\": \"a1b23456c7de8a90f0123456gh789ij\",\n      \"href\": \"https://mycsp.com:8080/tmf-api/serviceCatalogManagement/v4/serviceCategory/5980\",\n      \"version\": \"3.2\",\n      \"name\": \"Cloud Services\",\n      \"@referredType\": \"ServiceCategory\"\n    }\n  ],\n  \"modelCategory\": [\n    {\n      \"id\": \"b2d5bc14c3031000b959fd251eba8f96\",\n      \"name\": \"model\"\n    }\n  ],\n  \"externalIdentifier\": {\n    \"id\": \"1234234312\",\n    \"owner\": \"TMF200000123233\"\n  },\n  \"isRoot\": true,\n  \"id\": \"8138241b1caaaa10f87703c075c809fe\",\n  \"href\": \"api/sn_tmf_api/service_catalog_api/serviceCategory/8138241b1caaaa10f87703c075c809fe\"\n}\n```\n\n## Service Catalog Open - POST /servicespecification\n\nCreates a service specification.\n\n### URL format\n\nDefault URL: `/api/sn_prd_pm_adv/catalogmanagement/servicespecification`\n\n### Supported request parameters\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n|Name|Description|\n|----|-----------|\n|None| |\n\n<table class=\"rest_api_request_body\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\ndescription\n\n</td><td>\n\nRequired. Description of the specification.Data type: String\n\n</td></tr><tr><td>\n\nexternalId\n\n</td><td>\n\nExternal ID of the service specification.If both **externalId** and **id** are provided, they must refer to the same specification.\n\nData type: String\n\nDefault: Blank string\n\nTable: Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\]\n\n</td></tr><tr><td>\n\nexternalSystem\n\n</td><td>\n\nThird-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`.\n\n Data type: String\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nThe 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.\n\nData type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\ninternalVersion\n\n</td><td>\n\nVersion of the service specification.Data type: String\n\nDefault: Blank string\n\nTable: Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\]\n\n</td></tr><tr><td>\n\nlastUpdate\n\n</td><td>\n\nDate the specification was last updated.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nname\n\n</td><td>\n\nRequired. Name of the specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification\n\n</td><td>\n\nRequired. Resource specifications for this service specification.Data type: Array of Objects\n\n```\n\"resourceSpecification\": [\n  {\n    \"id\": \"String\",\n    \"internalVersion\": \"String\",\n    \"name\": \"String\",\n    \"version\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nresourceSpecification.id\n\n</td><td>\n\nRequired. The initial\\_version or external\\_id of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.internalVersion\n\n</td><td>\n\nThe external\\_version of the resource specification.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nresourceSpecification.name\n\n</td><td>\n\nName of the resource specification.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nresourceSpecification.version\n\n</td><td>\n\nVersion of the resource specification.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship\n\n</td><td>\n\nDetails of the specification's relationships to other service specifications.Data type: Array of Objects\n\n```\n\"serviceSpecificationRelationship\": [\n  {\n    \"id\": \"String\",\n    \"internalVersion\": \"String\",\n    \"relationshipType\": \"String\",\n    \"validFor\": {Object},\n    \"version\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.id\n\n</td><td>\n\nRequired if using the **serviceSpecificationRelationship** parameter. Initial\\_version or external\\_id of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.internalVersion\n\n</td><td>\n\nVersion of the related specification.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.relationshipType\n\n</td><td>\n\nRequired if using the **serviceSpecificationRelationship** parameter. Type of relationship.Valid values:\n\n-   bundles\n-   composed\\_of\n\nData type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor\n\n</td><td>\n\nDate range the relationship is valid for.Data type: Object\n\n```\n\"validFor\": {\n  \"endDateTime\": \"String\",\n  \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor.endDateTime\n\n</td><td>\n\nEnd date of the relationship.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor.startDateTime\n\n</td><td>\n\nStart date of the relationship.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.version\n\n</td><td>\n\nThe external\\_version of the related specification.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nspecCharacteristic\n\n</td><td>\n\nSpecification characteristic.Data type: Array of Objects\n\n```\n\"specCharacteristic\": [\n  {\n    \"characteristicValueSpecification\": [Array],\n    \"description\": \"String\",\n    \"name\": \"String\",\n    \"validFor\": {Object},\n    \"valueType\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.characteristicValueSpecification\n\n</td><td>\n\nRequired. Possible values of the characteristic.Data type: Array of Objects\n\n```\n\"characteristicValueSpecification\": [\n  {\n    \"value\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.characteristicValueSpecification.value\n\n</td><td>\n\nRequired. Value of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.description\n\n</td><td>\n\nDescription of the characteristic.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nspecCharacteristic.name\n\n</td><td>\n\nRequired. Name of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor\n\n</td><td>\n\nDate range the characteristic is valid for.Data type: Object\n\n```\n\"validFor\": {\n  \"endDateTime\": \"String\",\n  \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor.endDateTime\n\n</td><td>\n\nEnd date of the characteristic.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor.startDateTime\n\n</td><td>\n\nStart date of the characteristic.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nspecCharacteristic.valueType\n\n</td><td>\n\nValue type of the characteristic, such as choice or email. Can be a simple or complex characteristic.Possible values:\n\n-   Date,Address\n-   Integer,Date/Time\n-   Array.Integer\n-   Array.Single Line Test\n-   Single Line Text\n-   Array.Obect\n-   Array.Date\n-   Array.Decimal\n-   Yes/No\n-   Object\n-   Array.Datetime\n-   Checkbox\n-   Email\n-   Choice\n\nData type: String\n\n</td></tr><tr><td>\n\nvalidFor\n\n</td><td>\n\nRequired. Date range the specification is valid for.Data type: Object\n\n```\n\"validFor\": {\n  \"endDateTime\": \"String\",\n  \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nvalidFor.endDateTime\n\n</td><td>\n\nEnd date of the specification.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nvalidFor.startDateTime\n\n</td><td>\n\nStart date of the specification.Data type: String\n\nDefault: Blank string\n\n</td></tr><tr><td>\n\nversion\n\n</td><td>\n\nExternal version of the service specification. Version must be unique for the given version chain.\n\nData type: String\n\nDefault: Blank string\n\nTable: In the external\\_version field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\n@type\n\n</td><td>\n\nRequired. Type of specification.Valid values:\n\n-   CustomerFacingServiceSpecification\n-   ResourceFacingServiceSpecification\n\nData type: String\n\n</td></tr></tbody>\n</table>### Headers\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Header|Description|\n|------|-----------|\n|Accept|Data format of the response body. Only supports **application/json**.|\n|Content-Type|Data format of the request body. Only supports **application/json**.|\n\n|Header|Description|\n|------|-----------|\n|Content-Type|Data format of the response body. Only supports **application/json**.|\n\n### Status codes\n\nThe 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table><thead><tr><th>\n\nStatus code\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n201\n\n</td><td>\n\nRequest successfully processed.\n\n</td></tr><tr><td>\n\n400\n\n</td><td>\n\nBad Request. Could be any of the following reasons: -   Empty payload.\n-   Invalid payload. Mandatory field missing: &lt;field name&gt;\n\n</td></tr></tbody>\n</table>### Response body parameters \\(JSON\\)\n\n<table id=\"table_hnx_3gy_fsb\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n@type\n\n</td><td>\n\nType of specification.Data type: String\n\n</td></tr><tr><td>\n\ndescription\n\n</td><td>\n\nDescription of the specification.Data type: String\n\n</td></tr><tr><td>\n\nexternalId\n\n</td><td>\n\nExternal ID of the service specification.Data type: String\n\nTable: In the external\\_id field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\nexternalSystem\n\n</td><td>\n\nExternal 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`.\n\nData Type: String\n\n</td></tr><tr><td>\n\nexternalSystem\n\n</td><td>\n\nThird-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\n\n</td></tr><tr><td>\n\nid\n\n</td><td>\n\nInitial version or external ID of the service specification.Data type: String\n\nTable: In the initial\\_version or external\\_id field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\ninternalId\n\n</td><td>\n\nInitial version of the service specification.Data type: String\n\nTable: In the initial\\_version field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\ninternalVersion\n\n</td><td>\n\nVersion of the service specification.Data type: String\n\nTable: In the version field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr><tr><td>\n\nlastUpdate\n\n</td><td>\n\nDate the specification was last updated.Data type: String\n\n</td></tr><tr><td>\n\nname\n\n</td><td>\n\nName of the specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification\n\n</td><td>\n\nResource specifications for this service specification.Data type: Array of Objects\n\n```\n\"resourceSpecification\": [\n  {\n    \"id\": \"String\",\n    \"internalId\": \"String\",\n    \"internalVersion\": \"String\",\n    \"name\": \"String\",\n    \"version\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nresourceSpecification.id\n\n</td><td>\n\nThe initial\\_version or external\\_id of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.internalId\n\n</td><td>\n\nThe initial\\_version of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.internalVersion\n\n</td><td>\n\nThe external\\_version of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.name\n\n</td><td>\n\nName of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nresourceSpecification.version\n\n</td><td>\n\nVersion of the resource specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship\n\n</td><td>\n\nThis specification's relationships to other service specifications.Data type: Array of Objects\n\n```\n\"serviceSpecificationRelationship\": [\n  {\n    \"id\": \"String\",\n    \"internalId\": \"String\",\n    \"internalVersion\": \"String\",\n    \"relationshipType\": \"String\",\n    \"validFor\": {Object},\n    \"version\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.id\n\n</td><td>\n\nThe initial\\_version or external\\_id of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.internalId\n\n</td><td>\n\nThe initial\\_version of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.internalVersion\n\n</td><td>\n\nVersion of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.relationshipType\n\n</td><td>\n\nType of relationship.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor\n\n</td><td>\n\nDate range the relationship is valid for.Data type: Object\n\n```\n\"validFor\": {\n   \"endDateTime\": \"String\",\n   \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor.endDateTime\n\n</td><td>\n\nEnd date of the relationship.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.validFor.startDateTime\n\n</td><td>\n\nStart date of the relationship.Data type: String\n\n</td></tr><tr><td>\n\nserviceSpecificationRelationship.version\n\n</td><td>\n\nThe external\\_version of the related specification.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic\n\n</td><td>\n\nSpecification characteristic.Data type: Array of Objects\n\n```\n\"specCharacteristic\": [\n  {\n    \"characteristicValueSpecification\": [Array],\n    \"description\": \"String\",\n    \"name\": \"String\",\n    \"validFor\": {Object},\n    \"valueType\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.characteristicValueSpecification\n\n</td><td>\n\nList of possible values of the characteristic.Data type: Array of Objects\n\n```\n\"characteristicValueSpecification\": [\n  {\n    \"value\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.characteristicValueSpecification.value\n\n</td><td>\n\nValue of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.description\n\n</td><td>\n\nDescription of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.name\n\n</td><td>\n\nName of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor\n\n</td><td>\n\nDate range the characteristic is valid for.Data type: Object\n\n```\n\"validFor\": {\n  \"endDateTime\": \"String\",\n  \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor.endDateTime\n\n</td><td>\n\nEnd date of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.validFor.startDateTime\n\n</td><td>\n\nStart date of the characteristic.Data type: String\n\n</td></tr><tr><td>\n\nspecCharacteristic.valueType\n\n</td><td>\n\nValue type of the characteristic, such as choice or email. Can be a simple or complex characteristic.Possible values:\n\n-   Date,Address\n-   Integer,Date/Time\n-   Array.Integer\n-   Array.Single Line Test\n-   Single Line Text\n-   Array.Obect\n-   Array.Date\n-   Array.Decimal\n-   Yes/No\n-   Object\n-   Array.Datetime\n-   Checkbox\n-   Email\n-   Choice\n\nData type: String\n\n</td></tr><tr><td>\n\nvalidFor\n\n</td><td>\n\nDate range the specification is valid for.Data type: Object\n\n```\n\"validFor\": {\n  \"endDateTime\": \"String\",\n  \"startDateTime\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nvalidFor.endDateTime\n\n</td><td>\n\nEnd date of the specification.Data type: String\n\n</td></tr><tr><td>\n\nvalidFor.startDateTime\n\n</td><td>\n\nStart date of the specification.Data type: String\n\n</td></tr><tr><td>\n\nversion\n\n</td><td>\n\nExternal version of the service specification.Data type: String\n\nTable: In the external\\_version field of the Service Specification \\[sn\\_prd\\_pm\\_service\\_specification\\] table.\n\n</td></tr></tbody>\n</table>### cURL request\n\nThis example creates a service specification for a firewall service.\n\n```\ncurl \"https://instance.servicenow.com/api/sn_prd_pm_adv/catalogmanagement/servicespecification\" \\\n--request POST \\\n--header \"Accept:application/json\" \\\n--header \"Content-Type:application/json\" \\\n--data \"{\n   \\\"externalId\\\": \\\"7655\\\",\n   \\\"name\\\": \\\"Firewall Service\\\",\n   \\\"description\\\": \\\"This service specification describes a firewall service that can be deployed in customer-premises equipment.\\\",\n   \\\"validFor\\\": {\n      \\\"startDateTime\\\": \\\"2017-08-23T00:00\\\",\n      \\\"endDateTime\\\": \\\"2021-03-25T00:00\\\"\n   },\n   \\\"lastUpdate\\\": \\\"2020-08-15T00:00\\\",\n   \\\"externalSource\\\": \\\"ABC-TMF633\\\",\n   \\\"resourceSpecification\\\": [\n      {\n         \\\"id\\\": \\\"af66e551c32f10105252716b7d40dd52\\\",\n         \\\"name\\\": \\\"Firewall\\\"\n      }\n   ],\n   \\\"specCharacteristic\\\": [\n      {\n         \\\"name\\\": \\\"Edge\\\",\n         \\\"description\\\": \\\"This characteristic describes the operating system run by the service\\\",\n         \\\"valueType\\\": \\\"choice\\\",\n         \\\"validFor\\\": {\n            \\\"startDateTime\\\": \\\"2017-08-12T00:00\\\",\n            \\\"endDateTime\\\": \\\"2021-03-07T00:00\\\"\n         },\n         \\\"characteristicValueSpecification\\\": [\n            {\n               \\\"value\\\": \\\"Android KitKat\\\"\n            }\n         ]\n      }\n   ],\n   \\\"serviceSpecRelationship\\\": [\n      {\n         \\\"relationshipType\\\": \\\"composed_of\\\",\n         \\\"id\\\": \\\"65033023ebdb30107ee5302698522849\\\",\n         \\\"validFor\\\": {\n            \\\"startDateTime\\\": \\\"2017-08-25T00:00\\\",\n            \\\"endDateTime\\\": \\\"2021-03-25T00:00\\\"\n         }\n      }\n   ],\n   \\\"@type\\\": \\\"ResourceFacingServiceSpecification\\\"\n}\" \\\n--user 'username':'password'\n```\n\nResponse body.\n\n```\n{\n   \"id\": \"21a7ee64c32310105253716b8d40dd60\",\n   \"name\": \"Firewall Service\",\n   \"description\": \"This service specification describes a firewall service that can be deployed in customer-premises equipment.\",\n   \"validFor\": {\n      \"startDateTime\": \"2017-08-23T00:00\",\n      \"endDateTime\": \"2021-03-25T00:00\"\n   },\n   \"lastUpdate\": \"2020-08-15T00:00\",\n   \"externalSource\": \"ABC-TMF633\",\n   \"resourceSpecification\": [\n      {\n         \"id\": \"af66e551c32f10105252716b7d40dd52\",\n         \"name\": \"Firewall\"\n      }\n   ],\n   \"specCharacteristic\": [\n      {\n         \"name\": \"Edge\",\n         \"description\": \"This characteristic describes the operating system run by the service\",\n         \"valueType\": \"choice\",\n         \"validFor\": {\n            \"startDateTime\": \"2017-08-12T00:00\",\n            \"endDateTime\": \"2021-03-07T00:00\"\n         },\n         \"characteristicValueSpecification\": [\n            {\n               \"value\": \"Android KitKat\"\n            }\n         ]\n      }\n   ],\n   \"serviceSpecRelationship\": [\n      {\n         \"relationshipType\": \"composed_of\",\n         \"id\": \"65033023ebdb30107ee5302698522849\",\n         \"validFor\": {\n            \"startDateTime\": \"2017-08-25T00:00\",\n            \"endDateTime\": \"2021-03-25T00:00\"\n         }\n      }\n   ],\n   \"@type\": \"ResourceFacingServiceSpecification\"\n}\n```\n\n"}}