---
sourceDocument: Yokohama API Reference
sourceDocumentLink: https://www.servicenow.com/docs/r/yokohama/api-reference

 Release :

    - yokohama

ft:locale :

    - en-US

ft:publication_title :

    - Yokohama API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Product Catalog Open API

# Product Catalog Open API {#ariaid-title1}

* Release version: Yokohama
* 
* Updated January 30, 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 133 minutes to read

The Product Catalog Open API provides endpoints to create and
retrieve product catalogs, product offerings, and product specifications.
Use this API to manage product catalog information between external systems and the ServiceNow AI Platform. The Product Catalog Open API is a ServiceNow® implementation of the TM Forum Product Catalog Management API
REST specification. This implementation is based on the [TMF620 Product Catalog Management API REST Specification
Version 4](https://www.tmforum.org/resources/standard/tmf620-product-catalog-management-api-user-guide-v4-1-0/), April 2021.

This API is included in the Product Catalog Advanced application, which is available on the ServiceNow Store and runs in the `sn_tmf_api` namespace.

The calling user must have the sn_prd_pm_adv.catalog_integrator role.  
This API creates and updates data in the following tables.

* Characteristic \[sn_prd_pm_characteristic\]
* Characteristic Option \[sn_prd_pm_characteristic_option\]
* Product Offering \[sn_prd_pm_product_offering\]
* Product Offering Catalog \[sn_prd_pm_product_offering_catalog\]
* Product Offering Characteristic \[sn_prd_pm_product_offering_characteristic\]
* Product Specification \[sn_prd_pm_product_specification\]
* Specification Relationship \[sn_prd_pm_specification_relationship\]
{#product-catalog-open-api__ul_fhn_pjj_hsb}

## Product Catalog Open API - DELETE /sn_tmf_api/catalogmanagement/productOffering/{id} {#ariaid-title2}

Deletes the specified product offering.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productOffering/{id}

### Supported request parameters

{#tmf_prod_cat-DELETE-prodOffer-id__entry__2}

| Name | Description |
|-|-|
| id | Sys_id of the product offering to delete. Data type: String Table: Product Offering \[sn_prd_pm_product_offering\] |
[Table 1. Path parameters]

{#tmf_prod_cat-DELETE-prodOffer-id__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 2. Query parameters]

{#tmf_prod_cat-DELETE-prodOffer-id__entry__10}

| Name | Description |
|-|-|
| None |   |
[Table 3. Request body parameters (XML or JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-DELETE-prodOffer-id__entry__14}{#tmf_prod_cat-DELETE-prodOffer-id__accept-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Supported types: application/json or application/xml. Default: application/json |
[Table 4. Request headers]

{#tmf_prod_cat-DELETE-prodOffer-id__entry__18}

| Header | Description |
|-|-|
| None |   |
[Table 5. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-DELETE-prodOffer-id__table_tmr_dgq_mbc__entry__2}{#tmf_prod_cat-DELETE-prodOffer-id__entry-200-status-code}{#tmf_prod_cat-DELETE-prodOffer-id__entry-400-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
[Table 6. Status codes]

{#tmf_prod_cat-DELETE-prodOffer-id__table_tmr_dgq_mbc}

### Response body parameters (JSON or XML)

{#tmf_prod_cat-DELETE-prodOffer-id__entry__28}

| Name | Description |
|-|-|
| message | A failure or success message about the deletion or archival of the product specification. |
[ ]

### cURL request

The following example deletes the product offering with an ID of d6f8d9995b020210235d85cced81c7eb.

    curl "http://instance.servicenow.com/api/sn_tmf_api/catalogmanagement/productOffering/d6f8d9995b020210235d85cced81c7eb" \ 
    --request DELETE\ 
    --header "Accept:application/json" \ 
    --user 'username':'password'

The response body returns a successful deletion message:

    "The product offering (d6f8d9995b020210235d85cced81c7eb) is successfully deleted"

## Product Catalog Open API - DELETE /sn_tmf_api/catalogmanagement/productOfferingPrice/{id} {#ariaid-title3}

Inactivates, but doesn't delete, a price list line with a specific sys_id.
To set a price list line to an inactive state, this DELETE method updates the end date of the price list line to today's date. A price list line with an end date prior to today's date is also considered inactive. Inactive price
list lines are not retrievable in related GET methods.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productOfferingPrice/{id}

### Supported request parameters

{#tmf_prod_order-DEL-prodoffprice-id__entry__2}

| Name | Description |
|-|-|
| id | Sys_id of the price list line to delete. Table: Price list line \[sn_csm_pricing_price_list_line\] Data type: String |
[Table 7. Path parameters]

{#tmf_prod_order-DEL-prodoffprice-id__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 8. Query parameters]

{#tmf_prod_order-DEL-prodoffprice-id__entry__10}

| Name | Description |
|-|-|
| None |   |
[Table 9. Request body parameters (XML or JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_order-DEL-prodoffprice-id__entry__14}{#tmf_prod_order-DEL-prodoffprice-id__accept-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Supported types: application/json or application/xml. Default: application/json |
[Table 10. Request headers]

{#tmf_prod_order-DEL-prodoffprice-id__entry__18}

| Header | Description |
|-|-|
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 11. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_order-DEL-prodoffprice-id__table_onp_pnw_22c__entry__2}{#tmf_prod_order-DEL-prodoffprice-id__entry-200-status-code}{#tmf_prod_order-DEL-prodoffprice-id__entry-404-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad request. Possible reasons: * Invalid path parameter * Invalid URI {#tmf_prod_order-DEL-prodoffprice-id__ul_qkg_2rv_22c} |
| 404 | Not found. The requested item wasn't found. |
[Table 12. Status codes]

{#tmf_prod_order-DEL-prodoffprice-id__table_onp_pnw_22c}

### Response body parameters (JSON or XML)

{#tmf_prod_order-DEL-prodoffprice-id__entry__30}

| Name | Description |
|-|-|
| message | Status code with a message about the successful or failed inactivation of the price list line. |
[ ]

### cURL request

The following example demonstrates how to successfully inactivate or delete a price list of the given sys_id, 994d...

    curl "http://instance.servicenow.com/api/sn_tmf_api/catalogmanagement/productOfferingPrice/994d5d364f8b5210f899f61d20ce0b7c" \
    --request DELETE\
    --user 'username':'password'

Response. The response returns a 200 status code with details about the successful inactivation.

    Status: 200 OK
    "The price list line (994d5d364f8b5210f899f61d20ce0b7c) is inactive successfully"

## Product Catalog Open API - DELETE /sn_tmf_api/catalogmanagement/productSpecification/{id} {#ariaid-title4}

Deletes or archives the specified product specification.
When calling this DELETE method, a product specification may either be deleted or archived depending on the state it is in:

* A product specification in the draft state is successfully deleted. The response returns a success message.
* A product specification in the archived state can't be deleted. The response returns a message that the specification is already archived.
* A product specification not in the draft state and associated with other product specifications or offerings is archived but not deleted. The response returns a message that the specification is moved from an active state to an archived state.
* A product specification associated with an active product specification or offering cannot be deleted. The response returns an error message.
{#tmf_prod_cat-DELETE-prodSpec-id__ul_rmw_mw4_4bc}

### URL format

Default URL: /sn_tmf_api/catalogmanagement/productSpecification/{id}

### Supported request parameters

{#tmf_prod_cat-DELETE-prodSpec-id__entry__2}

| Name | Description |
|-|-|
| id | Sys_id of the product specification to delete. Data type: String Table: Product Specification \[sn_prd_pm_product_specification\] |
[Table 13. Path parameters]

{#tmf_prod_cat-DELETE-prodSpec-id__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 14. Query parameters]

{#tmf_prod_cat-DELETE-prodSpec-id__entry__10}

| Name | Description |
|-|-|
| None |   |
[Table 15. Request body parameters (XML or JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-DELETE-prodSpec-id__table_u3k_cgq_mbc__entry__2}{#tmf_prod_cat-DELETE-prodSpec-id__accept-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Supported types: application/json or application/xml. Default: application/json |
[Table 16. Request headers]

{#tmf_prod_cat-DELETE-prodSpec-id__table_u3k_cgq_mbc} {#tmf_prod_cat-DELETE-prodSpec-id__entry__18}

| Header | Description |
|-|-|
| None |   |
[Table 17. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-DELETE-prodSpec-id__table_tmr_dgq_mbc__entry__2}{#tmf_prod_cat-DELETE-prodSpec-id__entry-200-status-code}{#tmf_prod_cat-DELETE-prodSpec-id__entry-400-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
[Table 18. Status codes]

{#tmf_prod_cat-DELETE-prodSpec-id__table_tmr_dgq_mbc}

### Response body parameters (JSON or XML)

{#tmf_prod_cat-DELETE-prodSpec-id__entry__28}

| Name | Description |
|-|-|
| message | A failure or success message about the deletion or archival of the product specification. |
[ ]

### cURL request

The following example deletes the product specification with an ID of 8ef57fa05b308210235d85cced81c7d8.

    curl "http://instance.servicenow.com/api/sn_tmf_api/catalogmanagement/productSpecification/8ef57fa05b308210235d85cced81c7d8" \ 
    --request DELETE\ 
    --header "Accept:application/json" \ 
    --user 'username':'password'

The response body returns a success or failure message:

    "The product specification (8ef57fa05b308210235d85cced81c7d8) is successfully deleted"

## Product Catalog Open API - GET /sn_tmf_api/catalogmanagement/catalog {#ariaid-title5}

Retrieves a list of all product offering catalogs.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/catalog

### Supported request parameters

{#tmf_prod_cat-GET-catalog__table_ofr_vgy_fsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 19. Path parameters]

{#tmf_prod_cat-GET-catalog__table_ofr_vgy_fsb} {#tmf_prod_cat-GET-catalog__table_c3q_ylz_gsb__entry__2}

| Name | Description |
|-|-|
| fields | List of fields to return in the response. Invalid fields are ignored. Data type: String Default: All fields returned. |
| limit | Maximum number of records to return. For requests that exceed this number of records, use the offset parameter to paginate record retrieval. Data type: Number Default: 20 Maximum: 100 |
| offset | Starting index at which to begin retrieving records. Use this value to paginate record retrieval. This functionality enables the retrieval of all records, regardless of the number of records, in small manageable chunks. Data type: Number Default: 0 |
[Table 20. Query parameters]

{#tmf_prod_cat-GET-catalog__table_c3q_ylz_gsb} {#tmf_prod_cat-GET-catalog__table_gld_vkz_gsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 21. Request body parameters (JSON)]

{#tmf_prod_cat-GET-catalog__table_gld_vkz_gsb}

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-catalog__table_kqy_wgy_fsb__entry__2}{#tmf_prod_cat-GET-catalog__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 22. Request headers]

{#tmf_prod_cat-GET-catalog__table_kqy_wgy_fsb} {#tmf_prod_cat-GET-catalog__table_nww_xgm_lsb__entry__2}{#tmf_prod_cat-GET-catalog__content-range-row}{#tmf_prod_cat-GET-catalog__content-type-row}{#tmf_prod_cat-GET-catalog__links-pagination-row}{#tmf_prod_cat-GET-catalog__x-total-count-descr}

| Header | Description |
|-|-|
| Content-Range | Range of content returned in a paginated call. For example, if `offset=2` and `limit=3`, the value of the Content-Range header is `items 3-5`. |
| Content-Type | Data format of the response body. Only supports application/json. |
| Link | Contains the following links to navigate through query results. * first * last * next * previous {#tmf_prod_cat-GET-catalog__ul_zzk_sdm_lsb} |
| X-Total-Count | For paginated queries, this header specifies the total number of records available on the server. |
[Table 23. Response headers]

{#tmf_prod_cat-GET-catalog__table_nww_xgm_lsb}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-catalog__table_v1h_tcm_lsb__entry__2}{#tmf_prod_cat-GET-catalog__tmf-get-status-200-p}{#tmf_prod_cat-GET-catalog__tmf-get-status-206-entry}{#tmf_prod_cat-GET-catalog__tmf-get-status-400-entry}{#tmf_prod_cat-GET-catalog__tmf-get-status-404-entry}

| Status code | Description |
|-|-|
| 200 | Request successfully processed. Full resource returned in response (no pagination). |
| 206 | Partial resource returned in response (with pagination). |
| 400 | Bad request. Possible reasons: * Invalid path parameter * Invalid URI {#tmf_prod_cat-GET-catalog__ul_rys_1gy_fsb} |
| 404 | Record not found. No records matching the query parameters are found in the table. |
[Table 24. Status codes]

{#tmf_prod_cat-GET-catalog__table_v1h_tcm_lsb}

### Response body parameters (JSON) {#tmf_prod_cat-GET-catalog__section_g2r_kmz_gsb}

{#tmf_prod_cat-GET-catalog__table_m2z_clz_gsb__entry__2}

| Name | Description |
|-|-|
| description | Description of the product offering catalog. Only returned if the field contains a value. Data type: String |
| id | Sys_id of the product offering catalog. Data type: String Table: Product Offering Catalog \[sn_prd_pm_product_offering_catalog\] |
| lifecycleStatus | Current life cycle status of the price list line. Valid values: * Active * Draft * Inactive Data type: String |
| name | Name of the product offering catalog. Data type: String |
| status | Status of the product offering catalog. Possible value: published Data type: String |
[ ]

{#tmf_prod_cat-GET-catalog__table_m2z_clz_gsb}  

### cURL request

This example retrieves all product offering catalogs.

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

Response body.

    [
      {
        "id": "341f4953b71a9910ff00f203ae11a9bb",
        "name": "Home Internet Plan",
        "lifecycleStatus": "Active",
        "status": "published"
      },
      {
        "id": "69f494792b11525047f3f3e30391bf66",
        "name": "Chemical Processing",
        "lifecycleStatus": "Active",
        "description": " Catalog for Chemical Processing Industry",
        "status": "published"
      }
    ]

## Product Catalog Open API - GET /sn_tmf_api/catalogmanagement/catalog/{id} {#ariaid-title6}

Retrieves a product offering catalog.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/catalog/{id}

### Supported request parameters

{#tmf_prod_cat-GET-catalog-id__table_apt_nkz_gsb__entry__2}

| Name | Description |
|-|-|
| id | Sys_id of the product offering catalog to retrieve. Data type: String Table: Product Offering Catalog \[sn_prd_pm_product_offering_catalog\] |
[Table 25. Path parameters]

{#tmf_prod_cat-GET-catalog-id__table_apt_nkz_gsb} {#tmf_prod_cat-GET-catalog-id__table_l5k_tkz_gsb__entry__2}

| Name | Description |
|-|-|
| fields | List of fields to return in the response. Invalid fields are ignored. Data type: String Default: All fields. |
[Table 26. Query parameters]

{#tmf_prod_cat-GET-catalog-id__table_l5k_tkz_gsb} {#tmf_prod_cat-GET-catalog-id__table_gld_vkz_gsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 27. Request body parameters (JSON)]

{#tmf_prod_cat-GET-catalog-id__table_gld_vkz_gsb}

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-catalog-id__table_kqy_wgy_fsb__entry__2}{#tmf_prod_cat-GET-catalog-id__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 28. Request headers]

{#tmf_prod_cat-GET-catalog-id__table_kqy_wgy_fsb} {#tmf_prod_cat-GET-catalog-id__table_tzy_thy_ksb__entry__2}{#tmf_prod_cat-GET-catalog-id__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 29. Response headers]

{#tmf_prod_cat-GET-catalog-id__table_tzy_thy_ksb}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-catalog-id__table_nxj_ykz_gsb__entry__2}{#tmf_prod_cat-GET-catalog-id__entry-200-status-code}{#tmf_prod_cat-GET-catalog-id__entry-404-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. Could be any of the following reasons: * Invalid path parameter * Invalid URI {#tmf_prod_cat-GET-catalog-id__ul_rys_1gy_fsb} |
| 404 | Not found. The requested item wasn't found. |
[Table 30. Status codes]

{#tmf_prod_cat-GET-catalog-id__table_nxj_ykz_gsb}

### Response body parameters (JSON)

{#tmf_prod_cat-GET-catalog-id__table_m2z_clz_gsb__entry__2}

| Name | Description |
|-|-|
| description | Description of the product offering catalog. Data type: String |
| id | Sys_id of the product offering catalog . Data type: String Table: Product Offering Catalog \[sn_prd_pm_product_offering_catalog\] |
| lifecycleStatus | Current life cycle status of the price list line. Valid values: * Active * Draft * Inactive Data type: String |
| name | Name of the product offering catalog. Data type: String |
[ ]

{#tmf_prod_cat-GET-catalog-id__table_m2z_clz_gsb}  

### cURL request

This example retrieves a product offering catalog for an enterprise mobile plan.

    curl --location --request GET "https://instance.servicenow.com/api/sn_tmf_api/catalogmanagement/catalog/69f494792b11525047f3f3e30391bf66" \
    --user 'username':'password'

Response body.

    {
      "id": "69f494792b11525047f3f3e30391bf66",
      "name": "Chemical Processing",
      "lifecycleStatus": "Active",
      "description": " Catalog for Chemical Processing Industry"
    }

## Product Catalog Open API - GET /sn_tmf_api/catalogmanagement/productOffering {#ariaid-title7}

Retrieves all product offerings or a subset of product offerings, based on specified filter settings.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productOffering

### Supported request parameters {#tmf_prod_cat-GET-prodoffering__section_fcz_2t1_jsb}

{#tmf_prod_cat-GET-prodoffering__table_ofr_vgy_fsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 31. Path parameters]

{#tmf_prod_cat-GET-prodoffering__table_ofr_vgy_fsb} {#tmf_prod_cat-GET-prodoffering__table_pfr_vgy_fsb__entry__2}

| Name | Description |
|-|-|
| fields | List of fields to return in the response. Invalid fields are ignored. Valid fields: * category * channel * description * externalId * id * internalId * internalVersion * lastUpdate * name * productCharacteristic * productOfferingPrice * productOfferingTerm * productSpecification * prodSpecCharValueUse * validFor * version {#tmf_prod_cat-GET-prodoffering__ul_irb_sdg_5tb} Data type: String Default: All fields are returned. |
| limit | Maximum number of records to return. For requests that exceed this number of records, use the offset parameter to paginate record retrieval. Data type: Number Default: 20 Maximum: 100 |
| offset | Starting index at which to begin retrieving records. Use this value to paginate record retrieval. This functionality enables the retrieval of all records, regardless of the number of records, in small manageable chunks. Data type: Number Default: 0 |
| specification | Filter product offerings by product specification sys_id. Only product offerings with the specified product specification sys_id are returned in the response. Data type: String Table: Product Specification \[sn_prd_pm_product_specification\] |
| state | Filter product offerings by state. Only product offerings in the specified state are returned in the response. Valid values: * archived * draft * published * retired {#tmf_prod_cat-GET-prodoffering__ul_ndy_pcb_ccc} Data type: String |
[Table 32. Query parameters]

{#tmf_prod_cat-GET-prodoffering__table_pfr_vgy_fsb} {#tmf_prod_cat-GET-prodoffering__table_gld_vkz_gsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 33. Request body parameters (JSON)]

{#tmf_prod_cat-GET-prodoffering__table_gld_vkz_gsb}

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-prodoffering__table_kqy_wgy_fsb__entry__2}{#tmf_prod_cat-GET-prodoffering__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 34. Request headers]

{#tmf_prod_cat-GET-prodoffering__table_kqy_wgy_fsb} {#tmf_prod_cat-GET-prodoffering__table_ug4_sgm_lsb__entry__2}{#tmf_prod_cat-GET-prodoffering__content-range-row}{#tmf_prod_cat-GET-prodoffering__content-type-row}{#tmf_prod_cat-GET-prodoffering__links-pagination-row}{#tmf_prod_cat-GET-prodoffering__x-total-count-descr}

| Header | Description |
|-|-|
| Content-Range | Range of content returned in a paginated call. For example, if `offset=2` and `limit=3`, the value of the Content-Range header is `items 3-5`. |
| Content-Type | Data format of the response body. Only supports application/json. |
| Link | Contains the following links to navigate through query results. * first * last * next * previous {#tmf_prod_cat-GET-prodoffering__ul_zzk_sdm_lsb} |
| X-Total-Count | For paginated queries, this header specifies the total number of records available on the server. |
[Table 35. Response headers]

{#tmf_prod_cat-GET-prodoffering__table_ug4_sgm_lsb}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-prodoffering__table_qhs_scm_lsb__entry__2}{#tmf_prod_cat-GET-prodoffering__tmf-get-status-200-p}{#tmf_prod_cat-GET-prodoffering__tmf-get-status-206-entry}{#tmf_prod_cat-GET-prodoffering__tmf-get-status-400-entry}{#tmf_prod_cat-GET-prodoffering__tmf-get-status-404-entry}

| Status code | Description |
|-|-|
| 200 | Request successfully processed. Full resource returned in response (no pagination). |
| 206 | Partial resource returned in response (with pagination). |
| 400 | Bad request. Possible reasons: * Invalid path parameter * Invalid URI {#tmf_prod_cat-GET-prodoffering__ul_rys_1gy_fsb} |
| 404 | Record not found. No records matching the query parameters are found in the table. |
[Table 36. Status codes]

{#tmf_prod_cat-GET-prodoffering__table_qhs_scm_lsb}

### Response body parameters {#tmf_prod_cat-GET-prodoffering__section_qqr_2s1_jsb}

{#tmf_prod_cat-GET-prodoffering__table_rqr_2s1_jsb__entry__2}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledGroupProductOffering-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption_numberRelOfferLowerLimit-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption_numberRelOfferUpperLimit-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledProductOffering-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledProductOffering_id-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledProductOffering_name-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledProductOffering-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledProductOffering_bundledProductOfferingOption-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferDefault-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferLowerLimit-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferUpperLimit-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledProductOffering_externalId-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledProductOffering_href-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledProductOffering_id-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledProductOffering_name-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-bundledProductOffering_version-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-displayName-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-isBundle-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-isSellable-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_description-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_name-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_isDefault-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_isMandatory-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_validFor-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_validFor_startDateTime-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_value-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_validFor-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_validFor_startDateTime-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-prodSpecCharValueUse_valueType-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-productOfferingCharacteristic-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_isDefault-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_isMandatory-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_value-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-productOfferingCharacteristic_name-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-productOfferingCharacteristic_valueType-entry}{#tmf_prod_cat-GET-prodoffering__prodCat-offering-status-entry}

| Name | Description |
|-|-|
| bundledGroupProductOffering | Child groups of product offerings. These show hierarchical sub-grouping. Data type: Array of Objects "bundledGroupProductOffering": [ { "bundledGroupProductOfferingOption": {Object}, "bundledProductOffering": [Array],     "id": "String",     "name": "String" } ] |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption | A range of numbers that specifies the lower and upper limits of the number of the associated product offering that can be procured as part of the related bundled product offering. Data type: Object "bundledGroupProductOfferingOption": { "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferLowerLimit | Lower limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferUpperLimit | Upper limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledProductOffering | Child groups of product offerings associated with the bundle. Same format as bundledProductOffering specified below. Data type: Array of Objects |
| bundledGroupProductOffering.​id | Sys_id of the bundled group record. Useful in cases where the parent product offering or group includes multiple groups. Data type: String Table: Product Offering Relationship Group \[sn_prd_pm_product_offering_relationship_group\] |
| bundledGroupProductOffering.​name | Name of the group of child product offerings. Data type: String |
| bundledProductOffering | List of product offerings included in the product offering bundle. The product offering bundle inherits all of the attributes of the included product offerings. Data type: Array of Objects "bundledProductOffering": [ { "bundledProductOfferingOption": {Object},     "externalId": "String", "href": "String",     "id": "String",     "name": "String",     "version": Number } ] |
| bundledProductOffering.​bundledProductOfferingOption | Product bundle options such as the default number of product offerings and any upper and lower product offering procurement constraints. Data type: Object "bundledProductOfferingOption": { "numberRelOfferDefault": "String", "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferDefault | Default number of product offerings that should be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferLowerLimit | Lower limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferUpperLimit | Upper limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​externalId | External ID of the product offering   relationship. For additional information on product offering relationships, see [Create product offering relationships](https://www.servicenow.com/docs/access?context=som-product-config-offering-relationships&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: String |
| bundledProductOffering.​href | Relative link to the associated product offering. Data type: String |
| bundledProductOffering.​id | Sys_id or external ID of the bundled product offering. Data type: String Table: Product Offering \[sn_prd_pm_product_offering\] |
| bundledProductOffering.​name | Name of the product offering bundle. Data type: String |
| bundledProductOffering.​version | Catalog version of the product offering.  Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table.  |
| category | List of categories that the product belongs to. Data type: Array of Objects "category:" [ { "id": "String", "name": "String" } ] |
| category.id | ID of the category. Data type: String |
| category.name | Name of the category. Data type: String |
| channel | Channels to use for selling the product offering. Data type: Array of Objects "channel:" [ { "description": "String", "id": "String", "name": "String" } ] |
| channel.description | Description of the channel. Data type: String |
| channel.id | Sys_id of the channel. Data type: String Table: Distribution Channel \[sn_prd_pm_distribution_channel\] |
| channel.name | Name of the channel. Data type: String |
| description | Description of the product offering. Data type: String |
| displayName | Display name of the product offering. Data type: String |
| externalId | External ID of the product offering. Data type: String Table: In the external_id field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| href | Relative link to the resource record. Data type: String Default: Blank string |
| id | Required. Initial version or external ID of the product offering. Data type: String Table: In the initial_version or external_id field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalId | Sys_id or internal ID of the product offering record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalVersion | Version of the product offering. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| isBundle | Flag that indicates whether the product offering is a bundle. Possible values: * true: Product offering is a bundle. * false: Single product offering. Data type: Boolean Default: false |
| isSellable | Flag that indicates whether the associated product offering can be sold by itself or must be part of a product offering bundle. Possible values: * true: Can be sold separately. * false: Only sold as part of a bundle. Data type: Boolean Default: false |
| lastUpdate | Date the product offering was last updated. Data type: String |
| lifecycleStatus | Current life cycle status of the product offering. Valid values: * Active * Draft * Inactive Data type: String Default: Blank string |
| name | Name of the product offering. Data type: String |
| prodSpecCharValueUse | Product offering characteristics. Data type: Array of Objects "prodSpecCharValueUse": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| prodSpecCharValueUse.​description | Description of the characteristic. Data type: String |
| prodSpecCharValueUse.​name | Name of the characteristic. Data type: String |
| prodSpecCharValueUse.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| prodSpecCharValueUse.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​validFor.​startDateTime | Start date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​valueType | Data type of the prodSpecCharValueUse.productSpecCharacteristicValue.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productCharacteristic | List of product characteristics. Data type: Array of Objects "productCharacteristic": [ { "name": "String", "value": "String" } ] |
| productCharacteristic.​name | Name of the characteristic. Data type: String |
| productCharacteristic.​value | Value of the characteristic. Data type: String |
| productOfferingCharacteristic | Characteristic quality or distinctive feature of a product offering. Characteristics can take on a discrete value that is fixed at design time (catalog authoring), such as Mobile Plan Rank. These characteristics are not generally modifiable at inventory level. For additional information on product offering characteristics, see [Create product characteristics and characteristic options](https://www.servicenow.com/docs/access?context=som-product-config-add-characteristics&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: Array of Objects productOfferingCharacteristic": [  { "characteristicValueSpecification": [Array], "name": "String", "valueType": "String" } ] |
| productOfferingCharacteristic.​characteristicValueSpecification | List of characteristic values associated with the product offering characteristic. Data type: Array of Objects "characteristicValueSpecification": [  { "isDefault": Boolean, "isMandatory": Boolean, "value": "String" }  ] |
| productOfferingCharacteristic.​characteristicValueSpecification.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the associated characteristic. Possible values: * true: Is default value. * false: Isn't the default value. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​isMandatory | Flag that indicates whether the associated characteristic value is mandatory for the associated characteristic. Possible values: * true: Is mandatory. * false: Isn't mandatory. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​value | Number or text assigned to the associated product specification characteristic . For example: "characteristicValueSpecification": [ { "value": "choice 1" }, { "value": "choice 2" } ] Data type: String |
| productOfferingCharacteristic.​name | Name of the associated product offering characteristic. Data type: String |
| productOfferingCharacteristic.​valueType | Data type of the productOfferingCharacteristic.characteristicValueSpecification.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productOfferingPrice | Price information for the product offering. Data type: Array of Objects "productOfferingPrice": [ { "price": {Object}, "priceType": "String" } ] |
| productOfferingPrice.​price | Price information for the product offering. Data type: Object "price": { "taxIncludedAmount": {Object} } |
| productOfferingPrice.​price.taxIncludedAmount | Price information for the product offering. Data type: Object "taxIncludedAmount": { "unit": "String", "value": "String" } |
| productOfferingPrice.price.​taxIncludedAmount.unit | Currency code for the product offering price. Data type: String |
| productOfferingPrice.price.​taxIncludedAmount.value | Price of the product offering including tax. Data type: String |
| productOfferingPrice.​priceType | Type of product offering price, one-time or recurring payment. Possible values: * nonRecurring (one-time) * recurring Data type: String |
| productOfferingTerm | Valid contract term length for the product offering. Data type: String |
| productSpecification | Product specification for the product. Data type: Object "productSpecification": { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } |
| productSpecification.​id | Sys_id of the product specification record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​internalId | Sys_id or internal ID of the product specification record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​name | Name of the product specification. Data type: String Table: In the name field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​version | External version of the product specification. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| status | Status of the product offering. Possible values: * draft * published Data type: String |
| validFor | Date range the product offering is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.​​endDateTime | End date of the product offering. Data type: String Format: YYY-MM-DD |
| validFor.startDateTime | Start date of the product offering. Data type: String Format: YYY-MM-DD |
| version | External version of the product offering. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
[ ]

{#tmf_prod_cat-GET-prodoffering__table_rqr_2s1_jsb}  
The following code example retrieves the first two product offering records.

    curl --location --request GET "https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/productOffering?limit=2" \
    --header "Accept:application/json" \
    --user 'username':'password'

Response body:

    [
      {
        "id": "7b012c4d41ea7910f8771355f12634a4",
        "externalId": "7b012c4d41ea7910f8771355f12634a4",
        "href": "/api/sn_tmf_api/catalogmanagement/productOffering/0361dd9fd0a63110f8770dbf976be16f",
        "name": "Ultimate internet - 1Gbps Plan",
        "displayName": "Ultimate internet - 1Gbps Plan",
        "description": "Ultimate internet - 1Gbps Plan",
        "isSellable": true,
        "lifecycleStatus": "Active",
        "isBundle": false,
        "lastUpdate": "2025-03-08 02:07:04",
        "version": "",
        "internalVersion": "1",
        "internalId": "0361dd9fd0a63110f8770dbf976be16f",
        "validFor": {
          "startDateTime": "2023-11-14",
          "endDateTime": ""
        },
        "productOfferingTerm": "not_applicable",
        "productOfferingPrice": [
          {
            "priceType": "recurring",
            "price": {
              "taxIncludedAmount": {
                "unit": "USD",
                "value": 0
              }
            }
          },
          {
            "priceType": "nonRecurring",
            "price": {
              "taxIncludedAmount": {
                "unit": "USD",
                "value": 0
              }
            }
          }
        ],
        "productOfferingCharacteristic": "",
        "bundledProductOffering": [],
        "bundledGroupProductOffering": [],
        "productSpecification": {},
        "prodSpecCharValueUse": [],
        "channel": "",
        "category": [
          {
            "id": "e6f0159fd0a63110f8770dbf976be18c",
            "name": "Internet"
          }
        ],
        "status": "published"
      },
      {
        "id": "313b917843235210a82ed6085bb8f2c7",
        "externalId": "313b917843235210a82ed6085bb8f2c7",
        "href": "/api/sn_tmf_api/catalogmanagement/productOffering/03c99cb53bf066509b48d69a04e45a11",
        "name": "Internet bundle",
        "displayName": "Internet bundle",
        "description": "Internet bundle",
        "isSellable": false,
        "lifecycleStatus": "Draft",
        "isBundle": true,
        "lastUpdate": "2025-04-09 15:59:09",
        "version": "",
        "internalVersion": "1",
        "internalId": "03c99cb53bf066509b48d69a04e45a11",
        "validFor": {
          "startDateTime": "2028-12-15",
          "endDateTime": "2034-01-14"
        },
        "productOfferingTerm": "not_applicable",
        "productOfferingPrice": [
          {
            "priceType": "recurring",
            "price": {
              "taxIncludedAmount": {
                "unit": "USD",
                "value": 0
              }
            }
          },
          {
            "priceType": "nonRecurring",
            "price": {
              "taxIncludedAmount": {
                "unit": "USD",
                "value": 0
              }
            }
          }
        ],
        "productOfferingCharacteristic": [
          {
            "name": "Connectivity need",
            "valueType": "choice",
            "characteristicValueSpecification": [
              {
                "isMandatory": false,
                "isDefault": false,
                "value": "When in use"
              }
            ]
          },
          {
            "name": "Firewall Security",
            "valueType": "choice",
            "characteristicValueSpecification": [
              {
                "isMandatory": false,
                "isDefault": true,
                "value": "Premium"
              }
            ]
          }
        ],
        "bundledProductOffering": [
          {
            "href": "/api/sn_tmf_api/catalogmanagement/productOffering/57c99cb53bf066509b48d69a04e45a17",
            "id": "0f61dd9fd0a63110f8770dbf976be168",
            "externalId": "EXT-123",
            "name": "Solana Sports streaming channel",
            "version": "1",
            "bundledProductOfferingOption": {
              "numberRelOfferDefault": "1",
              "numberRelOfferLowerLimit": "1",
              "numberRelOfferUpperLimit": "1"
            }
          }
        ],
        "bundledGroupProductOffering": [
          {
            "id": "063b957843235210a82ed6085bb8f205",
            "name": "Streaming Channel",
            "bundledProductOffering": [
              {
                "href": "/api/sn_tmf_api/catalogmanagement/productOffering/5bc99cb53bf066509b48d69a04e45a1a",
                "id": "62619d9fd0a63110f8770dbf976be180",
                "externalId": "EXT-345",
                "name": "Solana Movie streaming channel",
                "version": "1",
                "bundledProductOfferingOption": {
                  "numberRelOfferDefault": "1",
                  "numberRelOfferLowerLimit": "1",
                  "numberRelOfferUpperLimit": "1"
                }
              }
            ],
            "bundledGroupProductOfferingOption": {
              "numberRelOfferLowerLimit": "1",
              "numberRelOfferUpperLimit": "1"
            }
          }
        ],
        "productSpecification": {
          "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
          "name": "SD-WAN Service Package",
          "version": "",
          "internalVersion": "3",
          "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6"
        },
        "prodSpecCharValueUse": [
          {
            "name": "Tenancy",
            "description": "Tenancy",
            "valueType": "choice",
            "validFor": {
              "startDatetime": "2025-02-27 21:04:24"
            },
            "productSpecCharacteristicValue": [
              {
                "value": "Premium (>50 sites)",
                "validFor": {
                  "startDateTime": ""
                },
                "isDefault": false,
                "isMandatory": false
              },
              {
                "value": "Base (10 site)",
                "validFor": {
                  "startDateTime": ""
                },
                "isDefault": false,
                "isMandatory": false
              }
            ],
            "productSpecification": {
              "id": "216663aa53702010cd6dddeeff7b12b5",
              "name": "SD-WAN Controller",
              "version": "",
              "internalVersion": "1",
              "internalId": "216663aa53702010cd6dddeeff7b12b5"
            }
          }
        ],
        "channel": [
          {
            "id": "58ad5522c3702010df4773ce3640ddb2",
            "name": "Agent Assist"
          }
        ],
        "category": [
          {
            "id": "13e305a143b631105029d1529ab8f267",
            "name": "SD-WAN_all_offers"
          }
        ],
        "status": "draft"
      }
    ]

## Product Catalog Open API - GET /sn_tmf_api/catalogmanagement/productOffering/{id} {#ariaid-title8}

Retrieves a product offering.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productOffering/{id}

### Supported request parameters {#tmf_prod_cat-GET-prodoffering-id__section_jjg_dr1_jsb}

{#tmf_prod_cat-GET-prodoffering-id__table_apt_nkz_gsb__entry__2}

| Name | Description |
|-|-|
| id | Initial version of the product offering to retrieve. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
[Table 37. Path parameters]

{#tmf_prod_cat-GET-prodoffering-id__table_apt_nkz_gsb} {#tmf_prod_cat-GET-prodoffering-id__table_pfr_vgy_fsb__entry__2}

| Name | Description |
|-|-|
| fields | List of fields to return in the response. Invalid fields are ignored. Valid fields: * category * channel * description * externalId * id * internalId * internalVersion * lastUpdate * name * productCharacteristic * productOfferingPrice * productOfferingTerm * productSpecification * prodSpecCharValueUse * validFor * version {#tmf_prod_cat-GET-prodoffering-id__ul_irb_sdg_5tb} Data type: String Default: All fields are returned. |
| specification | Filter product offerings by product specification sys_id. Only product offerings with the specified product specification sys_id are returned in the response. Data type: String Table: Product Specification \[sn_prd_pm_product_specification\] |
| state | Filter product offerings by state. Only product offerings in the specified state are returned in the response. Valid values: * archived * draft * published * retired {#tmf_prod_cat-GET-prodoffering-id__ul_ndy_pcb_ccc} Data type: String |
[Table 38. Query parameters]

{#tmf_prod_cat-GET-prodoffering-id__table_pfr_vgy_fsb} {#tmf_prod_cat-GET-prodoffering-id__table_gld_vkz_gsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 39. Request body parameters]

{#tmf_prod_cat-GET-prodoffering-id__table_gld_vkz_gsb}

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-prodoffering-id__table_kqy_wgy_fsb__entry__2}{#tmf_prod_cat-GET-prodoffering-id__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 40. Request headers]

{#tmf_prod_cat-GET-prodoffering-id__table_kqy_wgy_fsb} {#tmf_prod_cat-GET-prodoffering-id__table_tzy_thy_ksb__entry__2}{#tmf_prod_cat-GET-prodoffering-id__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 41. Response headers]

{#tmf_prod_cat-GET-prodoffering-id__table_tzy_thy_ksb}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-prodoffering-id__table_nxj_ykz_gsb__entry__2}{#tmf_prod_cat-GET-prodoffering-id__entry-200-status-code}{#tmf_prod_cat-GET-prodoffering-id__entry-404-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad request. Possible reasons: * Invalid path parameter * Invalid URI {#tmf_prod_cat-GET-prodoffering-id__ul_rys_1gy_fsb} |
| 404 | Not found. The requested item wasn't found. |
[Table 42. Status codes]

{#tmf_prod_cat-GET-prodoffering-id__table_nxj_ykz_gsb}

### Response body parameters {#tmf_prod_cat-GET-prodoffering-id__section_qqr_2s1_jsb}

{#tmf_prod_cat-GET-prodoffering-id__table_rqr_2s1_jsb__entry__2}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledGroupProductOffering-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption_numberRelOfferLowerLimit-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption_numberRelOfferUpperLimit-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledGroupProductOffering_bundledProductOffering-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledGroupProductOffering_bundledProductOffering_id-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledGroupProductOffering_bundledProductOffering_name-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledProductOffering-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledProductOffering_bundledProductOfferingOption-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferDefault-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferLowerLimit-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferUpperLimit-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledProductOffering_externalId-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledProductOffering_href-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledProductOffering_id-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledProductOffering_name-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-bundledProductOffering_version-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-displayName-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-isBundle-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-isSellable-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_description-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_name-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_isDefault-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_isMandatory-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_validFor-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_validFor_startDateTime-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_value-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_validFor-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_validFor_startDateTime-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-prodSpecCharValueUse_valueType-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-productOfferingCharacteristic-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_isDefault-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_isMandatory-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_value-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-productOfferingCharacteristic_name-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-productOfferingCharacteristic_valueType-entry}{#tmf_prod_cat-GET-prodoffering-id__prodCat-offering-status-entry}

| Name | Description |
|-|-|
| bundledGroupProductOffering | Child groups of product offerings. These show hierarchical sub-grouping. Data type: Array of Objects "bundledGroupProductOffering": [ { "bundledGroupProductOfferingOption": {Object}, "bundledProductOffering": [Array],     "id": "String",     "name": "String" } ] |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption | A range of numbers that specifies the lower and upper limits of the number of the associated product offering that can be procured as part of the related bundled product offering. Data type: Object "bundledGroupProductOfferingOption": { "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferLowerLimit | Lower limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferUpperLimit | Upper limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledProductOffering | Child groups of product offerings associated with the bundle. Same format as bundledProductOffering specified below. Data type: Array of Objects |
| bundledGroupProductOffering.​id | Sys_id of the bundled group record. Useful in cases where the parent product offering or group includes multiple groups. Data type: String Table: Product Offering Relationship Group \[sn_prd_pm_product_offering_relationship_group\] |
| bundledGroupProductOffering.​name | Name of the group of child product offerings. Data type: String |
| bundledProductOffering | List of product offerings included in the product offering bundle. The product offering bundle inherits all of the attributes of the included product offerings. Data type: Array of Objects "bundledProductOffering": [ { "bundledProductOfferingOption": {Object},     "externalId": "String", "href": "String",     "id": "String",     "name": "String",     "version": Number } ] |
| bundledProductOffering.​bundledProductOfferingOption | Product bundle options such as the default number of product offerings and any upper and lower product offering procurement constraints. Data type: Object "bundledProductOfferingOption": { "numberRelOfferDefault": "String", "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferDefault | Default number of product offerings that should be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferLowerLimit | Lower limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferUpperLimit | Upper limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​externalId | External ID of the product offering   relationship. For additional information on product offering relationships, see [Create product offering relationships](https://www.servicenow.com/docs/access?context=som-product-config-offering-relationships&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: String |
| bundledProductOffering.​href | Relative link to the associated product offering. Data type: String |
| bundledProductOffering.​id | Sys_id or external ID of the bundled product offering. Data type: String Table: Product Offering \[sn_prd_pm_product_offering\] |
| bundledProductOffering.​name | Name of the product offering bundle. Data type: String |
| bundledProductOffering.​version | Catalog version of the product offering.  Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table.  |
| category | List of categories that the product belongs to. Data type: Array of Objects "category:" [ { "id": "String", "name": "String" } ] |
| category.id | Sys_id of the category. Data type: String |
| category.name | Name of the category. Data type: String |
| channel | Channels to use for selling the product offering. Data type: Array of Objects "channel:" [ { "description": "String", "id": "String", "name": "String" } ] |
| channel.​description | Description of the channel. Data type: String |
| channel.id | Sys_id of the channel. Data type: String Table: Distribution Channel \[sn_prd_pm_distribution_channel\] |
| channel.name | Name of the channel. Data type: String |
| description | Description of the product offering. Data type: String |
| displayName | Display name of the product offering. Data type: String |
| externalId | External ID of the product offering. Data type: String Table: In the external_id field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| href | Relative link to the resource record. Data type: String Default: Blank string |
| id | Required. Initial version or external ID of the product offering. Data type: String Table: In the initial_version or external_id field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalId | Sys_id or internal ID of the product offering record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalVersion | Version of the product offering. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| isBundle | Flag that indicates whether the product offering is a bundle. Possible values: * true: Product offering is a bundle. * false: Single product offering. Data type: Boolean Default: false |
| isSellable | Flag that indicates whether the associated product offering can be sold by itself or must be part of a product offering bundle. Possible values: * true: Can be sold separately. * false: Only sold as part of a bundle. Data type: Boolean Default: false |
| lastUpdate | Date the product offering was last updated. Data type: String Format: YYYY-MM-DD HH-mm-SS |
| lifecycleStatus | Current life cycle status of the product offering. Possible values: * Active * Inactive * Draft Data type: String Default: Blank string |
| name | Name of the product offering. Data type: String |
| prodSpecCharValueUse | Product offering characteristics. Data type: Array of Objects "prodSpecCharValueUse": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| prodSpecCharValueUse.​description | Description of the characteristic. Data type: String |
| prodSpecCharValueUse.​name | Name of the characteristic. Data type: String |
| prodSpecCharValueUse.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| prodSpecCharValueUse.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​validFor.​startDateTime | Start date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​valueType | Data type of the prodSpecCharValueUse.productSpecCharacteristicValue.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productCharacteristic | List of product characteristics. Data type: Array of Objects "productCharacteristic": [ { "name": "String", "value": "String" } ] |
| productCharacteristic.​name | Name of the characteristic. Data type: String |
| productCharacteristic.​value | Value of the characteristic. Data type: String |
| productOfferingCharacteristic | Characteristic quality or distinctive feature of a product offering. Characteristics can take on a discrete value that is fixed at design time (catalog authoring), such as Mobile Plan Rank. These characteristics are not generally modifiable at inventory level. For additional information on product offering characteristics, see [Create product characteristics and characteristic options](https://www.servicenow.com/docs/access?context=som-product-config-add-characteristics&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: Array of Objects productOfferingCharacteristic": [  { "characteristicValueSpecification": [Array], "name": "String", "valueType": "String" } ] |
| productOfferingCharacteristic.​characteristicValueSpecification | List of characteristic values associated with the product offering characteristic. Data type: Array of Objects "characteristicValueSpecification": [  { "isDefault": Boolean, "isMandatory": Boolean, "value": "String" }  ] |
| productOfferingCharacteristic.​characteristicValueSpecification.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the associated characteristic. Possible values: * true: Is default value. * false: Isn't the default value. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​isMandatory | Flag that indicates whether the associated characteristic value is mandatory for the associated characteristic. Possible values: * true: Is mandatory. * false: Isn't mandatory. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​value | Number or text assigned to the associated product specification characteristic . For example: "characteristicValueSpecification": [ { "value": "choice 1" }, { "value": "choice 2" } ] Data type: String |
| productOfferingCharacteristic.​name | Name of the associated product offering characteristic. Data type: String |
| productOfferingCharacteristic.​valueType | Data type of the productOfferingCharacteristic.characteristicValueSpecification.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productOfferingPrice | Price information for the product offering. Data type: Array of Objects "productOfferingPrice": [ { "price": {Object}, "priceType": "String" } ] |
| productOfferingPrice.​price | Price information for the product offering. Data type: Object "price": { "taxIncludedAmount": {Object} } |
| productOfferingPrice.​price.​taxIncludedAmount | Price information for the product offering. Data type: Object "taxIncludedAmount": { "unit": "String", "value": "String" } |
| productOfferingPrice.​price.​taxIncludedAmount.​unit | Currency code for the product offering price. Data type: String |
| productOfferingPrice.​price.​taxIncludedAmount.​value | Price of the product offering including tax. Data type: String |
| productOfferingPrice.​priceType | Identifies if the product offering price is a one-time or recurring payment. Possible values: * nonRecurring * recurring Data type: String |
| productOfferingTerm | Valid contract term length for the product offering. Data type: String |
| productSpecification | Product specification for the product. Data type: Object "productSpecification": { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } |
| productSpecification.​id | Sys_id of the product specification record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​internalId | Sys_id or internal ID of the product specification record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​name | Name of the product specification. Data type: String Table: In the name field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​version | External version of the product specification. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| status | Status of the product offering. Possible values: * draft * published Data type: String |
| validFor | Date range the product offering is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.​endDateTime | End date of the product offering. Data type: String Format: YYYY-MM-DD |
| validFor.​startDateTime | Start date of the product offering. Data type: String Format: YYYY-MM-DD |
| version | External version of the product offering. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
[ ]

{#tmf_prod_cat-GET-prodoffering-id__table_rqr_2s1_jsb}  

### cURL request

This example retrieves the specified product offering.

    curl --location --request GET "https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/productOffering/03c99cb53bf066509b48d69a04e45a11" 
    --user 'username':'password'

Response body:

    {
      "id": "313b917843235210a82ed6085bb8f2c7",
      "externalId": "313b917843235210a82ed6085bb8f2c7",
      "href": "/api/sn_tmf_api/catalogmanagement/productOffering/03c99cb53bf066509b48d69a04e45a11",
      "name": "Internet bundle",
      "displayName": "Internet bundle",
      "description": "Internet bundle",
      "isSellable": false,
      "lifecycleStatus": "Draft",
      "isBundle": true,
      "lastUpdate": "2025-04-09 15:59:09",
      "version": "",
      "internalVersion": "1",
      "internalId": "03c99cb53bf066509b48d69a04e45a11",
      "validFor": {
        "startDateTime": "2028-12-15",
        "endDateTime": "2034-01-14"
      },
      "productOfferingTerm": "not_applicable",
      "productOfferingPrice": [
        {
          "priceType": "recurring",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": 0
            }
          }
        },
        {
          "priceType": "nonRecurring",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": 0
            }
          }
        }
      ],
      "productOfferingCharacteristic": [
        {
          "name": "Connectivity need",
          "valueType": "choice",
          "characteristicValueSpecification": [
            {
              "isMandatory": false,
              "isDefault": false,
              "value": "When in use"
            }
          ]
        },
        {
          "name": "Firewall Security",
          "valueType": "choice",
          "characteristicValueSpecification": [
            {
              "isMandatory": false,
              "isDefault": true,
              "value": "Premium"
            }
          ]
        }
      ],
      "bundledProductOffering": [
        {
          "href": "/api/sn_tmf_api/catalogmanagement/productOffering/57c99cb53bf066509b48d69a04e45a17",
          "id": "0f61dd9fd0a63110f8770dbf976be168",
          "externalId": "EXT-123",
          "name": "Solana Sports streaming channel",
          "version": "1",
          "bundledProductOfferingOption": {
            "numberRelOfferDefault": "1",
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        }
      ],
      "bundledGroupProductOffering": [
        {
          "id": "063b957843235210a82ed6085bb8f205",
          "name": "Streaming Channel",
          "bundledProductOffering": [
            {
              "href": "/api/sn_tmf_api/catalogmanagement/productOffering/5bc99cb53bf066509b48d69a04e45a1a",
              "id": "62619d9fd0a63110f8770dbf976be180",
              "externalId": "EXT-345",
              "name": "Solana Movie streaming channel",
              "version": "1",
              "bundledProductOfferingOption": {
                "numberRelOfferDefault": "1",
                "numberRelOfferLowerLimit": "1",
                "numberRelOfferUpperLimit": "1"
              }
            }
          ],
          "bundledGroupProductOfferingOption": {
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        }
      ],
      "productSpecification": {
        "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
        "name": "SD-WAN Service Package",
        "version": "",
        "internalVersion": "3",
        "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6"
      },
      "prodSpecCharValueUse": [
        {
          "name": "Tenancy",
          "description": "Tenancy",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2025-02-27 21:04:24"
          },
          "productSpecCharacteristicValue": [
            {
              "value": "Premium (>50 sites)",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "Base (10 site)",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            }
          ],
          "productSpecification": {
            "id": "216663aa53702010cd6dddeeff7b12b5",
            "name": "SD-WAN Controller",
            "version": "",
            "internalVersion": "1",
            "internalId": "216663aa53702010cd6dddeeff7b12b5"
          }
        }
      ],
      "channel": [
        {
          "id": "58ad5522c3702010df4773ce3640ddb2",
          "name": "Agent Assist"
        }
      ],
      "category": [
        {
          "id": "13e305a143b631105029d1529ab8f267",
          "name": "SD-WAN_all_offers"
        }
      ],
      "status": "draft"
    }

## Product Catalog Open API - GET /sn_tmf_api/catalogmanagement/productOfferingPrice {#ariaid-title9}

Retrieves all price list line records in the instance.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productOfferingPrice

### Supported request parameters

{#tmf_prod_order-GET-prodOfferPrice__entry__2}

| Name | Description |
|-|-|
| none |   |
[Table 43. Path parameters]

{#tmf_prod_order-GET-prodOfferPrice__id_nzv_ycw_22c__entry__2}

| Name | Description |
|-|-|
| lastUpdate | Filter results by the date that the price line was last updated. Format: YYYY-MM-DD HH:mm:ss Data type: String |
| name | Filter price list lines that belong to the name of a given price list. Table: Price Lists \[sn_csm_pricing_price_list\] Data type: String |
| price.value | Filter results by a specific list price value. Data type: String |
| priceList.id | Filter results to return only a price list with a given sys_id. Table: Price Lists \[sn_csm_pricing_price_list\] Data type: String |
| priceType | Filter results by the pricing method of the product offering. Valid values: * recurring: Lets businesses charge recurring pricing amounts with a specified frequency. * one_time: Supports one-time or recurring add-on charges and fees for a product offering. Data type: String |
| productOffering.​id | Filter the price list line by the product offering's sys_id. Table: Product offering \[sn_prd_pm_product_offering\] Data type: String |
| unitOfMeasure.​id | Filter the price list line by sys_id of the unit of measure. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| validFor.​endDateTime | Filter the price list line by a given end date and time. Format: YYYY-MM-DD HH:mm:ss Data type: String |
| validFor.​startDateTime | Filter price list line by a given start date and time. Format: YYYY-MM-DD HH:mm:ss Data type: String |
[Table 44. Query parameters]

{#tmf_prod_order-GET-prodOfferPrice__id_nzv_ycw_22c} {#tmf_prod_order-GET-prodOfferPrice__entry__26}

| Name | Description |
|-|-|
| None |   |
[Table 45. Request body parameters (XML or JSON)]

### Headers {#tmf_prod_order-GET-prodOfferPrice__section_opp_j5w_22c}

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_order-GET-prodOfferPrice__table_ppp_j5w_22c__entry__2}{#tmf_prod_order-GET-prodOfferPrice__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 46. Request headers]

{#tmf_prod_order-GET-prodOfferPrice__table_ppp_j5w_22c} {#tmf_prod_order-GET-prodOfferPrice__table_qpp_j5w_22c__entry__2}

| Header | Description |
|-|-|
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 47. Response headers]

{#tmf_prod_order-GET-prodOfferPrice__table_qpp_j5w_22c}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_order-GET-prodOfferPrice__table_fj4_nnw_22c__entry__2}{#tmf_prod_order-GET-prodOfferPrice__entry-200-status-code}{#tmf_prod_order-GET-prodOfferPrice__entry-404-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad request. Possible reasons: * Invalid path parameter * Invalid URI {#tmf_prod_order-GET-prodOfferPrice__ul_qkg_2rv_22c} |
| 404 | Not found. The requested item wasn't found. |
[Table 48. Status codes]

{#tmf_prod_order-GET-prodOfferPrice__table_fj4_nnw_22c}

### Response body parameters (JSON or XML)

{#tmf_prod_order-GET-prodOfferPrice__id_m5r_jdw_22c__entry__2}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-type}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-href}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-id}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-isBundle}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-lastUpdate}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-lifeCycleStatus}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-price}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-price.units}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-price.value}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-priceList}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-priceList.id}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-priceList.name}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-priceList.type}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-priceType}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-productOffering}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-productOffering.id}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-productOffering.internalVersion}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-productOffering.name}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-recurringChargePeriodType}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-unitOfMeasure}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-unitOfMeasure.amount}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-unitOfMeasure.id}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-unitOfMeasure.units}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-validFor}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-validFor.endDate}{#tmf_prod_order-GET-prodOfferPrice__prodOfferingPrice-response-validFor.startDate}

| Name | Description |
|-|-|
| @type | Type of price list line. Always a value of `ProductOfferingPrice`. Data type: String |
| href | URL to the price list line record in the instance. Data type: String |
| id | Sys_id of the price list line. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| isBundle | Flag that indicates whether the price list line is part of a single product or a bundle of products. Valid values: * true: Price list line is part of a bundle. * false: Price list line isn't part of a bundle. Data type: Boolean |
| lastUpdate | Date and time that the price list line was last updated. Format: YYYY-MM-DD HH:mm:ss Data type: String |
| lifecycleStatus | Current life cycle status of the price list line. Valid values: * Active * Draft * Inactive Data type: String |
| price | List price details of the price list line. Data type: Object "price": { "units": "String", "value": "String" } |
| price.units | Currency code of the price. For example, `USD` or `EUR`. Table: Currency \[fx_currency\] Data type: String |
| price.value | Value of the price. Data type: String (represented with a number) |
| priceList | Price list information associated with the price list line. Data type: Object "priceList": { "id": "String", "name": "String", "@type": "String" } |
| priceList.id | Sys_id of the price list in the Price List \[sn_csm_pricing_price_list\] table. Data type: String |
| priceList.name | Name of the price list. Data type: String |
| priceList.@type | The type of price list. When sub-classing, this defines the sub-class extensible name. Always has a value of `priceList`. Data type: String |
| priceType | The pricing method of the product offering which is associated with this price list line. Possible values: * recurring: Charge recurring pricing amounts with a specified frequency. The value of recurringChargePeriodType indicates the frequency of the charge. * one_time: One-time or recurring add-on charges and fees for a product offering. Data type: String |
| productOffering | Product offering that is associated with the price list line. Data type: Object "productOffering": { "id": "String", "name": "String", "internalVersion": "String" } |
| productOffering.id | Sys_id of the product offering. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| productOffering.​internalVersion | Internal version number of the product offering. For example, `PRDOF01024`. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| productOffering.​name | Name of the product offering. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| recurringChargePeriodType | The periodicity or frequency of the product offering associated with this price list line. Returns a frequency type if priceType was set to `recurring`, otherwise returns an empty string. Possible values: * annually * monthly Data type: String |
| unitOfMeasure | Details about the unit of measure associated with the price list line. Data type: Object "unitOfMeasure": { "id": "String", "amount": Number, "units": "String" } |
| unitOfMeasure.amount | Amount of the unit of measure. Data type: Number |
| unitOfMeasure.id | Sys_id of the unit of measure. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| unitOfMeasure.​units | Type of the unit of measure associated with the price list line. For example, `year` or `bundle`. Data type: String |
| validFor | The duration of time that the price list line is valid for. Data type: Object "validFor": { "endDate": "String", "startDate": "String" } |
| validFor.endDate | End date and time that the price list line is valid for. Data type: String (glide_date_time) |
| validFor.startDate | Start date and time that the price list line is valid for. Data type: String (glide_date_time) |
[ ]

{#tmf_prod_order-GET-prodOfferPrice__id_m5r_jdw_22c}  

### cURL request

The following example returns all two price list lines that exist on the instance.

    curl "http://instance.servicenow.com/api/sn_tmf_api/ catalogmanagement/productOfferingPrice " \
    --request GET\
    --user 'username':'password'

Response body.

    [
      {
        "id": "2c4628ac7f4f9e50f8994fa63c86653c",
        "name": "new Price list",
        "lastUpdate": "2025-01-08 19:57:28",
        "isBundle": false,
        "lifecycleStatus": "Draft",
        "href": "/api/sn_tmf_api/catalogmanagement/productOfferingPrice/2c4628ac7f4f9e50f8994fa63c86653c",
        "validFor": {
          "startDateTime": "2027-03-22 22:15:58",
          "endDateTime": ""
        },
        "productOffering": {
          "id": "f2c92ac6a5260210f8774c9b4be6ce56",
          "name": "Managed Connectivity Services Supreme Bundle",
          "internalVersion": "1"
        },
        "priceType": "one_time",
        "recurringChargePeriodType": "",
        "unitOfMeasure": {
          "id": "9a7a119953020110286eddeeff7b1238",
          "amount": 1,
          "units": "Month"
        },
        "price": {
          "units": "USD",
          "value": "800"
        },
        "priceList": {
          "id": "d653246c7f4f9e50f8994fa63c86655a",
          "name": "new Price list",
          "@type": "priceList"
        },
        "@type": "ProductOfferingPrice"
      },
      {
        "id": "dfb7ec607f8f9e50f8994fa63c866569",
        "name": "new Price list",
        "lastUpdate": "2025-01-08 19:57:46",
        "isBundle": false,
        "lifecycleStatus": "Draft",
        "href": "/api/sn_tmf_api/catalogmanagement/productOfferingPrice/dfb7ec607f8f9e50f8994fa63c866569",
        "validFor": {
          "startDateTime": "2026-05-28 22:15:58",
          "endDateTime": ""
        },
        "productOffering": {
          "id": "f2c92ac6a5260210f8774c9b4be6ce56",
          "name": "Managed Connectivity Services Supreme Bundle",
          "internalVersion": "1"
        },
        "priceType": "one_time",
        "recurringChargePeriodType": "",
        "unitOfMeasure": {
          "id": "1eaa559953020110286eddeeff7b12c7",
          "amount": 1,
          "units": "Year"
        },
        "price": {
          "units": "USD",
          "value": "800"
        },
        "priceList": {
          "id": "d653246c7f4f9e50f8994fa63c86655a",
          "name": "new Price list",
          "@type": "priceList"
        },
        "@type": "ProductOfferingPrice"
      }
    ]

## Product Catalog Open API - GET /sn_tmf_api/catalogmanagement/productOfferingPrice/{id} {#ariaid-title10}

Retrieve details about a specific price list line.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productOfferingPrice/{id}

### Supported request parameters

{#tmf_prod_cat-GET-prodofferprice-id__entry__2}

| Name | Description |
|-|-|
| id | Required. Sys_id of the price list line to retrieve. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
[Table 49. Path parameters]

{#tmf_prod_cat-GET-prodofferprice-id__id_itn_xcw_22c__entry__2}

| Name | Description |
|-|-|
| lastUpdate | Filter results by the date that the price line was last updated. Format: YYYY-MM-DD HH:mm:ss Data type: String |
| name | Filter price list lines that belong to the name of a given price list. Table: Price Lists \[sn_csm_pricing_price_list\] Data type: String |
| price.value | Filter results by a specific list price value. Data type: String |
| priceList.id | Filter results to return only a price list with a given sys_id. Table: Price Lists \[sn_csm_pricing_price_list\] Data type: String |
| priceType | Filter results by the pricing method of the product offering. Valid values: * recurring: Lets businesses charge recurring pricing amounts with a specified frequency. * one_time: Supports one-time or recurring add-on charges and fees for a product offering. Data type: String |
| productOffering.​id | Filter the price list line by the product offering's sys_id. Table: Product offering \[sn_prd_pm_product_offering\] Data type: String |
| unitOfMeasure.​id | Filter the price list line by sys_id of the unit of measure. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| validFor.​endDateTime | Filter the price list line by a given end date and time. Format: YYYY-MM-DD HH:mm:ss Data type: String |
| validFor.​startDateTime | Filter price list line by a given start date and time. Format: YYYY-MM-DD HH:mm:ss Data type: String |
[Table 50. Query parameters]

{#tmf_prod_cat-GET-prodofferprice-id__id_itn_xcw_22c} {#tmf_prod_cat-GET-prodofferprice-id__entry__26}

| Name | Description |
|-|-|
| None |   |
[Table 51. Request body parameters (XML or JSON)]

### Headers {#tmf_prod_cat-GET-prodofferprice-id__section_ert_35w_22c}

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-prodofferprice-id__table_frt_35w_22c__entry__2}{#tmf_prod_cat-GET-prodofferprice-id__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 52. Request headers]

{#tmf_prod_cat-GET-prodofferprice-id__table_frt_35w_22c} {#tmf_prod_cat-GET-prodofferprice-id__table_grt_35w_22c__entry__2}

| Header | Description |
|-|-|
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 53. Response headers]

{#tmf_prod_cat-GET-prodofferprice-id__table_grt_35w_22c}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-prodofferprice-id__entry__38}{#tmf_prod_cat-GET-prodofferprice-id__entry-200-status-code}{#tmf_prod_cat-GET-prodofferprice-id__entry-404-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad request. Possible reasons: * Invalid path parameter * Invalid URI {#tmf_prod_cat-GET-prodofferprice-id__ul_qkg_2rv_22c} |
| 404 | Not found. The requested item wasn't found. |
[Table 54. Status codes]

### Response body parameters (JSON or XML)

{#tmf_prod_cat-GET-prodofferprice-id__id_ksw_ldw_22c__entry__2}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-type}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-href}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-id}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-isBundle}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-lastUpdate}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-lifeCycleStatus}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-price}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-price.units}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-price.value}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-priceList}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-priceList.id}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-priceList.name}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-priceList.type}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-priceType}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-productOffering}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-productOffering.id}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-productOffering.internalVersion}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-productOffering.name}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-recurringChargePeriodType}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-unitOfMeasure}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-unitOfMeasure.amount}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-unitOfMeasure.id}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-unitOfMeasure.units}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-validFor}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-validFor.endDate}{#tmf_prod_cat-GET-prodofferprice-id__prodOfferingPrice-response-validFor.startDate}

| Name | Description |
|-|-|
| @type | Type of price list line. Always a value of `ProductOfferingPrice`. Data type: String |
| href | URL to the price list line record in the instance. Data type: String |
| id | Sys_id of the price list line. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| isBundle | Flag that indicates whether the price list line is part of a single product or a bundle of products. Valid values: * true: Price list line is part of a bundle. * false: Price list line isn't part of a bundle. Data type: Boolean |
| lastUpdate | Date and time that the price list line was last updated. Format: YYYY-MM-DD HH:mm:ss Data type: String |
| lifecycleStatus | Current life cycle status of the price list line. Valid values: * Active * Draft * Inactive Data type: String |
| price | List price details of the price list line. Data type: Object "price": { "units": "String", "value": "String" } |
| price.units | Currency code of the price. For example, `USD` or `EUR`. Table: Currency \[fx_currency\] Data type: String |
| price.value | Value of the price. Data type: String (represented with a number) |
| priceList | Price list information associated with the price list line. Data type: Object "priceList": { "id": "String", "name": "String", "@type": "String" } |
| priceList.id | Sys_id of the price list in the Price List \[sn_csm_pricing_price_list\] table. Data type: String |
| priceList.name | Name of the price list. Data type: String |
| priceList.@type | The type of price list. When sub-classing, this defines the sub-class extensible name. Always has a value of `priceList`. Data type: String |
| priceType | The pricing method of the product offering which is associated with this price list line. Possible values: * recurring: Charge recurring pricing amounts with a specified frequency. The value of recurringChargePeriodType indicates the frequency of the charge. * one_time: One-time or recurring add-on charges and fees for a product offering. Data type: String |
| productOffering | Product offering that is associated with the price list line. Data type: Object "productOffering": { "id": "String", "name": "String", "internalVersion": "String" } |
| productOffering.id | Sys_id of the product offering. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| productOffering.​internalVersion | Internal version number of the product offering. For example, `PRDOF01024`. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| productOffering.​name | Name of the product offering. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| recurringChargePeriodType | The periodicity or frequency of the product offering associated with this price list line. Returns a frequency type if priceType was set to `recurring`, otherwise returns an empty string. Possible values: * annually * monthly Data type: String |
| unitOfMeasure | Details about the unit of measure associated with the price list line. Data type: Object "unitOfMeasure": { "id": "String", "amount": Number, "units": "String" } |
| unitOfMeasure.amount | Amount of the unit of measure. Data type: Number |
| unitOfMeasure.id | Sys_id of the unit of measure. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| unitOfMeasure.​units | Type of the unit of measure associated with the price list line. For example, `year` or `bundle`. Data type: String |
| validFor | The duration of time that the price list line is valid for. Data type: Object "validFor": { "endDate": "String", "startDate": "String" } |
| validFor.endDate | End date and time that the price list line is valid for. Data type: String (glide_date_time) |
| validFor.startDate | Start date and time that the price list line is valid for. Data type: String (glide_date_time) |
[ ]

{#tmf_prod_cat-GET-prodofferprice-id__id_ksw_ldw_22c}  

### cURL request

The following example returns details of the product offering price with ID dfb7ec60...

    curl "http://instance.servicenow.com/api/sn_tmf_api/catalogmanagement/productOfferingPrice/dfb7ec607f8f9e50f8994fa63c866569" \
    --request GET\
    --user 'username':'password'

Response.

    {
      "id": "dfb7ec607f8f9e50f8994fa63c866569",
      "name": "new Price list",
      "lastUpdate": "2025-01-08 19:57:46",
      "isBundle": false,
      "lifecycleStatus": "Draft",
      "href": "/api/sn_tmf_api/catalogmanagement/productOfferingPrice/dfb7ec607f8f9e50f8994fa63c866569",
      "validFor": {
        "startDateTime": "2026-05-28 22:15:58",
        "endDateTime": ""
      },
      "productOffering": {
        "id": "f2c92ac6a5260210f8774c9b4be6ce56",
        "name": "Managed Connectivity Services Supreme Bundle",
        "internalVersion": "1"
      },
      "priceType": "one_time",
      "recurringChargePeriodType": "",
      "unitOfMeasure": {
        "id": "1eaa559953020110286eddeeff7b12c7",
        "amount": 1,
        "units": "Year"
      },
      "price": {
        "units": "USD",
        "value": "800"
      },
      "priceList": {
        "id": "d653246c7f4f9e50f8994fa63c86655a",
        "name": "new Price list",
        "@type": "priceList"
      },
      "@type": "ProductOfferingPrice"
    }

## Product Catalog Open API - GET /sn_tmf_api/catalogmanagement/productSpecification {#ariaid-title11}

Retrieves all product specification records.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productSpecification

### Supported request parameters {#tmf_prod_cat-GET-prodspec__section_fcz_2t1_jsb}

{#tmf_prod_cat-GET-prodspec__table_ofr_vgy_fsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 55. Path parameters]

{#tmf_prod_cat-GET-prodspec__table_ofr_vgy_fsb} {#tmf_prod_cat-GET-prodspec__table_pfr_vgy_fsb__entry__2}

| Name | Description |
|-|-|
| fields | List of fields to return in the response. Invalid fields are ignored. Valid fields: * description * externalId * id * internalId * internalVersion * lastUpdate * name * productSpecCharacteristic * productSpecificationRelationship * resourceSpecification * serviceSpecification * validFor * version {#tmf_prod_cat-GET-prodspec__ul_n1h_htz_54b} Data type: String Default: All fields are returned. |
| limit | Maximum number of records to return. For requests that exceed this number of records, use the offset parameter to paginate record retrieval. Data type: Number Default: 20 Maximum: 100 |
| offset | Starting index at which to begin retrieving records. Use this value to paginate record retrieval. This functionality enables the retrieval of all records, regardless of the number of records, in small manageable chunks. Data type: Number Default: 0 |
| state | Filter product specifications by state. Only product specifications in the specified state are returned in the response. Accepted values: * archived * draft * published * retired {#tmf_prod_cat-GET-prodspec__ul_ngb_qcb_ccc} Data type: String |
[Table 56. Query parameters]

{#tmf_prod_cat-GET-prodspec__table_pfr_vgy_fsb} {#tmf_prod_cat-GET-prodspec__table_gld_vkz_gsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 57. Request body parameters (JSON)]

{#tmf_prod_cat-GET-prodspec__table_gld_vkz_gsb}

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-prodspec__table_kqy_wgy_fsb__entry__2}{#tmf_prod_cat-GET-prodspec__accept-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Supported types: application/json or application/xml. Default: application/json |
[Table 58. Request headers]

{#tmf_prod_cat-GET-prodspec__table_kqy_wgy_fsb} {#tmf_prod_cat-GET-prodspec__table_pkr_rgm_lsb__entry__2}{#tmf_prod_cat-GET-prodspec__content-range-row}{#tmf_prod_cat-GET-prodspec__content-type-row}{#tmf_prod_cat-GET-prodspec__links-pagination-row}{#tmf_prod_cat-GET-prodspec__x-total-count-descr}

| Header | Description |
|-|-|
| Content-Range | Range of content returned in a paginated call. For example, if `offset=2` and `limit=3`, the value of the Content-Range header is `items 3-5`. |
| Content-Type | Data format of the response body. Only supports application/json. |
| Link | Contains the following links to navigate through query results. * first * last * next * previous {#tmf_prod_cat-GET-prodspec__ul_zzk_sdm_lsb} |
| X-Total-Count | For paginated queries, this header specifies the total number of records available on the server. |
[Table 59. Response headers]

{#tmf_prod_cat-GET-prodspec__table_pkr_rgm_lsb}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-prodspec__table_xss_rcm_lsb__entry__2}{#tmf_prod_cat-GET-prodspec__tmf-get-status-200-p}{#tmf_prod_cat-GET-prodspec__tmf-get-status-206-entry}{#tmf_prod_cat-GET-prodspec__tmf-get-status-400-entry}{#tmf_prod_cat-GET-prodspec__tmf-get-status-404-entry}

| Status code | Description |
|-|-|
| 200 | Request successfully processed. Full resource returned in response (no pagination). |
| 206 | Partial resource returned in response (with pagination). |
| 400 | Bad request. Possible reasons: * Invalid path parameter * Invalid URI {#tmf_prod_cat-GET-prodspec__ul_rys_1gy_fsb} |
| 404 | Record not found. No records matching the query parameters are found in the table. |
[Table 60. Status codes]

{#tmf_prod_cat-GET-prodspec__table_xss_rcm_lsb}

### Response body parameters (JSON) {#tmf_prod_cat-GET-prodspec__section_ymb_ccb_jsb}

{#tmf_prod_cat-GET-prodspec__table_zmb_ccb_jsb__entry__2}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_compatibilityRelationshipType-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_id-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_internalId-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_internalVersion-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_name-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_prodSpecRelationshipOption-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_prodSpecRelationshipOption_numberSpecRelDefault-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_prodSpecRelationshipOption_numberSpecRelLowerLimit-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_prodSpecRelationshipOption_numberSpecRelUpperLimit-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_type-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_validFor-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_validFor_endDateTime-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_validFor_startDateTime-entry}{#tmf_prod_cat-GET-prodspec__productSpecificationRelationship_validFor_version-entry}

| Name | Description |
|-|-|
| description | Description of the specification. Data type: String |
| displayName | Display name for the product specification. Data type: String |
| externalId | External ID of the product specification. Data type: String Table: In the external_id field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| href | Relative link to the resource record. Data type: String Default: Blank string |
| id | Sys_id or external ID of the product specification. Data type: String Table: In the sys_id or external_id field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalId | Sys_id or internal ID of the product specification. Data type: String Table: In the initial_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| isBundle | Flag that indicates whether productSpecification represents a single product or a bundle of products. Possible values: * true: The product specification is a product bundle and contains multiple products. * false: The product specification contains a single product. Data type: Boolean |
| lastUpdate | Date the specification was last updated. Data type: String |
| lifecycleStatus | Current life cycle status of the product specification. Possible values: * Active * Inactive * Draft Data type: String |
| name | Name of the specification. Data type: String |
| productSpecCharacteristic | Product specification characteristic. Data type: Array of Objects "productSpecCharacteristic": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| productSpecCharacteristic.​description | Description of the characteristic. Data type: String |
| productSpecCharacteristic.​name | Name of the characteristic. Data type: String |
| productSpecCharacteristic.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor.​​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| productSpecCharacteristic.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| productSpecCharacteristic.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "startDateTime": "String" } |
| productSpecCharacteristic.​validFor.​startDateTime | Start date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| productSpecCharacteristic.​valueType | Value type of the characteristic, such as choice or email. Data type: String |
| productSpecificationRelationship | This specification's relationships to other product specifications. Data type: Array of Objects "productSpecificationRelationship": [ { "compatibilityRelationshipType": "String", "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "prodSpecRelationshipOption": {Object}, "type": "String", "validFor": {Object}, "version": "String" ] |
| productSpecificationRelationship.​compatibilityRelationshipType | Compatibility relationship type in the product specification expected values. For additional information on compatibility relationships, see . Table: Compatibles \[sn_compt_mgmt_compatibles\] |
| productSpecificationRelationship​.id | Sys_id of the related specification. Data type: String |
| productSpecificationRelationship.​internalId | Sys_id (internal ID) of the product specification relationship. Data type: String |
| productSpecificationRelationship.​internalVersion | Version of the product specification relationship. Data type: String |
| productSpecificationRelationship.​name | Name of the product specification relationship. Data type: String |
| productSpecificationRelationship.​prodSpecRelationshipOption | Cardinality of the product specification relationship. Data type: Object "prodSpecRelationshipOption": { "numberSpecRelDefault": "String", "numberSpecRelLowerLimit": "String", "numberSpecRelUpperLimit": "String" } |
| productSpecificationRelationship.​prodSpecRelationshipOption.​numberSpecRelDefault | Default value of the product specification. Data type: String |
| productSpecificationRelationship.​prodSpecRelationshipOption.​numberSpecRelLowerLimit | Minimum number of orders that can be purchased. Data type: String |
| productSpecificationRelationship.​prodSpecRelationshipOption.​numberSpecRelUpperLimit | Maximum number of orders that can be purchased. Data type: String |
| productSpecificationRelationship.​type | Type of product specification relationship. Data type: String |
| productSpecificationRelationship.​validFor | Date range the product specification relationship is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| productSpecificationRelationship.​validFor.​endDateTime | End date of the relationship. Data type: String |
| productSpecificationRelationship.​validFor.​startDateTime | Start date of the relationship. Data type: String |
| productSpecificationRelationship.​version | Version of the product specification relationship. Data type: String |
| resourceSpecification | List of resource specifications related to this product specification. Data type: Array of Objects "resourceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| resourceSpecification.​id | Sys_id or external ID of the resource specification. Data type: String Table: In the sys_id or external_id field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalId | Initial version (sys_id) of the resource specification record. Data type: String Table: In the initial_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalVersion | Version of the resource specification. Data type: String Table: In the version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​name | Name of the resource specification. Data type: String Table: Resource Specification \[sn_prd_pm_resource_specification\] |
| resourceSpecification.​version | External version of the resource specification. Data type: String Table: In the external_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| serviceSpecification | List of service specifications related to this product specification. Data type: Array of Objects "serviceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| serviceSpecification.​id | Initial version or external ID of the service specification. Data type: String Table: In the sys_id or external_id field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalId | Initial version of the service specification. Data type: String Table: In the initial_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalVersion | Version of the service specification. Data type: String Table: In the version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​name | Name of the service specification. Data type: String Table: Service Specification \[sn_prd_pm_service_specification\] |
| serviceSpecification.​version | External version of the service specification. Data type: String Table: In the external_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| status | Status of the product specification. Possible values: * draft * published Data type: String |
| validFor | Date range the specification is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.​endDateTime | End date of the specification. Data type: String Format: YYYY-MM-DD |
| validFor.​startDateTime | Start date of the specification. Data type: String Format: YYYY-MM-DD |
| version | External version of the product specification. Data type: String Table: In the external_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
[ ]

{#tmf_prod_cat-GET-prodspec__table_zmb_ccb_jsb}  

### cURL request

This example retrieves the first two product specification records.

    curl --location --request GET "https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/productSpecification?limit=2" \
    --header "Accept:application/json" \
    --user 'username':'password'

Response body:

    [
      {
        "id": "0435b48a742e4a10f877468e695efa3c",
        "href": "/api/sn_tmf_api/catalogmanagement/productSpecification/0435b48a742e4a10f877468e695efa3c",
        "name": "Managed PoS PS",
        "displayName": "Managed PoS PS",
        "version": "",
        "internalVersion": "1",
        "internalId": "0435b48a742e4a10f877468e695efa3c",
        "description": "Managed PoS PS",
        "lastUpdate": "2032-09-26 20:07:12",
        "lifecycleStatus": "Active",
        "isBundle": false,
        "validFor": {
          "startDateTime": "2032-09-26",
          "endDateTime": ""
        },
        "serviceSpecification": [],
        "productSpecificationRelationship": [],
        "resourceSpecification": [],
        "productSpecCharacteristic": [
          {
            "productSpecCharacteristicValue": [
              {
                "value": "4",
                "validFor": {
                  "startDateTime": ""
                },
                "isDefault": false,
                "isMandatory": true
              },
              {
                "value": "2",
                "validFor": {
                  "startDateTime": ""
                },
                "isDefault": false,
                "isMandatory": true
              },
              {
                "value": "1",
                "validFor": {
                  "startDateTime": ""
                },
                "isDefault": false,
                "isMandatory": true
              }
            ],
            "name": "Number of POS Terminals",
            "description": "Number of POS Terminals",
            "valueType": "choice",
            "validFor": {
              "startDatetime": "2024-05-31 21:43:14"
            }
          },
          {
            "productSpecCharacteristicValue": [
              {
                "value": "Gold",
                "validFor": {
                  "startDateTime": ""
                },
                "isDefault": false,
                "isMandatory": true
              },
              {
                "value": "Bronze",
                "validFor": {
                  "startDateTime": ""
                },
                "isDefault": false,
                "isMandatory": true
              },
              {
                "value": "Silver",
                "validFor": {
                  "startDateTime": ""
                },
                "isDefault": false,
                "isMandatory": true
              }
            ],
            "name": "Managed Service Level",
            "description": "Managed Service Level",
            "valueType": "choice",
            "validFor": {
              "startDatetime": "2024-05-31 21:15:24"
            }
          }
        ],
        "status": "published"
      },
      {
        "id": "1a0936f840102610f87798b149fd435d",
        "href": "/api/sn_tmf_api/catalogmanagement/productSpecification/1a0936f840102610f87798b149fd435d",
        "name": "Wi-Fi Configuration Setup Service PS",
        "displayName": "Wi-Fi Configuration Setup Service PS",
        "version": "",
        "internalVersion": "1",
        "internalId": "1a0936f840102610f87798b149fd435d",
        "description": "Wi-Fi Configuration Setup Service PS",
        "lastUpdate": "2025-03-13 21:01:14",
        "lifecycleStatus": "Active",
        "isBundle": false,
        "validFor": {
          "startDateTime": "2025-03-12",
          "endDateTime": ""
        },
        "serviceSpecification": [],
        "productSpecificationRelationship": [],
        "resourceSpecification": [],
        "productSpecCharacteristic": [],
        "status": "published"
      }
    ]

## Product Catalog Open API - GET /sn_tmf_api/catalogmanagement/productSpecification/{id} {#ariaid-title12}

Retrieves a specified product specification record.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productSpecification/{id}

### Supported request parameters {#tmf_prod_cat-GET-prodspec-id__section_jjg_dr1_jsb}

{#tmf_prod_cat-GET-prodspec-id__table_apt_nkz_gsb__entry__2}

| Name | Description |
|-|-|
| Id | Sys_id or Initial version of the product specification to retrieve. Data type: String Table: In the sys_id or initial_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
[Table 61. Path parameters]

{#tmf_prod_cat-GET-prodspec-id__table_apt_nkz_gsb} {#tmf_prod_cat-GET-prodspec-id__table_pfr_vgy_fsb__entry__2}

| Name | Description |
|-|-|
| fields | List of fields to return in the response. Invalid fields are ignored. Valid fields: * description * externalId * id * internalId * internalVersion * lastUpdate * name * productSpecCharacteristic * productSpecificationRelationship * resourceSpecification * serviceSpecification * validFor * version {#tmf_prod_cat-GET-prodspec-id__ul_n1h_htz_54b} Data type: String Default: All fields are returned. |
| state | Filter product specifications by state. Only product specifications in the specified state are returned in the response. Accepted values: * archived * draft * published * retired {#tmf_prod_cat-GET-prodspec-id__ul_ngb_qcb_ccc} Data type: String |
[Table 62. Query parameters]

{#tmf_prod_cat-GET-prodspec-id__table_pfr_vgy_fsb} {#tmf_prod_cat-GET-prodspec-id__table_gld_vkz_gsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 63. Request body parameters]

{#tmf_prod_cat-GET-prodspec-id__table_gld_vkz_gsb}

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-prodspec-id__table_kqy_wgy_fsb__entry__2}{#tmf_prod_cat-GET-prodspec-id__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 64. Request headers]

{#tmf_prod_cat-GET-prodspec-id__table_kqy_wgy_fsb} {#tmf_prod_cat-GET-prodspec-id__table_tzy_thy_ksb__entry__2}

| Header | Description |
|-|-|
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 65. Response headers]

{#tmf_prod_cat-GET-prodspec-id__table_tzy_thy_ksb}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-GET-prodspec-id__table_nxj_ykz_gsb__entry__2}{#tmf_prod_cat-GET-prodspec-id__entry-200-status-code}{#tmf_prod_cat-GET-prodspec-id__entry-404-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad request. Possible reasons: * Invalid path parameter * Invalid URI {#tmf_prod_cat-GET-prodspec-id__ul_rys_1gy_fsb} |
| 404 | Not found. The requested item wasn't found. |
[Table 66. Status codes]

{#tmf_prod_cat-GET-prodspec-id__table_nxj_ykz_gsb}

### Response body parameters (JSON) {#tmf_prod_cat-GET-prodspec-id__section_ymb_ccb_jsb}

{#tmf_prod_cat-GET-prodspec-id__table_zmb_ccb_jsb__entry__2}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_compatibilityRelationshipType-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_id-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_internalId-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_internalVersion-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_name-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_prodSpecRelationshipOption-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_prodSpecRelationshipOption_numberSpecRelDefault-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_prodSpecRelationshipOption_numberSpecRelLowerLimit-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_prodSpecRelationshipOption_numberSpecRelUpperLimit-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_type-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_validFor-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_validFor_endDateTime-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_validFor_startDateTime-entry}{#tmf_prod_cat-GET-prodspec-id__productSpecificationRelationship_validFor_version-entry}

| Name | Description |
|-|-|
| description | Description of the specification. Data type: String |
| displayName | Display name for the product specification. Data type: String |
| externalId | External ID of the product specification. Data type: String Table: In the external_id field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| href | Relative link to the resource record. Data type: String Default: Blank string |
| id | Sys_id or external ID of the product specification. Data type: String Table: In the sys_id or external_id field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalId | Sys_id or internal ID of the product specification. Data type: String Table: In the initial_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| isBundle | Flag that indicates whether productSpecification represents a single product or a bundle of products. Valid values: * true: The product specification is a product bundle and contains multiple products. * false: The product specification contains a single product. {#tmf_prod_cat-GET-prodspec-id__ul_rry_rz4_4bc} Data type: Boolean Default: false |
| lastUpdate | Date the product specification was last updated. Data type: String |
| lifecycleStatus | Current life cycle status of the product specification. Valid values: * Active * Draft * Inactive Data type: String Default: Blank string |
| name | Name of the product specification. Data type: String |
| productSpecCharacteristic | Product specification characteristics. Data type: Array of Objects "productSpecCharacteristic": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| productSpecCharacteristic.​description | Description of the characteristic. Data type: String |
| productSpecCharacteristic.​name | Name of the characteristic. Data type: String |
| productSpecCharacteristic.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| productSpecCharacteristic.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| productSpecCharacteristic.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "startDateTime": "String" } |
| productSpecCharacteristic.​validFor.​startDateTime | Start date of the characteristic. Data type: String |
| productSpecCharacteristic.​valueType | Value type of the characteristic, such as choice or email. Data type: String |
| productSpecificationRelationship | This specification's relationships to other product specifications. Data type: Array of Objects "productSpecificationRelationship": [ { "compatibilityRelationshipType": "String", "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "prodSpecRelationshipOption": {Object}, "type": "String", "validFor": {Object}, "version": "String" ] |
| productSpecificationRelationship.​compatibilityRelationshipType | Compatibility relationship type in the product specification expected values. For additional information on compatibility relationships, see . Table: Compatibles \[sn_compt_mgmt_compatibles\] |
| productSpecificationRelationship​.id | Sys_id of the related specification. Data type: String |
| productSpecificationRelationship.​internalId | Sys_id (internal ID) of the product specification relationship. Data type: String |
| productSpecificationRelationship.​internalVersion | Version of the product specification relationship. Data type: String |
| productSpecificationRelationship.​name | Name of the product specification relationship. Data type: String |
| productSpecificationRelationship.​prodSpecRelationshipOption | Cardinality of the product specification relationship. Data type: Object "prodSpecRelationshipOption": { "numberSpecRelDefault": "String", "numberSpecRelLowerLimit": "String", "numberSpecRelUpperLimit": "String" } |
| productSpecificationRelationship.​prodSpecRelationshipOption.​numberSpecRelDefault | Default value of the product specification. Data type: String |
| productSpecificationRelationship.​prodSpecRelationshipOption.​numberSpecRelLowerLimit | Minimum number of orders that can be purchased. Data type: String |
| productSpecificationRelationship.​prodSpecRelationshipOption.​numberSpecRelUpperLimit | Maximum number of orders that can be purchased. Data type: String |
| productSpecificationRelationship.​type | Type of product specification relationship. Data type: String |
| productSpecificationRelationship.​validFor | Date range the product specification relationship is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| productSpecificationRelationship.​validFor.​endDateTime | End date of the relationship. Data type: String |
| productSpecificationRelationship.​validFor.​startDateTime | Start date of the relationship. Data type: String |
| productSpecificationRelationship.​version | Version of the product specification relationship. Data type: String |
| resourceSpecification | List of resource specifications related to this product specification. Data type: Array of Objects "resourceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| resourceSpecification.​id | Sys_id or external ID of the resource specification. Data type: String Table: In the sys_id or external_id field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalId | Initial version (sys_id) of the resource specification record. Data type: String Table: In the initial_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalVersion | Version of the resource specification. Data type: String Table: In the version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​name | Name of the resource specification. Data type: String Table: Resource Specification \[sn_prd_pm_resource_specification\] |
| resourceSpecification.​version | External version of the resource specification. Data type: String Table: In the external_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| serviceSpecification | List of service specifications related to this product specification. Data type: Array of Objects "serviceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| serviceSpecification.​id | Initial version or external ID of the service specification. Data type: String Table: In the sys_id or external_id field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalId | Initial version of the service specification. Data type: String Table: In the initial_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalVersion | Version of the service specification. Data type: String Table: In the version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​name | Name of the service specification. Data type: String Table: Service Specification \[sn_prd_pm_service_specification\] |
| serviceSpecification.​version | External version of the service specification. Data type: String Table: In the external_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| status | Status of the product specification. Possible values: * draft * published Data type: String |
| validFor | Date range that the specification is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.​endDateTime | End date of the specification. Data type: String |
| validFor.​startDateTime | Start date of the specification. Data type: String |
| version | External version of the product specification. Data type: String Table: In the external_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
[ ]

{#tmf_prod_cat-GET-prodspec-id__table_zmb_ccb_jsb}  
This example retrieves the specified product specification record.

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

Response body:

    {
      "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "href": "/api/sn_tmf_api/catalogmanagement/productSpecification/497a39a7c3d312105acc9e62b540dd14",
      "name": "SD-WAN Service Package",
      "displayName": "SD-WAN Service Package v4",
      "version": "",
      "internalVersion": "4",
      "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "description": "SD WAN Service Package",
      "lastUpdate": "2029-04-15 20:05:37",
      "lifecycleStatus": "Active",
      "isBundle": true,
      "validFor": {
        "startDateTime": "2033-04-15",
        "endDateTime": ""
      },
      "serviceSpecification": [],
      "productSpecificationRelationship": [
        {
          "id": "a6514bd3534560102f18ddeeff7b1247",
          "name": "SD-WAN Security",
          "version": "",
          "internalVersion": "2",
          "internalId": "a6514bd3534560102f18ddeeff7b1247",
          "type": "Service",
          "compatibilityRelationshipType": "",
          "validFor": {
            "startDateTime": "2030-09-25",
            "endDateTime": "2035-10-27"
          }
        },
        {
          "id": "39b627aa53702010cd6dddeeff7b1202",
          "name": "SD-WAN Edge Device",
          "version": "",
          "internalVersion": "2",
          "internalId": "39b627aa53702010cd6dddeeff7b1202",
          "type": "Service",
          "compatibilityRelationshipType": "",
          "validFor": {
            "startDateTime": "2030-09-27",
            "endDateTime": "2035-10-27"
          }
        },
        {
          "id": "216663aa53702010cd6dddeeff7b12b5",
          "name": "SD-WAN Controller",
          "version": "",
          "internalVersion": "2",
          "internalId": "216663aa53702010cd6dddeeff7b12b5",
          "type": "Service",
          "compatibilityRelationshipType": "",
          "validFor": {
            "startDateTime": "2029-04-03",
            "endDateTime": ""
          }
        }
      ],
      "resourceSpecification": [],
      "productSpecCharacteristic": [
        {
          "productSpecCharacteristicValue": [
            {
              "value": "0.01",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "0.25",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "0.5",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "1",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            }
          ],
          "name": "Down Time",
          "description": "Down Time",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-12-13 02:36:15"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "1 hr",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "2 hrs",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "4 hrs",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            }
          ],
          "name": "Mean Time to Restore (MTR)",
          "description": "Mean Time to Restore (MTR)",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-12-13 02:39:05"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "1 hr",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "4 hrs",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "2 hrs",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            }
          ],
          "name": "Time to Restore (TTR)",
          "description": "Time to Restore (TTR)",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-12-13 02:37:25"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "99.50",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "99.99",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "99.00",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "99.75",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            }
          ],
          "name": "Up Time",
          "description": "Up time",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-12-13 02:34:30"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "5 Gbps",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "1 Gbps",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "500 Mbps",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "2 Gbps",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            }
          ],
          "name": "Bandwidth",
          "description": "Bandwidth",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-12-13 02:32:11"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "Yes",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "No",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            }
          ],
          "name": "Application Encryption",
          "description": "Application Encryption",
          "valueType": "yes_no",
          "validFor": {
            "startDatetime": "2027-12-13 02:29:08"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "Yes",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            },
            {
              "value": "No",
              "validFor": {
                "startDateTime": ""
              },
              "isDefault": false,
              "isMandatory": false
            }
          ],
          "name": "Application Flow Backup",
          "description": "Application Flow Backup",
          "valueType": "yes_no",
          "validFor": {
            "startDatetime": "2027-12-13 02:30:39"
          }
        }
      ],
      "status": "published"
    }

## Product Catalog Open API - PATCH /sn_tmf_api/catalogmanagement/productOffering/{id} {#ariaid-title13}

Updates the specified product offering.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productOffering/{id}

### Supported request parameters

{#tmf_prod_cat-PATCH-prodOffering-id__entry__2}

| Name | Description |
|-|-|
| id | Sys_id of the product offering to update. Data type: String Table: Product Offering \[sn_prd_pm_product_offering\] |
[Table 67. Path parameters]

{#tmf_prod_cat-PATCH-prodOffering-id__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 68. Query parameters]

{#tmf_prod_cat-PATCH-prodOffering-id__table_vxh_xvf_hsb__entry__2}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledGroupProductOffering-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption_numberRelOfferLowerLimit-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption_numberRelOfferUpperLimit-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledGroupProductOffering_bundledProductOffering-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledGroupProductOffering_bundledProductOffering_id-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledGroupProductOffering_bundledProductOffering_name-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledProductOffering-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledProductOffering_bundledProductOfferingOption-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferDefault-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferLowerLimit-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferUpperLimit-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledProductOffering_id-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledProductOffering_externalId-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledProductOffering_name-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-bundledProductOffering_version-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-displayName-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-isBundle-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-isSellable-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_description-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_isDefault-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_isMandatory-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_validFor-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_validFor_startDateTime-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_value-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_validFor-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_validFor_startDateTime-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_valueType-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-productOfferingCharacteristic-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_isDefault-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_isMandatory-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_value-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-productOfferingCharacteristic_name-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-productOfferingCharacteristic_valueType-entry}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-status-entry}

| Name | Description |
|-|-|
| bundledGroupProductOffering | Child groups of product offerings. These show hierarchical sub-grouping. Data type: Array of Objects "bundledGroupProductOffering": [ { "bundledGroupProductOfferingOption": {Object}, "bundledProductOffering": [Array],     "id": "String",     "name": "String" } ] |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption | A range of numbers that specifies the lower and upper limits of the number of the associated product offering that can be procured as part of the related bundled product offering. Data type: Object "bundledGroupProductOfferingOption": { "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferLowerLimit | Lower limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferUpperLimit | Upper limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledProductOffering | Child groups of product offerings associated with the bundle. Same format as bundledProductOffering specified below. Data type: Array of Objects |
| bundledGroupProductOffering.​id | Sys_id of the bundled group record. Useful in cases where the parent product offering or group includes multiple groups. Data type: String Table: Product Offering Relationship Group \[sn_prd_pm_product_offering_relationship_group\] |
| bundledGroupProductOffering.​name | Name of the group of child product offerings. Data type: String |
| bundledProductOffering | List of product offerings included in the product offering bundle. The product offering bundle inherits all of the attributes of the included product offerings. Data type: Array of Objects "bundledProductOffering": [ { "bundledProductOfferingOption": {Object},     "externalId": "String",     "id": "String",     "name": "String",     "version": Number } ] |
| bundledProductOffering.​bundledProductOfferingOption | Product bundle options such as the default number of product offerings and any upper and lower product offering procurement constraints. Data type: Object "bundledProductOfferingOption": { "numberRelOfferDefault": "String", "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferDefault | Default number of product offerings that should be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferLowerLimit | Lower limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferUpperLimit | Upper limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​id | Sys_id or external ID of the bundled product offering. Data type: String Table: Product Offering \[sn_prd_pm_product_offering\] |
| bundledProductOffering.​externalId | External ID of the product offering   relationship. For additional information on product offering relationships, see [Create product offering relationships](https://www.servicenow.com/docs/access?context=som-product-config-offering-relationships&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: String |
| bundledProductOffering.​name | Name of the product offering bundle. Data type: String |
| bundledProductOffering.​version | Catalog version of the product offering.  Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table.  |
| category | List of categories that the product belongs to. Data type: Array of Objects "category:" [ { "id": "String", "name": "String" } ] Table: Category \[sc_category\] |
| category.id | Required if using the category parameter. ID of the category. Data type: String Table: Category \[sc_category\] |
| category.name | Name of the category. Data type: String Default: Blank string |
| channel | Required. Channels to use for selling the product offering. Data type: Array of Objects "channel:" [ { "description": "String", "id": "String", "name": "String" } ] |
| channel.description | Description of the channel. Data type: String Default: Blank string |
| channel.id | Required. Sys_id of the channel. Data type: String Table: Distribution Channel \[sn_prd_pm_distribution_channel\] |
| channel.name | Name of the channel. Data type: String Default: Blank string |
| description | Required. Description of the product offering. Data type: String |
| displayName | Display name of the product offering. Data type: String |
| externalId | External ID of the product offering. Data type: String Table: In the external_id field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| id | Required. Initial version or external ID of the product offering. Data type: String Table: In the initial_version or external_id field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalId | Sys_id or internal ID of the product offering record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalVersion | Version of the product offering. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| isBundle | Flag that indicates whether the product offering is a bundle. Possible values: * true: Product offering is a bundle. * false: Single product offering. Data type: Boolean Default: false |
| isSellable | Flag that indicates whether the associated product offering can be sold by itself or must be part of a product offering bundle. Possible values: * true: Can be sold separately. * false: Only sold as part of a bundle. Data type: Boolean Default: false |
| lastUpdate | Date the product offering was last updated. Data type: String Format: YYYY-MM-DD HH:mm:SS Default: Blank string |
| lifecycleStatus | Current life cycle status of the product offering. Possible values: * Active * Inactive * Draft Data type: String |
| name | Required. Name of the product offering. Data type: String |
| prodSpecCharValueUse | Product offering characteristics. Data type: Array of Objects "prodSpecCharValueUse": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| prodSpecCharValueUse.​description | Description of the characteristic. Data type: String |
| prodSpecCharValueUse.name | Required. Name of the characteristic. Data type: String |
| prodSpecCharValueUse.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| prodSpecCharValueUse.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​validFor.​startDateTime | Start date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​valueType | Data type of the prodSpecCharValueUse.productSpecCharacteristicValue.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productCharacteristic | List of product characteristics. Data type: Array of Objects "productCharacteristic": [ { "name": "String", "value": "String" } ] |
| productCharacteristic.name | Name of the characteristic. Data type: String Default: Blank string |
| productCharacteristic.value | Value of the characteristic. Data type: String Default: Blank string |
| productOfferingCharacteristic | Characteristic quality or distinctive feature of a product offering. Characteristics can take on a discrete value that is fixed at design time (catalog authoring), such as Mobile Plan Rank. These characteristics are not generally modifiable at inventory level. For additional information on product offering characteristics, see [Create product characteristics and characteristic options](https://www.servicenow.com/docs/access?context=som-product-config-add-characteristics&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: Array of Objects productOfferingCharacteristic": [  { "characteristicValueSpecification": [Array], "name": "String", "valueType": "String" } ] |
| productOfferingCharacteristic.​characteristicValueSpecification | List of characteristic values associated with the product offering characteristic. Data type: Array of Objects "characteristicValueSpecification": [  { "isDefault": Boolean, "isMandatory": Boolean, "value": "String" }  ] |
| productOfferingCharacteristic.​characteristicValueSpecification.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the associated characteristic. Possible values: * true: Is default value. * false: Isn't the default value. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​isMandatory | Flag that indicates whether the associated characteristic value is mandatory for the associated characteristic. Possible values: * true: Is mandatory. * false: Isn't mandatory. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​value | Number or text assigned to the associated product specification characteristic . For example: "characteristicValueSpecification": [ { "value": "choice 1" }, { "value": "choice 2" } ] Data type: String |
| productOfferingCharacteristic.​name | Name of the associated product offering characteristic. Data type: String |
| productOfferingCharacteristic.​valueType | Data type of the productOfferingCharacteristic.characteristicValueSpecification.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productOfferingPrice | Price information for the product offering. Data type: Array of Objects "productOfferingPrice": [ { "price": {Object}, "priceType": "String" } ] |
| productOfferingPrice.price | Price information for the product offering. Data type: Object "price": { "taxIncludedAmount": {Object} } |
| productOfferingPrice.price.taxIncludedAmount | Price information for the product offering. Data type: Object "taxIncludedAmount": { "unit": "String", "value": "String" } |
| productOfferingPrice.price.taxIncludedAmount.unit | Currency code for the product offering price. Data type: String Default: Blank string |
| productOfferingPrice.price.taxIncludedAmount.value | Price of the product offering including tax. Data type: String Default: Blank string |
| productOfferingPrice.priceType | Type of product offering type. Required if using the productOfferingPrice parameter. Valid values: * nonRecurring (one-time) * recurring {#tmf_prod_cat-PATCH-prodOffering-id__ul_g3z_bcj_4bc} Data type: String |
| productOfferingTerm | Valid contract term length for the product offering. Data type: String Default: Blank string |
| productSpecification | Required. Product specification for the product. Data type: Object "productSpecification": { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } |
| productSpecification.id | Required. Sys_id or external ID of the product specification. Data type: String Table: In the sys_id or external_id fields in Product Specification \[sn_prd_pm_product_specification\] |
| productSpecification.​internalId | Sys_id or internal ID of the product specification record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​name | Name of the product specification. Data type: String Table: In the name field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​version | External version of the product specification. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| status | Status of the product offering. Possible values: * draft * published Data type: String |
| validFor | Required. Date range the product offering is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.endDateTime | Required. End date and time of the product offering. Data type: String Format: YYYY-MM-DD |
| validFor.startDateTime | Required. Start date and time of the product offering. Data type: String Format: YYYY-MM-DD |
| version | External version of the product offering. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
[Table 69. Request body parameters]

{#tmf_prod_cat-PATCH-prodOffering-id__table_vxh_xvf_hsb}

### Response body parameters (JSON) {#tmf_prod_cat-PATCH-prodOffering-id__section_cjr_vbj_4bc}

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-PATCH-prodOffering-id__entry__160}{#tmf_prod_cat-PATCH-prodOffering-id__accept-JSON-only-entry-RESTAPI}{#tmf_prod_cat-PATCH-prodOffering-id__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 70. Request headers]

{#tmf_prod_cat-PATCH-prodOffering-id__entry__166}{#tmf_prod_cat-PATCH-prodOffering-id__d2893e189}

| Header | Description |
|-|-|
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 71. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-PATCH-prodOffering-id__entry__170}{#tmf_prod_cat-PATCH-prodOffering-id__entry-200-status-code}{#tmf_prod_cat-PATCH-prodOffering-id__entry-400-status-code}{#tmf_prod_cat-PATCH-prodOffering-id__entry-404-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 404 | Not found. The requested item wasn't found. |
[Table 72. Status codes]

### Response body parameters (JSON or XML)

{#tmf_prod_cat-PATCH-prodOffering-id__table_bts_ybj_4bc__entry__2}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e285}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e298}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e314}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e325}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e336}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e390}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e403}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e428}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e441}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e454}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e467}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e508}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e480}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e521}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e532}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e545}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e622}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e645}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e695}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e708}{#tmf_prod_cat-PATCH-prodOffering-id__prodCat-offering-prodSpecCharValueUse_name-entry}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e733}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e749}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e770}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e792}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e805}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e818}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e832}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e845}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e858}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e892}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e910}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e923}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e946}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e969}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e984}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e996}{#tmf_prod_cat-PATCH-prodOffering-id__d4999e1108}

| Name | Description |
|-|-|
| bundledGroupProductOffering | Child groups of product offerings. These show hierarchical sub-grouping. Data type: Array of Objects "bundledGroupProductOffering": [ { "bundledGroupProductOfferingOption": {Object}, "bundledProductOffering": [Array],     "id": "String",     "name": "String" } ] |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption | A range of numbers that specifies the lower and upper limits of the number of the associated product offering that can be procured as part of the related bundled product offering. Data type: Object "bundledGroupProductOfferingOption": { "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferLowerLimit | Lower limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferUpperLimit | Upper limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledProductOffering | Child groups of product offerings associated with the bundle. Same format as bundledProductOffering specified below. Data type: Array of Objects |
| bundledGroupProductOffering.​id | Sys_id of the bundled group record. Useful in cases where the parent product offering or group includes multiple groups. Data type: String Table: Product Offering Relationship Group \[sn_prd_pm_product_offering_relationship_group\] |
| bundledGroupProductOffering.​name | Name of the group of child product offerings. Data type: String |
| bundledProductOffering | List of product offerings included in the product offering bundle. The product offering bundle inherits all of the attributes of the included product offerings. Data type: Array of Objects "bundledProductOffering": [ { "bundledProductOfferingOption": {Object},     "externalId": "String",     "id": "String",     "name": "String",     "version": Number } ] |
| bundledProductOffering.​bundledProductOfferingOption | Product bundle options such as the default number of product offerings and any upper and lower product offering procurement constraints. Data type: Object "bundledProductOfferingOption": { "numberRelOfferDefault": "String", "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferDefault | Default number of product offerings that should be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferLowerLimit | Lower limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferUpperLimit | Upper limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​id | Sys_id or external ID of the bundled product offering. Data type: String Table: Product Offering \[sn_prd_pm_product_offering\] |
| bundledProductOffering.​externalId | External ID of the product offering   relationship. For additional information on product offering relationships, see [Create product offering relationships](https://www.servicenow.com/docs/access?context=som-product-config-offering-relationships&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: String |
| bundledProductOffering.​name | Name of the product offering bundle. Data type: String |
| bundledProductOffering.​version | Catalog version of the product offering.  Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table.  |
| category | List of categories that the product belongs to. Data type: Array of Objects "category:" [ { "id": "String", "name": "String" } ] |
| category.id | ID of the category. Data type: String |
| category.name | Name of the category. Data type: String |
| channel | Channels to use for selling the product offering. Data type: Array of Objects "channel:" [ { "description": "String", "id": "String", "name": "String" } ] |
| channel.description | Description of the channel. Data type: String |
| channel.id | Sys_id of the channel. Data type: String Table: Distribution Channel \[sn_prd_pm_distribution_channel\] |
| channel.name | Name of the channel. Data type: String |
| description | Description of the product offering. Data type: String |
| displayName | Display name of the product offering. Data type: String |
| externalId | External ID of the product offering. Data type: String Table: In the external_id field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| href | Relative link to the resource record. Data type: String Default: Blank string |
| id | Required. Initial version or external ID of the product offering. Data type: String Table: In the initial_version or external_id field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalId | Sys_id or internal ID of the product offering record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalVersion | Version of the product offering. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| isBundle | Flag that indicates whether the product offering is a bundle. Possible values: * true: Product offering is a bundle. * false: Single product offering. Data type: Boolean Default: false |
| isSellable | Flag that indicates whether the associated product offering can be sold by itself or must be part of a product offering bundle. Possible values: * true: Can be sold separately. * false: Only sold as part of a bundle. Data type: Boolean Default: false |
| lastUpdate | Date the product offering was last updated. Data type: String |
| liftcycleStatus | Current lifecycle status. Accepted values: * Active * Draft * Inactive {#tmf_prod_cat-PATCH-prodOffering-id__ul_lj5_gg4_4bc} Data type: String Default: Blank string |
| name | Name of the product offering. Data type: String |
| prodSpecCharValueUse | Product offering characteristics. Data type: Array of Objects "prodSpecCharValueUse": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| prodSpecCharValueUse.​description | Description of the characteristic. Data type: String |
| prodSpecCharValueUse.​name | Name of the characteristic. Data type: String |
| prodSpecCharValueUse.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| prodSpecCharValueUse.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​validFor.​startDateTime | Start date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​valueType | Data type of the prodSpecCharValueUse.productSpecCharacteristicValue.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productCharacteristic | List of product characteristics. Data type: Array of Objects "productCharacteristic": [ { "name": "String", "value": "String" } ] |
| productCharacteristic.​name | Name of the characteristic. Data type: String |
| productCharacteristic.​value | Value of the characteristic. Data type: String |
| productOfferingCharacteristic | Characteristic quality or distinctive feature of a product offering. Characteristics can take on a discrete value that is fixed at design time (catalog authoring), such as Mobile Plan Rank. These characteristics are not generally modifiable at inventory level. For additional information on product offering characteristics, see [Create product characteristics and characteristic options](https://www.servicenow.com/docs/access?context=som-product-config-add-characteristics&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: Array of Objects productOfferingCharacteristic": [  { "characteristicValueSpecification": [Array], "name": "String", "valueType": "String" } ] |
| productOfferingCharacteristic.​characteristicValueSpecification | List of characteristic values associated with the product offering characteristic. Data type: Array of Objects "characteristicValueSpecification": [  { "isDefault": Boolean, "isMandatory": Boolean, "value": "String" }  ] |
| productOfferingCharacteristic.​characteristicValueSpecification.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the associated characteristic. Possible values: * true: Is default value. * false: Isn't the default value. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​isMandatory | Flag that indicates whether the associated characteristic value is mandatory for the associated characteristic. Possible values: * true: Is mandatory. * false: Isn't mandatory. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​value | Number or text assigned to the associated product specification characteristic . For example: "characteristicValueSpecification": [ { "value": "choice 1" }, { "value": "choice 2" } ] Data type: String |
| productOfferingCharacteristic.​name | Name of the associated product offering characteristic. Data type: String |
| productOfferingCharacteristic.​valueType | Data type of the productOfferingCharacteristic.characteristicValueSpecification.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productOfferingPrice | Price information for the product offering. Data type: Array of Objects "productOfferingPrice": [ { "price": {Object}, "priceType": "String" } ] |
| productOfferingPrice.​price | Price information for the product offering. Data type: Object "price": { "taxIncludedAmount": {Object} } |
| productOfferingPrice.​price.​taxIncludedAmount | Price information for the product offering. Data type: Object "taxIncludedAmount": { "unit": "String", "value": "String" } |
| productOfferingPrice.​price.​taxIncludedAmount.unit | Currency code for the product offering price. Data type: String |
| productOfferingPrice.​price.​taxIncludedAmount.​value | Price of the product offering including tax. Data type: String |
| productOfferingPrice.​priceType | Product offering price type, one-time or recurring payment. Possible values: * nonRecurring (one-time) * recurring {#tmf_prod_cat-PATCH-prodOffering-id__ul_cts_ybj_4bc} Data type: String |
| productOfferingTerm | Valid contract term length for the product offering. Data type: String |
| productSpecification | Product specification for the product. Data type: Object "productSpecification": { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "status": "String", "sys_id": "String", "version": "String" } |
| productSpecification.​id | Sys_id of the product specification record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​internalId | Sys_id or internal ID of the product specification record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​status | Status of the product specification, such as published or draft. Data type: String |
| productSpecification.​sys_id | Sys_id of the product specification. Data type: String Table: Product Specification \[sn_prd_pm_product_specification\] |
| productSpecification.​version | External version of the product specification. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| status | Status of the product offering. Possible values: * draft * published Data type: String |
| validFor | Date range the product offering is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.​endDateTime | End date of the product offering. Data type: String |
| validFor.​startDateTime | Start date of the product offering. Data type: String |
| version | External version of the product offering. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
[ ]

{#tmf_prod_cat-PATCH-prodOffering-id__table_bts_ybj_4bc}  
The following example updates the product offering with the sys_id 313b917843235210a82ed6085bb8f2c7 with information provided in the request body.

    curl "http://instance.servicenow.com/api/sn_tmf_api/catalogmanagement/productOffering/313b917843235210a82ed6085bb8f2c7" \ 
    --request PATCH\ 
    --header "Accept:application/json" \ 
    --user 'username':'password'
    --data '{
      "id": "313b917843235210a82ed6085bb8f2c7",
      "name": "Internet bundle",
      "displayName": "Internet bundle",
      "description": "Internet bundle",
      "isSellable": false,
      "lifecycleStatus": "Draft",
      "isBundle": true,
      "lastUpdate": "2025-02-05 06:39:45",
      "version": "",
      "internalVersion": "1",
      "internalId": "313b917843235210a82ed6085bb8f2c7",
      "validFor": {
        "startDateTime": "2028-12-15",
        "endDateTime": "2034-01-14"
      },
      "productOfferingTerm": "not_applicable",
      "productOfferingPrice": [
        {
          "priceType": "recurring",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": "0"
            }
          }
        },
        {
          "priceType": "nonRecurring",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": "0"
            }
          }
        }
      ],
      "productOfferingCharacteristic": [
        {
          "name": "Firewall Security",
          "valueType": "choice",
          "characteristicValueSpecification": [
            {
              "value": "Premium",
              "isMandatory": false,
              "isDefault": true
            }
          ]
        },
        {
          "name": "Connectivity need",
          "valueType": "choice",
          "characteristicValueSpecification": [
            {
              "value": "When in use",
              "isMandatory": false,
              "isDefault": false
            }
          ]
        }
      ],
      "bundledProductOffering": [
        {
         
          "id": "0f61dd9fd0a63110f8770dbf976be168",
          "name": "Solana Sports streaming channel",
          "version": "1",
          "externalId": "EXT-123",

          "bundledProductOfferingOption": {
            "numberRelOfferDefault": "1",
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        }
      ],
      "bundledGroupProductOffering": [
        {
          "id": "063b957843235210a82ed6085bb8f205",
          "name": "Streaming Channel",
          "bundledProductOffering": [
            {
              "id": "62619d9fd0a63110f8770dbf976be180",
              "name": "Solana Movie streaming channel",
              "version": "1",
              "externalId": "EXT-123",
              "bundledProductOfferingOption": {
                "numberRelOfferDefault": "1",
                "numberRelOfferLowerLimit": "1",
                "numberRelOfferUpperLimit": "1"
              }
            }
          ],
          "bundledGroupProductOfferingOption": {
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        }
      ],
      "productSpecification": {
        "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
        "name": "SD-WAN Service Package",
        "version": "",
        "internalVersion": "3",
        "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6"
      },
      "prodSpecCharValueUse": [
        {
          "name": "Tenancy",
          "description": "Tenancy",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2024-12-18 21:04:24"
          },
          "productSpecCharacteristicValue": [
            {
              "value": "Premium (>50 sites)",
              "isDefault": false,
              "isMandatory": false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Base (10 site)",
              "isDefault": false,
              "isMandatory": false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "productSpecification": {
            "id": "216663aa53702010cd6dddeeff7b12b5",
            "name": "SD-WAN Controller",
            "version": "",
            "internalVersion": "1",
            "internalId": "216663aa53702010cd6dddeeff7b12b5"
          }
        }
      ],
      "channel": [
        {
          "id": "58ad5522c3702010df4773ce3640ddb2",
          "name": "Agent Assist"
        }
      ],
      "category": [
        {
          "id": "13e305a143b631105029d1529ab8f267",
          "name": "SD-WAN_all_offers"
        }
      ],
      "status": "draft"
    }'

Response body:

    {
      "id": "313b917843235210a82ed6085bb8f2c7",
      "href": "/api/sn_tmf_api/catalogmanagement/productOffering/313b917843235210a82ed6085bb8f2c7",
     "name": "Internet",
      "displayName": "Internet",
      "description": "Internet bundle",
      "isSellable": false,
      "lifecycleStatus": "Draft",
      "isBundle": true,
      "lastUpdate": "2025-02-05 06:39:45",
      "version": "",
      "internalVersion": "1",
      "internalId": "313b917843235210a82ed6085bb8f2c7",
      "validFor": {
        "startDateTime": "2028-12-15",
        "endDateTime": "2034-01-14"
      },
      "productOfferingTerm": "not_applicable",
      "productOfferingPrice": [
        {
          "priceType": "recurring",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": "0"
            }
          }
        },
        {
          "priceType": "nonRecurring",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": "0"
            }
          }
        }
      ],
      "productOfferingCharacteristic": [
        {
          "name": "Firewall Security",
          "valueType": "choice",
          "characteristicValueSpecification": [
            {
              "value": "Premium",
              "isMandatory": false,
              "isDefault": true
            }
          ]
        },
        {
          "name": "Connectivity need",
          "valueType": "choice",
          "characteristicValueSpecification": [
            {
              "value": "When in use",
              "isMandatory": false,
              "isDefault": false
            }
          ]
        }
      ],
      "bundledProductOffering": [
        {
                "id": "0f61dd9fd0a63110f8770dbf976be168",
          "name": "Solana Sports streaming channel",
          "version": "1",
          "externalId": "EXT-123",
          "bundledProductOfferingOption": {
            "numberRelOfferDefault": "1",
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        },
        {
          "id": "0f61dd9fd0a63110f8770dbf976be16c",
          "name": "Solana TV shows streaming channel",
          "version": "1",
          "externalId": "EXT-456",

          "bundledProductOfferingOption": {
            "numberRelOfferDefault": "1",
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        }
      ],
      "bundledGroupProductOffering": [
        {
          "id": "063b957843235210a82ed6085bb8f205",
          "name": "Streaming Channel",
          "bundledProductOffering": [
            {
              
              "name": "Internet",
              "version": "1",
              "externalId": "EXT-678",
              "bundledProductOfferingOption": {
                "numberRelOfferDefault": "1",
                "numberRelOfferLowerLimit": "1",
                "numberRelOfferUpperLimit": "1"
              }
            }
          ],
          "bundledGroupProductOfferingOption": {
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "3"
          }
        },
        {
          "id": "313b917843235210a82ed6085bb8f2c7",
          "name": "Streaming Channel",
          "bundledProductOffering": [
            {
              "id": "1161a4f8436b1210a82ed6085bb8f216",
              "name": "Internet",
              "version": "1",
              "externalId": "EXT-910",
              "bundledProductOfferingOption": {
                "numberRelOfferDefault": "1",
                "numberRelOfferLowerLimit": "1",
                "numberRelOfferUpperLimit": "1"
              }
            }
          ],
          "bundledGroupProductOfferingOption": {
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        }
      ],
      "productSpecification": {
        "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
        "name": "SD-WAN Service Package",
        "version": "",
        "internalVersion": "3",
        "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6"
      },
      "prodSpecCharValueUse": [
        {
          "name": "Tenancy",
          "description": "Tenancy",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2024-12-18 21:04:24"
          },
          "productSpecCharacteristicValue": [
            {
              "value": "Premium (>50 sites)",
              "isDefault": false,
              "isMandatory": false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Advance (50 site)",
              "isDefault": false,
              "isMandatory": false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Base (10 site)",
              "isDefault": false,
              "isMandatory": false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "productSpecification": {
            "id": "216663aa53702010cd6dddeeff7b12b5",
            "name": "SD-WAN Controller",
            "version": "",
            "internalVersion": "1",
            "internalId": "216663aa53702010cd6dddeeff7b12b5"
          }
        }
      ],
      "channel": [
        {
          "id": "58ad5522c3702010df4773ce3640ddb2",
          "name": "Agent Assist"
        }
      ],
      "category": [
        {
          "id": "13e305a143b631105029d1529ab8f267",
          "name": "SD-WAN_all_offers"
        }
      ],
      "status": "draft"
    }

## Product Catalog Open API - PATCH /sn_tmf_api/catalogmanagement/productOfferingPrice/{id} {#ariaid-title14}

Updates a price list line record with a given sys_id in the Price list line \[sn_csm_pricing_price_list_line\] table.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productOfferingPrice/{id}

### Supported request parameters

{#tmf_prod_order-PATCH-prodoffprce-id__entry__2}

| Name | Description |
|-|-|
| id | Required. Sys_id of the price list line to retrieve. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
[Table 73. Path parameters]

{#tmf_prod_order-PATCH-prodoffprce-id__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 74. Query parameters]

{#tmf_prod_order-PATCH-prodoffprce-id__id_abw_fvw_22c__entry__2}

| Name | Description |
|-|-|
| @type | Required. Type of price list line. Always a value of `ProductOfferingPrice`. Data type: String |
| externalId | The external ID of the price list line. Data type: String |
| isBundle | Flag that indicates whether the price list line is part of a single product or a bundle of products. Valid values: * true: Price list line is part of a bundle. * false: Price list line isn't part of a bundle. Data type: Boolean Default: false |
| lastUpdate | Required. Date that the price line was last updated. Format: YYYY-MM-DD Data type: String |
| lifeCycleStatus | Required. Current life cycle status of the product list line. Valid values: * active * draft * inactive Data type: String Default: draft |
| name | Required. Name to give the price list line. Data type: String |
| price | Required. List price details of the price list line. Data type: Object "price": { "unit": "String", "value": "String" } |
| price.unit | Required. Currency code of the price list line. For example, `USD` or `EUR`. Table: Currency \[fx_currency\] table. Data type: String |
| price.value | Required. Value of the price. Data type: String (represented with a number. For example, `"800"`.) |
| priceList | Required. Price list information associated with the price list line. Data type: Object "priceList": { "id": "String", "name": "String", "@type": "String" } |
| priceList.id | Required. Sys_id of the price list line. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| priceList.name | Name of the price list line. Data type: String |
| priceList.@type | The type of price list line. When sub-classing, this defines the sub-class extensible name. Value is always `priceList`. Data type: String |
| priceType | Required. Filter the price list line by the pricing method of the product offering. Valid values: * recurring: Charge recurring pricing amounts with a specified frequency. Frequency is set in the recurringChargePeriodType parameter. * one_time: Supports one-time or recurring add-on charges and fees for a product offering. Data type: String Default: recurring |
| productOffering | Required. Product offering of the price list line. Data type: Object "productOffering": { "id": "String", "name": "String", "internalVersion": "String" } |
| productOffering.​id | Required. Sys_id of the product offering. Table: Product offering \[sn_prd_pm_product_offering\] Data type: String |
| productOffering.​internalVersion | Internal version number of the product offering. Data type: String (represented with a number. For example, `"1"`.) |
| productOffering.​name | Name of the product offering. Data type: String |
| recurringChargePeriodType | Required if priceType is recurring. Commitment terms that are selected when the product offering was created. Valid values: * annually * monthly Data type: String |
| unitOfMeasure | Required. Details about the unit of measure associated with the price list line. Data type: Object "unitOfMeasure": { "id": "String", "amount": Number, "units": "String" } |
| unitOfMeasure.​amount | Amount of the unit of measure. Data type: Number |
| unitOfMeasure.​id | Required. Sys_id of the unit of measure in the Price Line List table. Table: Price List Line \[sn_csm_pricing_price_list_line\] Data type: String |
| unitOfMeasure.​units | Type of the unit of measure associated with the price list line. For example, `each` or `bundle`. Data type: String |
| validFor | Required. The duration of time that the price list line is valid for. Data type: Object "validFor": { "endDate": "String", "startDate": "String" } |
| validFor.endDate | End date that the price list line is valid for. Data type: String (glide_date_time) |
| validFor.endDateTime | End date and time that the price list line is valid for. Format: YYYY-MM-DD HH:mm:ss Data type: String (glide_date) |
| validFor.startDate | Start date that the price list line is valid for. Data type: String (glide_date_time) |
| validFor.startDateTime | Start date and time that the price list line is valid for. Format: YYYY-MM-DD HH:mm:ss Data type: String (glide_date) |
[Table 75. Request body parameters (XML or JSON)]

{#tmf_prod_order-PATCH-prodoffprce-id__id_abw_fvw_22c}

### Headers {#tmf_prod_order-PATCH-prodoffprce-id__section_q1h_tvw_22c}

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_order-PATCH-prodoffprce-id__table_r1h_tvw_22c__entry__2}{#tmf_prod_order-PATCH-prodoffprce-id__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 76. Request headers]

{#tmf_prod_order-PATCH-prodoffprce-id__table_r1h_tvw_22c} {#tmf_prod_order-PATCH-prodoffprce-id__table_s1h_tvw_22c__entry__2}

| Header | Description |
|-|-|
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 77. Response headers]

{#tmf_prod_order-PATCH-prodoffprce-id__table_s1h_tvw_22c}

### Status codes {#tmf_prod_order-PATCH-prodoffprce-id__section_t1h_tvw_22c}

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_order-PATCH-prodoffprce-id__table_onp_pnw_22c__entry__2}{#tmf_prod_order-PATCH-prodoffprce-id__entry-200-status-code}{#tmf_prod_order-PATCH-prodoffprce-id__entry-404-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad request. Possible reasons: * Invalid path parameter * Invalid URI {#tmf_prod_order-PATCH-prodoffprce-id__ul_qkg_2rv_22c} |
| 404 | Not found. The requested item wasn't found. |
[Table 78. Status codes]

{#tmf_prod_order-PATCH-prodoffprce-id__table_onp_pnw_22c}

### Response body parameters (JSON or XML) {#tmf_prod_order-PATCH-prodoffprce-id__section_q3r_rvw_22c}

{#tmf_prod_order-PATCH-prodoffprce-id__table_r3r_rvw_22c__entry__2}

| Name | Description |
|-|-|
| id | Sys_id of the price list line. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| href | URL to the price list line record in the instance. Data type: String |
| lastUpdate | Date and time that the price list line was last updated. Format: YYYY-MM-DD HH:mm:ss Data type: String |
| validFor | The duration of time that the price list line is valid for. Data type: Object "validFor": { "endDate": "String", "startDate": "String" } |
| validFor.endDate | End date and time that the price list line is valid for. Data type: String (glide_date_time) |
| validFor.startDate | Start date and time that the price list line is valid for. Data type: String (glide_date_time) |
| isBundle | Flag that indicates whether the price list line is part of a single product or a bundle of products. Valid values: * true: Price list line is part of a bundle. * false: Price list line isn't part of a bundle. Data type: Boolean |
| lifecycleStatus | Current life cycle status of the price list line. Valid values: * Active * Draft * Inactive Data type: String |
| productOffering | Product offering that is associated with the price list line. Data type: Object "productOffering": { "id": "String", "name": "String", "internalVersion": "String" } |
| productOffering.id | Sys_id of the product offering. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| productOffering.​internalVersion | Internal version number of the product offering. For example, `PRDOF01024`. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| productOffering.​name | Name of the product offering. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| priceType | The pricing method of the product offering which is associated with this price list line. Possible values: * recurring: Charge recurring pricing amounts with a specified frequency. The value of recurringChargePeriodType indicates the frequency of the charge. * one_time: One-time or recurring add-on charges and fees for a product offering. Data type: String |
| recurringChargePeriodType | The periodicity or frequency of the product offering associated with this price list line. Returns a frequency type if priceType was set to `recurring`, otherwise returns an empty string. Possible values: * annually * monthly Data type: String |
| unitOfMeasure | Details about the unit of measure associated with the price list line. Data type: Object "unitOfMeasure": { "id": "String", "amount": Number, "units": "String" } |
| unitOfMeasure.amount | Amount of the unit of measure. Data type: Number |
| unitOfMeasure.id | Sys_id of the unit of measure. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| unitOfMeasure.​units | Type of the unit of measure associated with the price list line. For example, `year` or `bundle`. Data type: String |
| price | List price details of the price list line. Data type: Object "price": { "units": "String", "value": "String" } |
| price.units | Currency code of the price. For example, `USD` or `EUR`. Table: Currency \[fx_currency\] Data type: String |
| price.value | Value of the price. Data type: String (represented with a number) |
| priceList | Price list information associated with the price list line. Data type: Object "priceList": { "id": "String", "name": "String", "@type": "String" } |
| priceList.id | Sys_id of the price list in the Price List \[sn_csm_pricing_price_list\] table. Data type: String |
| priceList.name | Name of the price list. Data type: String |
| priceList.@type | The type of price list. When sub-classing, this defines the sub-class extensible name. Always has a value of `priceList`. Data type: String |
| @type | Always a value of `ProductOfferingPrice`. When sub-classing, this defines the sub-class extensible name. Data type: String |
| state | The state of the price list which is associated with this price list line. Data type: String |
| externalId | The external ID of this price list line. Data type: String |
[ ]

{#tmf_prod_order-PATCH-prodoffprce-id__table_r3r_rvw_22c}  

### cURL request

The following example updates the dates of when the product offering price with ID 3ddd0... is valid for.

    curl "http://instance.servicenow.com/api/sn_tmf_api/catalogmanagement/productOfferingPrice/994d5d364f8b5210f899f61d20ce0b7c" \
    --request patch\
    --user 'username':'password'
    --data {
      "validFor": {
        "endDateTime": "2024-06-25 15:15:58"
      }
    }

Response body:

    {
      "validFor": {
        "endDateTime": "2024-06-25 15:15:58"
      },
      "id": "994d5d364f8b5210f899f61d20ce0b7c",
      "name": "new Price list",
      "lastUpdate": "2025-01-16 00:15:32",
      "href": "/api/sn_tmf_api/catalogmanagement/productOfferingPrice/994d5d364f8b5210f899f61d20ce0b7c",
      "lifecycleStatus": "Draft"
    }

## Product Catalog Open API - PATCH /sn_tmf_api/catalogmanagement/productSpecification/{id} {#ariaid-title15}

Updates the specified product specification.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productSpecification/{id}

### Supported request parameters

{#tmf_prod_order-PATCH-productSpec-id__entry__2}

| Name | Description |
|-|-|
| id | Sys_id of the product offering to update. Data type: String Table: Product Specification \[sn_prd_pm_product_specification\] |
[Table 79. Path parameters]

{#tmf_prod_order-PATCH-productSpec-id__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 80. Query parameters]

{#tmf_prod_order-PATCH-productSpec-id__entry__10}

| Name | Description |
|-|-|
| description | Required. Description of the specification. Data type: String |
| externalId | Required. External ID of the product specification. Data type: String Table: In the external_id field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| id | Sys_id or external ID of the product specification. Data type: String Table: In the sys_id or external_id field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalId | Required. Sys_id or internal ID of the product specification. Data type: String Table: In the initial_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| isBundle | Flag that indicates whether productSpecification represents a single product or a bundle of products. Valid values: * true: The product specification is a product bundle and contains multiple products. * false: The product specification contains a single product. {#tmf_prod_order-PATCH-productSpec-id__ul_rry_rz4_4bc} Data type: Boolean Default: false |
| lastUpdate | Date the specification was last updated. Data type: String Default: Blank string |
| name | Required. Name of the specification. Data type: String |
| productSpecCharacteristic | Specification characteristic. Data type: Array of Objects "productSpecCharacteristic": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| productSpecCharacteristic.​description | Description of the characteristic. Data type: String |
| productSpecCharacteristic.​name | Required. Name of the characteristic. Data type: String |
| productSpecCharacteristic.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| productSpecCharacteristic.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| productSpecCharacteristic.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| productSpecCharacteristic.​validFor.​endDateTime | End date and time of the characteristic. Format: YYYY-MM-DD HH:mm:SS. For example, `2025-01-31 09:35:43`. Data type: String |
| productSpecCharacteristic.​validFor.​startDateTime | Start date and time of the characteristic. Format: YYYY-MM-DD HH:mm:SS. For example, `2025-01-31 09:35:43`. Data type: String |
| productSpecCharacteristic.​valueType | Value type of the characteristic, such as choice or email. Data type: String |
| productSpecificationRelationship | Details of the specification's relationships to other product specifications. Data type: Array of Objects "productSpecificationRelationship": [ { "id": "String", "type": "String", "validFor": {Object} } ] |
| productSpecificationRelationship.​id | ID of the related specification. Data type: String |
| productSpecificationRelationship.​type | Required if using the productSpecificationRelationship parameter. Type of relationship. Valid values: * bundles * composed_of {#tmf_prod_order-PATCH-productSpec-id__ul_kjr_xnx_fsb} Data type: String |
| productSpecificationRelationship.​validFor | Date range the relationship is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| productSpecificationRelationship.​validFor.​endDateTime | End date of the relationship. Format: YYYY-MM-DD HH:mm:SS. For example, `2025-01-31 09:35:43`. Data type: String |
| productSpecificationRelationship.​validFor.​startDateTime | Start date of the relationship. Format: YYYY-MM-DD 00:00:00. For example, `2025-01-31 09:35:43`. Data type: String |
| resourceSpecification | Required. Details of the resource specifications related to this product specification. Data type: Array of Objects "resourceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| resourceSpecification.​id | Required. Initial version or external ID of the resource specification. Data type: String Table: In the sys_id or external_id field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalId | Initial version (sys_id) of the resource specification record. Data type: String Table: In the initial_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalVersion | Version of the resource specification. Data type: String Table: In the version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​name | Name of the resource specification. Data type: String Table: Resource Specification \[sn_prd_pm_resource_specification\] |
| resourceSpecification.​version | External version of the resource specification. Data type: String Table: In the external_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| serviceSpecification | List of service specifications related to this product specification. Data type: Array of Objects "serviceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| serviceSpecification.​id | Initial version or external ID of the service specification. Data type: String Table: In the sys_id or external_id field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalId | Initial version of the service specification. Data type: String Table: In the initial_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalVersion | Version of the service specification. Data type: String Table: In the version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​name | Name of the service specification. Data type: String Table: Service Specification \[sn_prd_pm_service_specification\] |
| serviceSpecification.​version | External version of the service specification. Data type: String Table: In the external_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| validFor | Required. Date range the specification is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.​endDateTime | End date and time of the specification. Format: YYYY-MM-DD 00:00:00. For example, `2025-01-31 09:35:43`. Data type: String |
| validFor.​startDateTime | Start date and time of the specification. Format: YYYY-MM-DD 00:00:00. For example, `2025-01-31 09:35:43`. Data type: String |
| version | External version of the product specification. Data type: String Table: In the external_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
[Table 81. Request body parameters (JSON)]

### Headers {#tmf_prod_order-PATCH-productSpec-id__section_rbn_cdj_4bc}

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_order-PATCH-productSpec-id__table_kqy_wgy_fsb__entry__2}

| Header | Description |
|-|-|
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 82. Request headers]

{#tmf_prod_order-PATCH-productSpec-id__table_kqy_wgy_fsb} {#tmf_prod_order-PATCH-productSpec-id__table_tzy_thy_ksb__entry__2}

| Header | Description |
|-|-|
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 83. Response headers]

{#tmf_prod_order-PATCH-productSpec-id__table_tzy_thy_ksb}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_order-PATCH-productSpec-id__table_nxj_ykz_gsb__entry__2}{#tmf_prod_order-PATCH-productSpec-id__entry-404-status-code}

| Status code | Description |
|-|-|
| 200 | Request successfully processed. |
| 400 | Bad request. Possible reasons: * Empty payload. * Invalid payload. Mandatory field missing: \<field name\> {#tmf_prod_order-PATCH-productSpec-id__ul_rys_1gy_fsb} |
| 404 | Not found. The requested item wasn't found. |
[Table 84. Status codes]

{#tmf_prod_order-PATCH-productSpec-id__table_nxj_ykz_gsb}

### Response body parameters

{#tmf_prod_order-PATCH-productSpec-id__table_xj1_jcj_4bc__entry__2}

| Name | Description |
|-|-|
| description | Description of the specification. Data type: String |
| href | Relative link to the resource record. Data type: String |
| id | Sys_id or external ID of the product specification. Data type: String Table: In the sys_id or external_id field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalId | Required. Sys_id or internal ID of the product specification. Data type: String Table: In the initial_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| lastUpdate | Date the specification was last updated. Format: YYYY-MM-DD 00:00:00. Data type: String |
| name | Name of the specification. Data type: String |
| productSpecCharacteristic | Characteristics of the specification. Data type: Array of Objects "productSpecCharacteristic": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| productSpecCharacteristic.​description | Description of the characteristic. Data type: String |
| productSpecCharacteristic.​name | Name of the characteristic. Data type: String |
| productSpecCharacteristic.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| productSpecCharacteristic.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| productSpecCharacteristic.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| productSpecCharacteristic.​validFor.​endDateTime | End date and time of the characteristic. Format: YYYY-MM-DD 00:00:00. Data type: String |
| productSpecCharacteristic.​validFor.​startDateTime | Start date and time of the characteristic. Format: YYYY-MM-DD 00:00:00. Data type: String |
| productSpecCharacteristic.​valueType | Value type of the characteristic, such as choice or email. Data type: String |
| productSpecificationRelationship | This specification's relationships to other product specifications. Data type: Array of Objects "productSpecificationRelationship": [ { "id": "String", "type": "String", "validFor": {Object} } ] |
| productSpecificationRelationship.​id | Sys_id of the related specification. Data type: String |
| productSpecificationRelationship.​type | Type of relationship. Data type: String |
| productSpecificationRelationship.​validFor | Date range the relationship is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| productSpecificationRelationship.​validFor.​endDateTime | End date and type of the relationship. Format: YYYY-MM-DD Data type: String |
| productSpecificationRelationship.​validFor.​startDateTime | Start date and type of the relationship. Format: YYYY-MM-DD Data type: String |
| resourceSpecification | List of resource specifications related to this product specification. Data type: Array of Objects "resourceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| resourceSpecification.​id | Sys_id or external ID of the resource specification. Data type: String Table: In the sys_id or external_id field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalId | Initial version (sys_id) of the resource specification record. Data type: String Table: In the initial_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalVersion | Version of the resource specification. Data type: String Table: In the version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​name | Name of the resource specification. Data type: String Table: Resource Specification \[sn_prd_pm_resource_specification\] |
| resourceSpecification.​version | External version of the resource specification. Data type: String Table: In the external_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| serviceSpecification | List of service specifications related to this product specification. Data type: Array of Objects "serviceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| serviceSpecification.​id | Initial version or external ID of the service specification. Data type: String Table: In the sys_id or external_id field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalId | Initial version of the service specification. Data type: String Table: In the initial_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalVersion | Version of the service specification. Data type: String Table: In the version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​name | Name of the service specification. Data type: String Table: Service Specification \[sn_prd_pm_service_specification\] |
| serviceSpecification.​version | External version of the service specification. Data type: String Table: In the external_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| validFor | Date range the specification is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.​endDateTime | End date and time of the specification. Format: YYYY-MM-DD HH:mm:SS. Data type: String |
| validFor.​startDateTime | Start date and time of the specification. Format: YYYY-MM-DD HH:mm:SS. Data type: String |
| version | External version of the product specification. Data type: String Table: In the external_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
[ ]

{#tmf_prod_order-PATCH-productSpec-id__table_xj1_jcj_4bc}  
The following example updates the product specification ID d6f8d9995b020210235d85cced81c7eb with information provided in the request body.

    curl "http://instance.servicenow.com/api/sn_tmf_api/catalogmanagement/productSpecification/d6f8d9995b020210235d85cced81c7eb" \ 
    --request PATCH\ 
    --header "Accept:application/json" \ 
    --user 'username':'password'
    --data '{
      "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "href": "/api/sn_tmf_api/catalogmanagement/productSpecification/cfe5ef6a53702010cd6dddeeff7b12f6",
      "name": "SD-WAN Service Package",
      "displayName": "SD-WAN Service Package v3",
      "version": "",
      "internalVersion": "3",
      "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "description": "SD WAN Service Package",
      "lastUpdate": "2027-10-11 06:58:12",
      "isBundle": true,
      "validFor": {
        "startDateTime": "2029-02-05",
        "endDateTime": ""
      },
      "serviceSpecification": [],
      "productSpecificationRelationship": [
        {
          "id": "216663aa53702010cd6dddeeff7b12b5",
          "name": "SD-WAN Controller",
          "version": "",
          "internalVersion": "1",
          "internalId": "216663aa53702010cd6dddeeff7b12b5",
          "type": "Service",
          "validFor": {
            "startDateTime": "2025-01-24",
            "endDateTime": ""
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "1",
            "numberSpecRelUpperLimit": "1"
          }
        },
        {
          "id": "39b627aa53702010cd6dddeeff7b1202",
          "name": "SD-WAN Edge Device",
          "version": "",
          "internalVersion": "2",
          "internalId": "39b627aa53702010cd6dddeeff7b1202",
          "type": "Service",
          "validFor": {
            "startDateTime": "2026-06-05",
            "endDateTime": "2031-07-05"
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "2",
            "numberSpecRelUpperLimit": "4"
          }
        },
        {
          "id": "a6514bd3534560102f18ddeeff7b1247",
          "name": "SD-WAN Security",
          "version": "",
          "internalVersion": "2",
          "internalId": "a6514bd3534560102f18ddeeff7b1247",
          "type": "Service",
          "validFor": {
            "startDateTime": "2026-06-03",
            "endDateTime": "2031-07-05"
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "4",
            "numberSpecRelUpperLimit": "20"
          }
        }
      ],
      "resourceSpecification": [],
      "productSpecCharacteristic": [
        {
          "productSpecCharacteristicValue": [
            {
              "value": "1",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.25",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.01",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.5",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Down Time",
          "description": "Down Time",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:36:15"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "500 Mbps",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "5 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "1 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Bandwidth",
          "description": "Bandwidth",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:32:11"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "4 hrs",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 hrs",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "1 hr",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Time to Restore (TTR)",
          "description": "Time to Restore (TTR)",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:37:25"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "1 hr",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 hrs",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "4 hrs",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Mean Time to Restore (MTR)",
          "description": "Mean Time to Restore (MTR)",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:39:05"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "No",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Yes",
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Application Flow Backup",
          "description": "Application Flow Backup",
          "valueType": "yes_no",
          "validFor": {
            "startDatetime": "2027-10-11 02:30:39"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "99.00",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.50",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.75",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.99",
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Up Time",
          "description": "Up time",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:34:30"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "No",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Yes",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Application Encryption",
          "description": "Application Encryption",
          "valueType": "yes_no",
          "validFor": {
            "startDatetime": "2027-10-11 02:29:08"
          }
        }
      ],
      "status": "published"
    }'

Response body:

    { 
      "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "href": "/api/sn_tmf_api/catalogmanagement/productSpecification/cfe5ef6a53702010cd6dddeeff7b12f6",
      "name": "SD-WAN Service Package",
      "displayName": "SD-WAN Service Package v3",
      "version": "",
      "internalVersion": "3",
      "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "description": "SD WAN Service Package",
      "lastUpdate": "2027-10-11 06:58:12",
      "isBundle": true,
      "validFor": {
        "startDateTime": "2029-02-05",
        "endDateTime": ""
      },
      "serviceSpecification": [],
      "productSpecificationRelationship": [
        {
          "id": "216663aa53702010cd6dddeeff7b12b5",
          "name": "SD-WAN Controller",
          "version": "",
          "internalVersion": "1",
          "internalId": "216663aa53702010cd6dddeeff7b12b5",
          "type": "Service",
          "validFor": {
            "startDateTime": "2025-01-24",
            "endDateTime": ""
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "1",
            "numberSpecRelUpperLimit": "1"
          }
        },
        {
          "id": "39b627aa53702010cd6dddeeff7b1202",
          "name": "SD-WAN Edge Device",
          "version": "",
          "internalVersion": "2",
          "internalId": "39b627aa53702010cd6dddeeff7b1202",
          "type": "Service",
          "validFor": {
            "startDateTime": "2026-06-05",
            "endDateTime": "2031-07-05"
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "2",
            "numberSpecRelUpperLimit": "4"
          }
        },
        {
          "id": "a6514bd3534560102f18ddeeff7b1247",
          "name": "SD-WAN Security",
          "version": "",
          "internalVersion": "2",
          "internalId": "a6514bd3534560102f18ddeeff7b1247",
          "type": "Service",
          "validFor": {
            "startDateTime": "2026-06-03",
            "endDateTime": "2031-07-05"
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "4",
            "numberSpecRelUpperLimit": "20"
          }
        }
      ],
      "resourceSpecification": [],
      "productSpecCharacteristic": [
        {
          "productSpecCharacteristicValue": [
            {
              "value": "1",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.25",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.01",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.5",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Down Time",
          "description": "Down Time",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:36:15"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "500 Mbps",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "5 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "1 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Bandwidth",
          "description": "Bandwidth",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:32:11"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "4 hrs",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 hrs",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "1 hr",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Time to Restore (TTR)",
          "description": "Time to Restore (TTR)",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:37:25"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "1 hr",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 hrs",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "4 hrs",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Mean Time to Restore (MTR)",
          "description": "Mean Time to Restore (MTR)",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:39:05"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "No",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Yes",
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Application Flow Backup",
          "description": "Application Flow Backup",
          "valueType": "yes_no",
          "validFor": {
            "startDatetime": "2027-10-11 02:30:39"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "99.00",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.50",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.75",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.99",
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Up Time",
          "description": "Up time",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:34:30"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "No",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Yes",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Application Encryption",
          "description": "Application Encryption",
          "valueType": "yes_no",
          "validFor": {
            "startDatetime": "2027-10-11 02:29:08"
          }
        }
      ],
      "status": "published"
    }'

## Product Catalog Open API - POST /sn_tmf_api/catalogmanagement/catalog {#ariaid-title16}

Creates a product offering catalog.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/catalog

### Supported request parameters

{#tmf_prod_cat-POST-catalog__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 85. Path parameters]

{#tmf_prod_cat-POST-catalog__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 86. Query parameters]

{#tmf_prod_cat-POST-catalog__entry__10}

| Name | Description |
|-|-|
| description | Description of the product offering catalog. Data type: String Default: Blank string |
| externalId | Unique identifier for the product offering catalog from the external system. Data type: String Default: Blank string |
| name | Required. Name of the product offering catalog. Data type: String |
[Table 87. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-POST-catalog__table_ett_h3z_gsb__entry__2}{#tmf_prod_cat-POST-catalog__accept-JSON-only-entry-RESTAPI}{#tmf_prod_cat-POST-catalog__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 88. Request headers]

{#tmf_prod_cat-POST-catalog__table_ett_h3z_gsb} {#tmf_prod_cat-POST-catalog__table_tzy_thy_ksb__entry__2}

| Header | Description |
|-|-|
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 89. Response headers]

{#tmf_prod_cat-POST-catalog__table_tzy_thy_ksb}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-POST-catalog__table_fbw_k3z_gsb__entry__2}

| Status code | Description |
|-|-|
| 201 | Request successfully processed. |
| 400 | Bad Request. Could be any of the following reasons: * Empty payload. * Invalid payload. Mandatory field missing: \<field name\> {#tmf_prod_cat-POST-catalog__ul_nc5_myx_fsb} |
[Table 90. Status codes]

{#tmf_prod_cat-POST-catalog__table_fbw_k3z_gsb}

### Response body parameters (JSON)

{#tmf_prod_cat-POST-catalog__entry__34}

| Name | Description |
|-|-|
| description | Description of the product offering catalog. Data type: String |
| id | Sys_id of the product offering catalog Data type: String Table: Product Offering Catalog \[sn_prd_pm_product_offering_catalog\] |
| name | Name of the product offering catalog. Data type: String |
[ ]

### cURL request

This example creates a product offering catalog.

    curl --location --request POST "https://instance.servicenow.com/api/sn_tmf_api/catalogmanagement/catalog" \
    --header "Content-Type: application/json" \
    --data-raw '{
        "id": "testId",
        "name": "Catalog",
        "description": "Description"
    }'
    --user 'username':'password'

Response body:

    {
       "id": "45715d02c3510110bc0526083c40dd6b",
       "description": "Description",
       "name": "Catalog1"
    }

## Product Catalog Open API - POST /sn_tmf_api/catalogmanagement/productOffering {#ariaid-title17}

Creates a product offering and associated product offering bundles.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productOffering

### Supported request parameters

{#tmf_prod_cat-POST-prodoffering__table_o3n_mvf_hsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 91. Path parameters]

{#tmf_prod_cat-POST-prodoffering__table_o3n_mvf_hsb} {#tmf_prod_cat-POST-prodoffering__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 92. Query parameters]

{#tmf_prod_cat-POST-prodoffering__table_vxh_xvf_hsb__entry__2}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledGroupProductOffering-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption_numberRelOfferLowerLimit-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledGroupProductOfferingOption_numberRelOfferUpperLimit-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledProductOffering-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledProductOffering_id-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledGroupProductOffering_bundledProductOffering_name-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledProductOffering-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledProductOffering_bundledProductOfferingOption-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferDefault-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferLowerLimit-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledProductOffering_bundledProductOfferingOption_numberRelOfferUpperLimit-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledProductOffering_externalId-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledProductOffering_id-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledProductOffering_name-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledProductOffering_version-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-displayName-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-isBundle-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-isSellable-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_description-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_name-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_isDefault-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_isMandatory-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_validFor-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_validFor_startDateTime-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_productSpecCharacteristicValue_value-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_validFor-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_validFor_startDateTime-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-prodSpecCharValueUse_valueType-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-productOfferingCharacteristic-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_isDefault-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_isMandatory-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-productOfferingCharacteristic_characteristicValueSpecification_value-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-productOfferingCharacteristic_name-entry}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-productOfferingCharacteristic_valueType-entry}

| Name | Description |
|-|-|
| bundledGroupProductOffering | Child groups of product offerings. These show hierarchical sub-grouping. Data type: Array of Objects "bundledGroupProductOffering": [ { "bundledGroupProductOfferingOption": {Object}, "bundledProductOffering": [Array],     "id": "String",     "name": "String" } ] |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption | A range of numbers that specifies the lower and upper limits of the number of the associated product offering that can be procured as part of the related bundled product offering. Data type: Object "bundledGroupProductOfferingOption": { "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferLowerLimit | Lower limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferUpperLimit | Upper limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledProductOffering | Child groups of product offerings associated with the bundle. Same format as bundledProductOffering specified below. Data type: Array of Objects |
| bundledGroupProductOffering.​id | Sys_id of the bundled group record. Useful in cases where the parent product offering or group includes multiple groups. Data type: String Table: Product Offering Relationship Group \[sn_prd_pm_product_offering_relationship_group\] |
| bundledGroupProductOffering.​name | Name of the group of child product offerings. Data type: String |
| bundledProductOffering | List of product offerings included in the product offering bundle. The product offering bundle inherits all of the attributes of the included product offerings. Data type: Array of Objects "bundledProductOffering": [ { "bundledProductOfferingOption": {Object},     "externalId": "String",     "id": "String",     "name": "String",     "version": Number } ] |
| bundledProductOffering.​bundledProductOfferingOption | Product bundle options such as the default number of product offerings and any upper and lower product offering procurement constraints. Data type: Object "bundledProductOfferingOption": { "numberRelOfferDefault": "String", "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferDefault | Default number of product offerings that should be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferLowerLimit | Lower limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferUpperLimit | Upper limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​externalId | External ID of the product offering   relationship. For additional information on product offering relationships, see [Create product offering relationships](https://www.servicenow.com/docs/access?context=som-product-config-offering-relationships&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: String |
| bundledProductOffering.​id | Sys_id or external ID of the bundled product offering. Data type: String Table: Product Offering \[sn_prd_pm_product_offering\] |
| bundledProductOffering.​name | Name of the product offering bundle. Data type: String |
| bundledProductOffering.​version | Catalog version of the product offering.  Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table.  |
| category | List of categories that the product belongs to. Data type: Array of Objects "category:" [ { "id": "String", "name": "String" } ] |
| category.id | Required if using the category parameter. ID of the category. Data type: String Table: Category \[sc_category\] |
| category.name | Name of the category. Data type: String Table: Category \[sc_category\] |
| channel | Required. Channels to use for selling the product offering. Data type: Array of Objects "channel:" [ { "description": "String", "id": "String", "name": "String" } ] |
| channel.description | Description of the channel. Data type: String |
| channel.id | Required. Sys_id of the channel. Data type: String Table: Distribution Channel \[sn_prd_pm_distribution_channel\] |
| channel.name | Name of the channel. Data type: String |
| description | Required. Description of the product offering. Data type: String |
| displayName | Display name of the product offering. Data type: String |
| externalId | Unique identifier for the product offering from the external system. Data type: String |
| href | Relative link to the resource record. Data type: String |
| id | Required. Initial version or external ID of the product offering. Data type: String Table: In the initial_version or external_id fields of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalId | Sys_id or internal ID of the product offering record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalVersion | Version of the product offering. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| isBundle | Flag that indicates whether the product offering is a bundle. Possible values: * true: Product offering is a bundle. * false: Single product offering. Data type: Boolean Default: false |
| isSellable | Flag that indicates whether the associated product offering can be sold by itself or must be part of a product offering bundle. Possible values: * true: Can be sold separately. * false: Only sold as part of a bundle. Data type: Boolean Default: false |
| lastUpdate | Date the product offering was last updated. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| lifecycleStatus | Current lifecycle status. Valid values: * Active * Draft * Inactive {#tmf_prod_cat-POST-prodoffering__ul_lj5_gg4_4bc} Data type: String |
| name | Required. Name of the product offering. Data type: String |
| prodSpecCharValueUse | Product offering characteristics. Data type: Array of Objects "prodSpecCharValueUse": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| prodSpecCharValueUse.​description | Description of the characteristic. Data type: String |
| prodSpecCharValueUse.​name | Name of the characteristic. Data type: String |
| prodSpecCharValueUse.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| prodSpecCharValueUse.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​validFor.​startDateTime | Start date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​valueType | Data type of the prodSpecCharValueUse.productSpecCharacteristicValue.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productCharacteristic | List of product characteristics. Data type: Array of Objects "productCharacteristic": [ { "name": "String", "value": "String" } ] |
| productCharacteristic.name | Name of the characteristic. Data type: String |
| productCharacteristic.value | Value of the characteristic. Data type: String |
| productOfferingCharacteristic | Characteristic quality or distinctive feature of a product offering. Characteristics can take on a discrete value that is fixed at design time (catalog authoring), such as Mobile Plan Rank. These characteristics are not generally modifiable at inventory level. For additional information on product offering characteristics, see [Create product characteristics and characteristic options](https://www.servicenow.com/docs/access?context=som-product-config-add-characteristics&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: Array of Objects productOfferingCharacteristic": [  { "characteristicValueSpecification": [Array], "name": "String", "valueType": "String" } ] |
| productOfferingCharacteristic.​characteristicValueSpecification | List of characteristic values associated with the product offering characteristic. Data type: Array of Objects "characteristicValueSpecification": [  { "isDefault": Boolean, "isMandatory": Boolean, "value": "String" }  ] |
| productOfferingCharacteristic.​characteristicValueSpecification.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the associated characteristic. Possible values: * true: Is default value. * false: Isn't the default value. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​isMandatory | Flag that indicates whether the associated characteristic value is mandatory for the associated characteristic. Possible values: * true: Is mandatory. * false: Isn't mandatory. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​value | Number or text assigned to the associated product specification characteristic . For example: "characteristicValueSpecification": [ { "value": "choice 1" }, { "value": "choice 2" } ] Data type: String |
| productOfferingCharacteristic.​name | Name of the associated product offering characteristic. Data type: String |
| productOfferingCharacteristic.​valueType | Data type of the productOfferingCharacteristic.characteristicValueSpecification.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productOfferingPrice | Price information for the product offering. Data type: Array of Objects "productOfferingPrice": [ { "price": {Object}, "priceType": "String" } ] |
| productOfferingPrice.price | Price information for the product offering. Data type: Object "price": { "taxIncludedAmount": {Object} } |
| productOfferingPrice.price.taxIncludedAmount | Price information for the product offering. Data type: Object "taxIncludedAmount": { "unit": "String", "value": "String" } |
| productOfferingPrice.price.taxIncludedAmount.unit | Currency code for the product offering price. Data type: String Format: ISO 4217 |
| productOfferingPrice.price.taxIncludedAmount.value | Price of the product offering including tax. Data type: String |
| productOfferingPrice.priceType | Required if using the productOfferingPrice parameter. Product offering price type, one-time or recurring payment. Valid values: * nonRecurring (one-time) * recurring Data type: String |
| productOfferingTerm | Valid contract term length for the product offering, such as 12 months, 24 months, or not_applicable. Data type: String |
| productSpecification | Required. Product specification for the product. Data type: Object "productSpecification": { "id": "String", "internalId": "String", "internalVersion": "String", "name" "version": "String" } |
| productSpecification.id | Required. Initial version or external ID of the product specification. Data type: String Table: In the initial_version or externa_id field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| productSpecification.​internalId | Sys_id or internal ID of the product specification record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​name | Name of the product specification. Data type: String Table: In the name field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​version | External version of the product specification. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| validFor | Required. Date range the product offering is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.endDateTime | End date of the product offering. Data type: String Format: YYYY-MM-DD |
| validFor.startDateTime | Start date of the product offering. Data type: String Format: YYYY-MM-DD |
| version | External version of the product offering. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
[Table 93. Request body parameters (JSON)]

{#tmf_prod_cat-POST-prodoffering__table_vxh_xvf_hsb}

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-POST-prodoffering__table_ett_h3z_gsb__entry__2}{#tmf_prod_cat-POST-prodoffering__accept-JSON-only-entry-RESTAPI}{#tmf_prod_cat-POST-prodoffering__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 94. Request headers]

{#tmf_prod_cat-POST-prodoffering__table_ett_h3z_gsb} {#tmf_prod_cat-POST-prodoffering__table_tzy_thy_ksb__entry__2}{#tmf_prod_cat-POST-prodoffering__d2893e189}

| Header | Description |
|-|-|
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 95. Response headers]

{#tmf_prod_cat-POST-prodoffering__table_tzy_thy_ksb}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-POST-prodoffering__table_fbw_k3z_gsb__entry__2}

| Status code | Description |
|-|-|
| 201 | Successful. The request was successfully processed. |
| 400 | Bad request. Possible reasons: * Empty payload. * Invalid payload. Mandatory field missing: \<field name\> {#tmf_prod_cat-POST-prodoffering__ul_nc5_myx_fsb} |
[Table 96. Status codes]

{#tmf_prod_cat-POST-prodoffering__table_fbw_k3z_gsb}

### Response body parameters

{#tmf_prod_cat-POST-prodoffering__entry__176}{#tmf_prod_cat-POST-prodoffering__d4999e285}{#tmf_prod_cat-POST-prodoffering__d4999e298}{#tmf_prod_cat-POST-prodoffering__d4999e314}{#tmf_prod_cat-POST-prodoffering__d4999e325}{#tmf_prod_cat-POST-prodoffering__d4999e336}{#tmf_prod_cat-POST-prodoffering__d4999e390}{#tmf_prod_cat-POST-prodoffering__d4999e403}{#tmf_prod_cat-POST-prodoffering__d4999e414}{#tmf_prod_cat-POST-prodoffering__d4999e428}{#tmf_prod_cat-POST-prodoffering__d4999e441}{#tmf_prod_cat-POST-prodoffering__d4999e454}{#tmf_prod_cat-POST-prodoffering__d4999e467}{#tmf_prod_cat-POST-prodoffering__d4999e480}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-bundledProductOffering_href-entry}{#tmf_prod_cat-POST-prodoffering__d4999e508}{#tmf_prod_cat-POST-prodoffering__d4999e521}{#tmf_prod_cat-POST-prodoffering__d4999e532}{#tmf_prod_cat-POST-prodoffering__d4999e622}{#tmf_prod_cat-POST-prodoffering__d4999e645}{#tmf_prod_cat-POST-prodoffering__d4999e695}{#tmf_prod_cat-POST-prodoffering__d4999e708}{#tmf_prod_cat-POST-prodoffering__d4999e719}{#tmf_prod_cat-POST-prodoffering__d4999e733}{#tmf_prod_cat-POST-prodoffering__d4999e749}{#tmf_prod_cat-POST-prodoffering__d4999e770}{#tmf_prod_cat-POST-prodoffering__d4999e792}{#tmf_prod_cat-POST-prodoffering__d4999e805}{#tmf_prod_cat-POST-prodoffering__d4999e818}{#tmf_prod_cat-POST-prodoffering__d4999e832}{#tmf_prod_cat-POST-prodoffering__d4999e845}{#tmf_prod_cat-POST-prodoffering__d4999e858}{#tmf_prod_cat-POST-prodoffering__d4999e892}{#tmf_prod_cat-POST-prodoffering__d4999e910}{#tmf_prod_cat-POST-prodoffering__d4999e923}{#tmf_prod_cat-POST-prodoffering__d4999e946}{#tmf_prod_cat-POST-prodoffering__d4999e969}{#tmf_prod_cat-POST-prodoffering__d4999e984}{#tmf_prod_cat-POST-prodoffering__d4999e996}{#tmf_prod_cat-POST-prodoffering__prodCat-offering-status-entry}

| Name | Description |
|-|-|
| bundledGroupProductOffering | Child groups of product offerings. These show hierarchical sub-grouping. Data type: Array of Objects "bundledGroupProductOffering": [ { "bundledGroupProductOfferingOption": {Object}, "bundledProductOffering": [Array],     "id": "String",     "name": "String" } ] |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption | A range of numbers that specifies the lower and upper limits of the number of the associated product offering that can be procured as part of the related bundled product offering. Data type: Object "bundledGroupProductOfferingOption": { "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferLowerLimit | Lower limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledGroupProductOfferingOption.​numberRelOfferUpperLimit | Upper limit for a product offering that can be procured as part of the related bundled product offering.  Data type: String |
| bundledGroupProductOffering.​bundledProductOffering | Child groups of product offerings associated with the bundle. Same format as bundledProductOffering specified below. Data type: Array of Objects |
| bundledGroupProductOffering.​id | Sys_id of the bundled group record. Useful in cases where the parent product offering or group includes multiple groups. Data type: String Table: Product Offering Relationship Group \[sn_prd_pm_product_offering_relationship_group\] |
| bundledGroupProductOffering.​name | Name of the group of child product offerings. Data type: String |
| bundledProductOffering | List of product offerings included in the product offering bundle. The product offering bundle inherits all of the attributes of the included product offerings. Data type: Array of Objects "bundledProductOffering": [ { "bundledProductOfferingOption": {Object},     "externalId": "String", "href": "String",     "id": "String",     "name": "String",     "version": Number } ] |
| bundledProductOffering.​bundledProductOfferingOption | Product bundle options such as the default number of product offerings and any upper and lower product offering procurement constraints. Data type: Object "bundledProductOfferingOption": { "numberRelOfferDefault": "String", "numberRelOfferLowerLimit": "String",   "numberRelOfferUpperLimit": "String" } |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferDefault | Default number of product offerings that should be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferLowerLimit | Lower limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​bundledProductOfferingOption.​numberRelOfferUpperLimit | Upper limit of the number of the associated product offerings that can be procured as part of the related bundled product offering. Data type: String Possible values: 0 to unbound. |
| bundledProductOffering.​externalId | External ID of the product offering   relationship. For additional information on product offering relationships, see [Create product offering relationships](https://www.servicenow.com/docs/access?context=som-product-config-offering-relationships&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: String |
| bundledProductOffering.​href | Relative link to the associated product offering. Data type: String |
| bundledProductOffering.​id | Sys_id or external ID of the bundled product offering. Data type: String Table: Product Offering \[sn_prd_pm_product_offering\] |
| bundledProductOffering.​name | Name of the product offering bundle. Data type: String |
| bundledProductOffering.​version | Catalog version of the product offering.  Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table.  |
| category | List of categories that the product belongs to. Data type: Array of Objects "category:" [ { "id": "String", "name": "String" } ] |
| category.id | ID of the category. Data type: String |
| category.name | Name of the category. Data type: String |
| channel | Channels to use for selling the product offering. Data type: Array of Objects "channel:" [ { "description": "String", "id": "String", "name": "String" } ] |
| channel.​description | Description of the channel. Data type: String |
| channel.id | Sys_id of the channel. Data type: String Table: Distribution Channel \[sn_prd_pm_distribution_channel\] |
| channel.name | Name of the channel. Data type: String |
| description | Description of the product offering. Data type: String |
| externalId | External ID of the product offering. Data type: String Table: In the external_id field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| href | Relative link to the resource record. Data type: String Default: Blank string |
| id | Required. Initial version or external ID of the product offering. Data type: String Table: In the initial_version or external_id field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalId | Sys_id or internal ID of the product offering record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| internalVersion | Version of the product offering. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| isBundle | Flag that indicates whether the product offering is a bundle. Possible values: * true: Product offering is a bundle. * false: Single product offering. Data type: Boolean Default: false |
| isSellable | Flag that indicates whether the associated product offering can be sold by itself or must be part of a product offering bundle. Possible values: * true: Can be sold separately. * false: Only sold as part of a bundle. Data type: Boolean Default: false |
| lastUpdate | Date the product offering was last updated. Data type: String |
| lifecycleStatus | Current life cycle status of the product offering. Valid values: * Active * Draft * Inactive Data type: String Default: Blank string |
| name | Name of the product offering. Data type: String |
| prodSpecCharValueUse | Product offering characteristics. Data type: Array of Objects "prodSpecCharValueUse": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| prodSpecCharValueUse.​description | Description of the characteristic. Data type: String |
| prodSpecCharValueUse.​name | Name of the characteristic. Data type: String |
| prodSpecCharValueUse.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| prodSpecCharValueUse.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "startDateTime": "String" } |
| prodSpecCharValueUse.​validFor.​startDateTime | Start date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| prodSpecCharValueUse.​valueType | Data type of the prodSpecCharValueUse.productSpecCharacteristicValue.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productCharacteristic | List of product characteristics. Data type: Array of Objects "productCharacteristic": [ { "name": "String", "value": "String" } ] |
| productCharacteristic.​name | Name of the characteristic. Data type: String |
| productCharacteristic.​value | Value of the characteristic. Data type: String |
| productOfferingCharacteristic | Characteristic quality or distinctive feature of a product offering. Characteristics can take on a discrete value that is fixed at design time (catalog authoring), such as Mobile Plan Rank. These characteristics are not generally modifiable at inventory level. For additional information on product offering characteristics, see [Create product characteristics and characteristic options](https://www.servicenow.com/docs/access?context=som-product-config-add-characteristics&version=yokohama&pubname=yokohama-order-management&ft:locale=en-US). Data type: Array of Objects productOfferingCharacteristic": [  { "characteristicValueSpecification": [Array], "name": "String", "valueType": "String" } ] |
| productOfferingCharacteristic.​characteristicValueSpecification | List of characteristic values associated with the product offering characteristic. Data type: Array of Objects "characteristicValueSpecification": [  { "isDefault": Boolean, "isMandatory": Boolean, "value": "String" }  ] |
| productOfferingCharacteristic.​characteristicValueSpecification.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the associated characteristic. Possible values: * true: Is default value. * false: Isn't the default value. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​isMandatory | Flag that indicates whether the associated characteristic value is mandatory for the associated characteristic. Possible values: * true: Is mandatory. * false: Isn't mandatory. Data type: Boolean Default: false |
| productOfferingCharacteristic.​characteristicValueSpecification.​value | Number or text assigned to the associated product specification characteristic . For example: "characteristicValueSpecification": [ { "value": "choice 1" }, { "value": "choice 2" } ] Data type: String |
| productOfferingCharacteristic.​name | Name of the associated product offering characteristic. Data type: String |
| productOfferingCharacteristic.​valueType | Data type of the productOfferingCharacteristic.characteristicValueSpecification.value parameter. Possible values: * choice * email * number * text * yes/no Data type: String |
| productOfferingPrice | Price information for the product offering. Data type: Array of Objects "productOfferingPrice": [ { "price": {Object}, "priceType": "String" } ] |
| productOfferingPrice.​price | Price information for the product offering. Data type: Object "price": { "taxIncludedAmount": {Object} } |
| productOfferingPrice.​price.​taxIncludedAmount | Price information for the product offering. Data type: Object "taxIncludedAmount": { "unit": "String", "value": "String" } |
| productOfferingPrice.​price.​taxIncludedAmount.unit | Currency code for the product offering price. Data type: String |
| productOfferingPrice.​price.​taxIncludedAmount.​value | Price of the product offering including tax. Data type: String |
| productOfferingPrice.​priceType | Product offering price type, one-time or recurring payment. Possible values: * nonRecurring (one-time) * recurring Data type: String |
| productOfferingTerm | Valid contract term length for the product offering. Data type: String |
| productSpecification | Product specification for the product. Data type: Object "productSpecification": { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } |
| productSpecification.​id | Sys_id of the product specification record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​internalId | Sys_id or internal ID of the product specification record. Data type: String Table: In the initial_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| productSpecification.​version | External version of the product specification. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
| status | Status of the product offering. Possible values: * draft * published Data type: String |
| validFor | Date range the product offering is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.​endDateTime | End date of the product offering. Data type: String |
| validFor.​startDateTime | Start date of the product offering. Data type: String |
| version | External version of the product offering. Data type: String Table: In the external_version field of the Product Offering \[sn_prd_pm_product_offering\] table. |
[ ]

This example creates a product offering.

    curl --location --request POST "https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/productOffering" \
    --header "Content-Type: application/json" \
    --header "Accept:application/json" \
    --data-raw '{
      "id": "313b917843235210a82ed6085bb8f2c7",
      "name": "Internet bundle",
      "displayName": "Internet bundle",
      "description": "Internet bundle",
      "isSellable": false,
      "lifecycleStatus": "Draft",
      "isBundle": true,
      "lastUpdate": "2025-02-05 06:39:45",
      "version": "",
      "internalVersion": "1",
      "internalId": "313b917843235210a82ed6085bb8f2c7",
      "validFor": {
        "startDateTime": "2028-12-15",
        "endDateTime": "2034-01-14"
      },
      "productOfferingTerm": "not_applicable",
      "productOfferingPrice": [
        {
          "priceType": "recurring",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": "0"
            }
          }
        },
        {
          "priceType": "nonRecurring",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": "0"
            }
          }
        }
      ],
      "productOfferingCharacteristic": [
        {
          "name": "Firewall Security",
          "valueType": "choice",
          "characteristicValueSpecification": [
            {
              "value": "Premium",
              "isMandatory": false,
              "isDefault": true
            }
          ]
        },
        {
          "name": "Connectivity need",
          "valueType": "choice",
          "characteristicValueSpecification": [
            {
              "value": "When in use",
              "isMandatory": false,
              "isDefault": false
            }
          ]
        }
      ],
      "bundledProductOffering": [
        {
          

          "id": "0f61dd9fd0a63110f8770dbf976be168",
          "name": "Solana Sports streaming channel",
          "version": "1",
          "externalId": "EXT-123",
          "bundledProductOfferingOption": {
            "numberRelOfferDefault": "1",
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        }
      ],
      "bundledGroupProductOffering": [
        {
          "id": "063b957843235210a82ed6085bb8f205",
          "name": "Streaming Channel",
          "bundledProductOffering": [
            { 
            

              "id": "62619d9fd0a63110f8770dbf976be180",
              "name": "Solana Movie streaming channel",
              "version": "1",
              "externalId": "EXT-345",
              "bundledProductOfferingOption": {
                "numberRelOfferDefault": "1",
                "numberRelOfferLowerLimit": "1",
                "numberRelOfferUpperLimit": "1"
              }
            }
          ],
          "bundledGroupProductOfferingOption": {
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        }
      ],
      "productSpecification": {
        "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
        "name": "SD-WAN Service Package",
        "version": "",
        "internalVersion": "3",
        "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6"
      },
      "prodSpecCharValueUse": [
        {
          "name": "Tenancy",
          "description": "Tenancy",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2024-12-18 21:04:24"
          },
          "productSpecCharacteristicValue": [
            {
              "value": "Premium (>50 sites)",
              "isDefault": false,
              "isMandatory": false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Base (10 site)",
              "isDefault": false,
              "isMandatory": false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "productSpecification": {
            "id": "216663aa53702010cd6dddeeff7b12b5",
            "name": "SD-WAN Controller",
            "version": "",
            "internalVersion": "1",
            "internalId": "216663aa53702010cd6dddeeff7b12b5"
          }
        }
      ],
      "channel": [
        {
          "id": "58ad5522c3702010df4773ce3640ddb2",
          "name": "Agent Assist"
        }
      ],
      "category": [
        {
          "id": "13e305a143b631105029d1529ab8f267",
          "name": "SD-WAN_all_offers"
        }
      ],
      "status": "draft"
    }'
    --user 'username':'password'

Response body:

    {
      "id": "313b917843235210a82ed6085bb8f2c7",
      "name": "Internet bundle",
      "displayName": "Internet bundle",
      "description": "Internet bundle",
      "isSellable": false,
      "lifecycleStatus": "Draft",
      "isBundle": true,
      "lastUpdate": "2025-04-09 15:59:09",
      "version": "",
      "internalVersion": "1",
      "validFor": {
        "startDateTime": "2028-12-15",
        "endDateTime": "2034-01-14"
      },
      "productOfferingTerm": "not_applicable",
      "productOfferingPrice": [
        {
          "priceType": "recurring",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": "0"
            }
          }
        },
        {
          "priceType": "nonRecurring",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": "0"
            }
          }
        }
      ],
      "productOfferingCharacteristic": [
        {
          "name": "Firewall Security",
          "valueType": "choice",
          "characteristicValueSpecification": [
            {
              "value": "Premium",
              "isMandatory": false,
              "isDefault": true
            }
          ]
        },
        {
          "name": "Connectivity need",
          "valueType": "choice",
          "characteristicValueSpecification": [
            {
              "value": "When in use",
              "isMandatory": false,
              "isDefault": false
            }
          ]
        }
      ],
      "bundledProductOffering": [
        {
          "id": "0f61dd9fd0a63110f8770dbf976be168",
          "name": "Solana Sports streaming channel",
          "version": "1",
          "externalId": "EXT-123",
          "bundledProductOfferingOption": {
            "numberRelOfferDefault": "1",
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        }
      ],
      "bundledGroupProductOffering": [
        {
          "id": "063b957843235210a82ed6085bb8f205",
          "name": "Streaming Channel",
          "bundledProductOffering": [
            {
              "id": "62619d9fd0a63110f8770dbf976be180",
              "name": "Solana Movie streaming channel",
              "version": "1",
              "externalId": "EXT-345",
              "bundledProductOfferingOption": {
                "numberRelOfferDefault": "1",
                "numberRelOfferLowerLimit": "1",
                "numberRelOfferUpperLimit": "1"
              }
            }
          ],
          "bundledGroupProductOfferingOption": {
            "numberRelOfferLowerLimit": "1",
            "numberRelOfferUpperLimit": "1"
          }
        }
      ],
      "productSpecification": {
        "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
        "name": "SD-WAN Service Package",
        "version": "",
        "internalVersion": "3",
        "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6"
      },
      "prodSpecCharValueUse": [
        {
          "name": "Tenancy",
          "description": "Tenancy",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2024-12-18 21:04:24"
          },
          "productSpecCharacteristicValue": [
            {
              "value": "Premium (>50 sites)",
              "isDefault": false,
              "isMandatory": false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Base (10 site)",
              "isDefault": false,
              "isMandatory": false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "productSpecification": {
            "id": "216663aa53702010cd6dddeeff7b12b5",
            "name": "SD-WAN Controller",
            "version": "",
            "internalVersion": "1",
            "internalId": "216663aa53702010cd6dddeeff7b12b5"
          }
        }
      ],
      "channel": [
        {
          "id": "58ad5522c3702010df4773ce3640ddb2",
          "name": "Agent Assist"
        }
      ],
      "category": [
        {
          "id": "13e305a143b631105029d1529ab8f267",
          "name": "SD-WAN_all_offers"
        }
      ],
      "status": "draft",
      "externalId": "313b917843235210a82ed6085bb8f2c7",
      "internalId": "03c99cb53bf066509b48d69a04e45a11",
      "href": "/api/sn_tmf_api/catalogmanagement/productOffering/03c99cb53bf066509b48d69a04e45a11"
    }

## Product Catalog Open API - POST /sn_tmf_api/catalogmanagement/productOfferingPrice {#ariaid-title18}

Creates a new price list line record in the Price List Line \[sn_csm_pricing_price_list_line\] table.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productOfferingPrice

### Supported request parameters

{#tmf_prod_order-POST-prodofferprice__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 97. Path parameters]

{#tmf_prod_order-POST-prodofferprice__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 98. Query parameters]

{#tmf_prod_order-POST-prodofferprice__id_b21_1nc_f2c__entry__2}

| Name | Description |
|-|-|
| @type | Required. Type of price list line. Always a value of `ProductOfferingPrice`. Data type: String |
| externalId | The external ID of the price list line. Data type: String |
| isBundle | Flag that indicates whether the price list line is part of a single product or a bundle of products. Valid values: * true: Price list line is part of a bundle. * false: Price list line isn't part of a bundle. Data type: Boolean Default: false |
| lastUpdate | Required. Date that the price line was last updated. Format: YYYY-MM-DD Data type: String |
| lifeCycleStatus | Required. Current life cycle status of the product list line. Valid values: * active * draft * inactive Data type: String Default: draft |
| name | Required. Name to give the price list line. Data type: String |
| price | Required. List price details of the price list line. Data type: Object "price": { "unit": "String", "value": "String" } |
| price.unit | Required. Currency code of the price list line. For example, `USD` or `EUR`. Table: Currency \[fx_currency\] table. Data type: String |
| price.value | Required. Value of the price. Data type: String (represented with a number. For example, `"800"`.) |
| priceList | Required. Price list information associated with the price list line. Data type: Object "priceList": { "id": "String", "name": "String", "@type": "String" } |
| priceList.id | Required. Sys_id of the price list line. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| priceList.name | Name of the price list line. Data type: String |
| priceList.@type | The type of price list line. When sub-classing, this defines the sub-class extensible name. Value is always `priceList`. Data type: String |
| priceType | Required. Filter the price list line by the pricing method of the product offering. Valid values: * recurring: Charge recurring pricing amounts with a specified frequency. Frequency is set in the recurringChargePeriodType parameter. * one_time: Supports one-time or recurring add-on charges and fees for a product offering. Data type: String Default: recurring |
| productOffering | Required. Product offering of the price list line. Data type: Object "productOffering": { "id": "String", "name": "String", "internalVersion": "String" } |
| productOffering.​id | Required. Sys_id of the product offering. Table: Product offering \[sn_prd_pm_product_offering\] Data type: String |
| productOffering.​internalVersion | Internal version number of the product offering. Data type: String (represented with a number. For example, `"1"`.) |
| productOffering.​name | Name of the product offering. Data type: String |
| recurringChargePeriodType | Required if priceType is recurring. Commitment terms that are selected when the product offering was created. Valid values: * annually * monthly Data type: String |
| unitOfMeasure | Required. Details about the unit of measure associated with the price list line. Data type: Object "unitOfMeasure": { "id": "String", "amount": Number, "units": "String" } |
| unitOfMeasure.​amount | Amount of the unit of measure. Data type: Number |
| unitOfMeasure.​id | Required. Sys_id of the unit of measure in the Price Line List table. Table: Price List Line \[sn_csm_pricing_price_list_line\] Data type: String |
| unitOfMeasure.​units | Type of the unit of measure associated with the price list line. For example, `each` or `bundle`. Data type: String |
| validFor | Required. The duration of time that the price list line is valid for. Data type: Object "validFor": { "endDate": "String", "startDate": "String" } |
| validFor.endDate | End date that the price list line is valid for. Data type: String (glide_date_time) |
| validFor.endDateTime | End date and time that the price list line is valid for. Format: YYYY-MM-DD HH:mm:ss Data type: String (glide_date) |
| validFor.startDate | Start date that the price list line is valid for. Data type: String (glide_date_time) |
| validFor.startDateTime | Start date and time that the price list line is valid for. Format: YYYY-MM-DD HH:mm:ss Data type: String (glide_date) |
[Table 99. Request body parameters (XML or JSON)]

{#tmf_prod_order-POST-prodofferprice__id_b21_1nc_f2c}

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_order-POST-prodofferprice__entry__68}{#tmf_prod_order-POST-prodofferprice__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 100. Request headers]

{#tmf_prod_order-POST-prodofferprice__entry__72}

| Header | Description |
|-|-|
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 101. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_order-POST-prodofferprice__table_onp_pnw_22c__entry__2}{#tmf_prod_order-POST-prodofferprice__entry-200-status-code}{#tmf_prod_order-POST-prodofferprice__entry-404-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad request. Possible reasons: * Invalid path parameter * Invalid URI {#tmf_prod_order-POST-prodofferprice__ul_qkg_2rv_22c} |
| 404 | Not found. The requested item wasn't found. |
[Table 102. Status codes]

{#tmf_prod_order-POST-prodofferprice__table_onp_pnw_22c}

### Response body parameters (JSON or XML)

{#tmf_prod_order-POST-prodofferprice__entry__84}

| Name | Description |
|-|-|
| id | Sys_id of the price list line. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| href | URL to the price list line record in the instance. Data type: String |
| lastUpdate | Date and time that the price list line was last updated. Format: YYYY-MM-DD HH:mm:ss Data type: String |
| validFor | The duration of time that the price list line is valid for. Data type: Object "validFor": { "endDate": "String", "startDate": "String" } |
| validFor.endDate | End date and time that the price list line is valid for. Data type: String (glide_date_time) |
| validFor.startDate | Start date and time that the price list line is valid for. Data type: String (glide_date_time) |
| isBundle | Flag that indicates whether the price list line is part of a single product or a bundle of products. Valid values: * true: Price list line is part of a bundle. * false: Price list line isn't part of a bundle. Data type: Boolean |
| lifecycleStatus | Current life cycle status of the price list line. Valid values: * Active * Draft * Inactive Data type: String |
| productOffering | Product offering that is associated with the price list line. Data type: Object "productOffering": { "id": "String", "name": "String", "internalVersion": "String" } |
| productOffering.id | Sys_id of the product offering. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| productOffering.​internalVersion | Internal version number of the product offering. For example, `PRDOF01024`. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| productOffering.​name | Name of the product offering. Located in the Product Offering \[sn_prd_pm_product_offering\] table. Data type: String |
| priceType | The pricing method of the product offering which is associated with this price list line. Possible values: * recurring: Charge recurring pricing amounts with a specified frequency. The value of recurringChargePeriodType indicates the frequency of the charge. * one_time: One-time or recurring add-on charges and fees for a product offering. Data type: String |
| recurringChargePeriodType | The periodicity or frequency of the product offering associated with this price list line. Returns a frequency type if priceType was set to `recurring`, otherwise returns an empty string. Possible values: * annually * monthly Data type: String |
| unitOfMeasure | Details about the unit of measure associated with the price list line. Data type: Object "unitOfMeasure": { "id": "String", "amount": Number, "units": "String" } |
| unitOfMeasure.amount | Amount of the unit of measure. Data type: Number |
| unitOfMeasure.id | Sys_id of the unit of measure. Table: Price List Lines \[sn_csm_pricing_price_list_line\] Data type: String |
| unitOfMeasure.​units | Type of the unit of measure associated with the price list line. For example, `year` or `bundle`. Data type: String |
| price | List price details of the price list line. Data type: Object "price": { "units": "String", "value": "String" } |
| price.units | Currency code of the price. For example, `USD` or `EUR`. Table: Currency \[fx_currency\] Data type: String |
| price.value | Value of the price. Data type: String (represented with a number) |
| priceList | Price list information associated with the price list line. Data type: Object "priceList": { "id": "String", "name": "String", "@type": "String" } |
| priceList.id | Sys_id of the price list in the Price List \[sn_csm_pricing_price_list\] table. Data type: String |
| priceList.name | Name of the price list. Data type: String |
| priceList.@type | The type of price list. When sub-classing, this defines the sub-class extensible name. Always has a value of `priceList`. Data type: String |
| @type | Always a value of `ProductOfferingPrice`. When sub-classing, this defines the sub-class extensible name. Data type: String |
| state | The state of the price list which is associated with this price list line. Data type: String |
| externalId | The external ID of this price list line. Data type: String |
[ ]

### cURL request

The following example creates a new price list line record according to data specified in the request body, and inserts it in the Price list line \[sn_csm_pricing_price_list_line\] table.

    curl "http://instance.servicenow.com/api/sn_tmf_api/catalogmanagement/productOfferingPrice " \
    --request POST\
    --user 'username':'password'
    --data {
      "name": "new Price list",
      "validFor": {
        "startDateTime": "2024-05-28 15:15:58",
        "endDateTime": "2025-06-28 15:15:58"
      },
      "priceType": "recurring",
      "recurringChargePeriodType": "monthly",
      "lastUpdate": "2023-09-23 00:00:00",
      "isBundle": false,
      "lifecycleStatus": "Draft",
      "unitOfMeasure": {
        "id": "1eaa559953020110286eddeeff7b12c7",
        "amount": 1,
        "units": "Year"
      },
      "price": {
        "unit": "USD",
        "value": "800"
      },
      "productOffering": {
        "id": "9e3dd57a4fcb5210f899f61d20ce0bf2",
        "name": "Maintenance Fee",
        "internalVersion": "1"
      },
      "priceList": {
        "name": "new price list",
        "@type": "priceList"
      },
      "externalId": "test123",
      "@type": "ProductOfferingPrice"
    }

Response body. This new price list line record is assigned a unique ID; the response body returns this information along with a URL to the new record using the href response parameter.

    {
      "name": "new Price list",
      "validFor": {
        "startDateTime": "2024-05-28 15:15:58",
        "endDateTime": "2025-06-28 15:15:58"
      },
      "priceType": "recurring",
      "recurringChargePeriodType": "monthly",
      "lastUpdate": "2023-09-23 00:00:00",
      "isBundle": false,
      "lifecycleStatus": "Draft",
      "unitOfMeasure": {
        "id": "1eaa559953020110286eddeeff7b12c7",
        "amount": 1,
        "units": "Year"
      },
      "price": {
        "unit": "USD",
        "value": "800"
      },
      "productOffering": {
        "id": "9e3dd57a4fcb5210f899f61d20ce0bf2",
        "name": "Maintenance Fee",
        "internalVersion": "1"
      },
      "priceList": {
        "id": "194d5d364f8b5210f899f61d20ce0b7a",
        "name": "new Price list",
        "@type": "priceList"
      },
      "externalId": "test123",
      "@type": "ProductOfferingPrice",
      "id": "994d5d364f8b5210f899f61d20ce0b7c",
      "state": "draft",
      "href": "/api/sn_tmf_api/catalogmanagement/productOfferingPrice/994d5d364f8b5210f899f61d20ce0b7c"
    }

## Product Catalog Open API - POST /sn_tmf_api/catalogmanagement/productSpecification {#ariaid-title19}

Creates a product specification record with the specified values.

### URL format

Default URL: /api/sn_tmf_api/catalogmanagement/productSpecification

### Supported request parameters

{#tmf_prod_cat-POST-prodspec__table_jdq_g51_jsb__entry__2}

| Name | Description |
|-|-|
| None |   |
[Table 103. Path parameters]

{#tmf_prod_cat-POST-prodspec__table_jdq_g51_jsb} {#tmf_prod_cat-POST-prodspec__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 104. Query parameters]

{#tmf_prod_cat-POST-prodspec__table_db1_q51_jsb__entry__2}

| Name | Description |
|-|-|
| description | Required. Description of the specification. Data type: String |
| externalId | Unique identifier for the product specification from the external system. Data type: String Default: Blank string |
| id | Required. Sys_id or external ID of the product specification. Data type: String Table: In the initial_version or external_id of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalId | Required. Sys_id or internal ID of the product specification. Data type: String Table: In the initial_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| lastUpdate | Date the specification was last updated. Data type: String Format: YYYY-MM-DD HH:mm:SS. For example, `2025-01-31 09:35:43`. Default: Blank string |
| name | Required. Name of the specification. Data type: String |
| productSpecCharacteristic | Specification characteristic. Data type: Array of Objects "productSpecCharacteristic": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| productSpecCharacteristic.​description | Description of the characteristic. Data type: String Default: Blank string |
| productSpecCharacteristic.​name | Required. Name of the characteristic. Data type: String |
| productSpecCharacteristic.​productSpecCharacteristicValue | Required. List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| productSpecCharacteristic.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| productSpecCharacteristic.​productSpecCharacteristicValue.​value | Required. Value of the characteristic. Data type: String |
| productSpecCharacteristic.​validFor | Date range the characteristic is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| productSpecCharacteristic.​validFor.​endDateTime | End date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS. For example, `2025-01-31 09:35:43`. Default: Blank string |
| productSpecCharacteristic.​validFor.​startDateTime | Start date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS. For example, `2025-01-31 09:35:43`. Default: Blank string |
| productSpecCharacteristic.​valueType | Value type of the characteristic, such as choice or email. Data type: String Default: Blank string |
| productSpecificationRelationship | This specification's relationships to other product specifications. Data type: Array "productSpecificationRelationship": [ { "id": "String", "type": "String", "validFor": Object } ] |
| productSpecificationRelationship.​id | ID of the related specification. Data type: String Default: Blank string |
| productSpecificationRelationship.​type | Required if using the productSpecificationRelationship parameter. Type of relationship. Valid values: * bundles * composed_of {#tmf_prod_cat-POST-prodspec__ul_kjr_xnx_fsb} Data type: String |
| productSpecificationRelationship.​validFor | Date range the relationship is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| productSpecificationRelationship.​validFor.​endDateTime | End date of the relationship. Data type: String Format: YYYY-MM-DD HH:mm:SS. For example, `2025-01-31 09:35:43`. Default: Blank string |
| productSpecificationRelationship.​validFor.​startDateTime | Start date of the relationship. Data type: String Format: YYYY-MM-DD HH:mm:SS. For example, `2025-01-31 09:35:43`. Default: Blank string |
| resourceSpecification | Required. Resource specifications related to this product specification. Data type: Array of Objects "resourceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| resourceSpecification.​id | Required. Initial version or external ID of the resource specification. Data type: String Table: In the sys_id or external_id field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalId | Initial version (sys_id) of the resource specification record. Data type: String Table: In the initial_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalVersion | Version of the resource specification. Data type: String Table: In the version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​name | Name of the resource specification. Data type: String Table: Resource Specification \[sn_prd_pm_resource_specification\] |
| resourceSpecification.​version | External version of the resource specification. Data type: String Table: In the external_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| serviceSpecification | List of service specifications related to this product specification. Data type: Array of Objects "serviceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| serviceSpecification.​id | Initial version or external ID of the service specification. Data type: String Table: In the sys_id or external_id field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalId | Initial version of the service specification. Data type: String Table: In the initial_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalVersion | Version of the service specification. Data type: String Table: In the version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​name | Name of the service specification. Data type: String Table: Service Specification \[sn_prd_pm_service_specification\] |
| serviceSpecification.​version | External version of the service specification. Data type: String Table: In the external_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| validFor | Required. Date range the specification is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.​endDateTime | End date of the specification. Data type: String Format: YYYY-MM-DD HH:mm:SS. For example, `2025-01-31 09:35:43`. Default: Blank string |
| validFor.​startDateTime | Start date of the specification. Data type: String Format: YYYY-MM-DD HH:mm:SS. For example, `2025-01-31 09:35:43`. Default: Blank string |
| version | External version of the product specification. Data type: String Table: In the external_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
[Table 105. Request body parameters (JSON)]

{#tmf_prod_cat-POST-prodspec__table_db1_q51_jsb}

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-POST-prodspec__table_ett_h3z_gsb__entry__2}{#tmf_prod_cat-POST-prodspec__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 106. Request headers]

{#tmf_prod_cat-POST-prodspec__table_ett_h3z_gsb} {#tmf_prod_cat-POST-prodspec__table_tzy_thy_ksb__entry__2}

| Header | Description |
|-|-|
| Content-Type | Data format of the response body. Only supports application/json. |
[Table 107. Response headers]

{#tmf_prod_cat-POST-prodspec__table_tzy_thy_ksb}

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/aXidvjgEVmS~V~ZL0h85lQ "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#tmf_prod_cat-POST-prodspec__table_fbw_k3z_gsb__entry__2}

| Status code | Description |
|-|-|
| 201 | Request successfully processed. |
| 400 | Bad request. Possible reasons: * Empty payload. * Invalid payload. Mandatory field missing: \<field name\> {#tmf_prod_cat-POST-prodspec__ul_nc5_myx_fsb} |
[Table 108. Status codes]

{#tmf_prod_cat-POST-prodspec__table_fbw_k3z_gsb}

### Response body parameters

{#tmf_prod_cat-POST-prodspec__entry__114}

| Name | Description |
|-|-|
| description | Description of the specification. Data type: String |
| href | Relative link to the resource record. Data type: String Default: Blank string |
| id | Sys_id or external ID of the product specification. Data type: String Table: In the sys_id or external_id field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalId | Required. Sys_id or internal ID of the product specification. Data type: String Table: In the initial_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| internalVersion | Version of the product specification. Data type: String Table: In the version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
| isBundle | Flag that indicates whether productSpecification represents a single product or a bundle of products. Valid values: * true: The product specification is a product bundle and contains multiple products. * false: The product specification contains a single product. {#tmf_prod_cat-POST-prodspec__ul_rry_rz4_4bc} Data type: Boolean Default: false |
| lastUpdate | Date the specification was last updated. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| lifecycleStatus | Current lifecycle status of the product specification. Possible values: * Active * Draft * Inactive {#tmf_prod_cat-POST-prodspec__ul_lj5_gg4_4bc} Data type: String Default: Blank string |
| name | Name of the specification. Data type: String |
| productSpecCharacteristic | Specification characteristic. Data type: Array of Objects "productSpecCharacteristic": [ { "description": "String", "name": "String", "productSpecCharacteristicValue": [Array], "validFor": {Object}, "valueType": "String" } ] |
| productSpecCharacteristic.​description | Description of the characteristic. Data type: String |
| productSpecCharacteristic.​name | Name of the characteristic. Data type: String |
| productSpecCharacteristic.​productSpecCharacteristicValue | List of the possible values of the characteristic. Data type: Array of Objects "productSpecCharacteristicValue": [ { "isDefault": Boolean, "isMandatory": Boolean, "validFor": {Object}, "value": "String" } ] |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isDefault | Flag that indicates whether the associated characteristic value is the default value for the characteristic. Possible values: * true: Default value. * false: Not the default value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​isMandatory | Flag that indicates whether the associated characteristic value is a mandatory value for the characteristic. Possible values: * true: Mandatory value. * false: Not a mandatory value. Default: false |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor | Date and time of when the characteristic is valid. Data type: Object "validFor": { "startDateTime": "String" } |
| productSpecCharacteristic.​productSpecCharacteristicValue.​validFor.​startDateTime | Start date and time of when the characteristic value is valid. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| productSpecCharacteristic.​productSpecCharacteristicValue.​value | Value of the characteristic. Data type: String |
| productSpecCharacteristic.​validFor | Date range for which the characteristic is valid. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| productSpecCharacteristic.​validFor.​endDateTime | End date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| productSpecCharacteristic.​validFor.​startDateTime | Start date of the characteristic. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| productSpecCharacteristic.​valueType | Value type of the characteristic, such as choice or email. Data type: String |
| productSpecificationRelationship | This specification's relationships to other product specifications. Data type: Array of Objects "productSpecificationRelationship": [ { "id": "String", "type": "String", "validFor": Object } ] |
| productSpecificationRelationship.​id | Sys_id of the related specification. Data type: String |
| productSpecificationRelationship.​type | Type of relationship. Data type: String |
| productSpecificationRelationship.​validFor | Date range the relationship is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| productSpecificationRelationship.​validFor.​endDateTime | End date of the relationship. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| productSpecificationRelationship.​validFor.​startDateTime | Start date of the relationship. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| resourceSpecification | List of resource specifications related to this product specification. Data type: Array of Objects "resourceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| resourceSpecification.​id | Sys_id or external ID of the resource specification. Data type: String Table: In the sys_id or external_id field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalId | Initial version (sys_id) of the resource specification record. Data type: String Table: In the initial_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​internalVersion | Version of the resource specification. Data type: String Table: In the version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| resourceSpecification.​name | Name of the resource specification. Data type: String Table: Resource Specification \[sn_prd_pm_resource_specification\] |
| resourceSpecification.​version | External version of the resource specification. Data type: String Table: In the external_version field of the Resource Specification \[sn_prd_pm_resource_specification\] table. |
| serviceSpecification | List of service specifications related to this product specification. Data type: Array of Objects "serviceSpecification": [ { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ] |
| serviceSpecification.​id | Initial version or external ID of the service specification. Data type: String Table: In the sys_id or external_id field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalId | Initial version of the service specification. Data type: String Table: In the initial_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​internalVersion | Version of the service specification. Data type: String Table: In the version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| serviceSpecification.​name | Name of the service specification. Data type: String Table: Service Specification \[sn_prd_pm_service_specification\] |
| serviceSpecification.​version | External version of the service specification. Data type: String Table: In the external_version field of the Service Specification \[sn_prd_pm_service_specification\] table. |
| validFor | Date range the specification is valid for. Data type: Object "validFor": { "endDateTime": "String", "startDateTime": "String" } |
| validFor.​endDateTime | End date of the specification. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| validFor.​startDateTime | Start date of the specification. Data type: String Format: YYYY-MM-DD HH:mm:SS |
| version | External version of the product specification. Data type: String Table: In the external_version field of the Product Specification \[sn_prd_pm_product_specification\] table. |
[ ]

This example creates a product specification record with the specified values.

    curl --location --request POST "https://instance.service-now.com/api/sn_tmf_api/catalogmanagement/productSpecification" \
    --header "Content-Type: application/json" \
    --data-raw '{
      "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "href": "/api/sn_tmf_api/catalogmanagement/productSpecification/cfe5ef6a53702010cd6dddeeff7b12f6",
      "name": "SD-WAN Service Package",
      "displayName": "SD-WAN Service Package v3",
      "version": "",
      "internalVersion": "3",
      "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "description": "SD WAN Service Package",
      "lastUpdate": "2027-10-11 06:58:12",
      "isBundle": true,
      "validFor": {
        "startDateTime": "2029-02-05",
        "endDateTime": ""
      },
      "serviceSpecification": [],
      "productSpecificationRelationship": [
        {
          "id": "216663aa53702010cd6dddeeff7b12b5",
          "name": "SD-WAN Controller",
          "version": "",
          "internalVersion": "1",
          "internalId": "216663aa53702010cd6dddeeff7b12b5",
          "type": "Service",
          "validFor": {
            "startDateTime": "2025-01-24",
            "endDateTime": ""
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "1",
            "numberSpecRelUpperLimit": "1"
          }
        },
        {
          "id": "39b627aa53702010cd6dddeeff7b1202",
          "name": "SD-WAN Edge Device",
          "version": "",
          "internalVersion": "2",
          "internalId": "39b627aa53702010cd6dddeeff7b1202",
          "type": "Service",
          "validFor": {
            "startDateTime": "2026-06-05",
            "endDateTime": "2031-07-05"
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "2",
            "numberSpecRelUpperLimit": "4"
          }
        },
        {
          "id": "a6514bd3534560102f18ddeeff7b1247",
          "name": "SD-WAN Security",
          "version": "",
          "internalVersion": "2",
          "internalId": "a6514bd3534560102f18ddeeff7b1247",
          "type": "Service",
          "validFor": {
            "startDateTime": "2026-06-03",
            "endDateTime": "2031-07-05"
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "4",
            "numberSpecRelUpperLimit": "20"
          }
        }
      ],
      "resourceSpecification": [],
      "productSpecCharacteristic": [
        {
          "productSpecCharacteristicValue": [
            {
              "value": "1",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.25",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.01",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.5",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Down Time",
          "description": "Down Time",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:36:15"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "500 Mbps",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "5 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "1 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Bandwidth",
          "description": "Bandwidth",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:32:11"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "4 hrs",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 hrs",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "1 hr",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Time to Restore (TTR)",
          "description": "Time to Restore (TTR)",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:37:25"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "1 hr",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 hrs",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "4 hrs",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Mean Time to Restore (MTR)",
          "description": "Mean Time to Restore (MTR)",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:39:05"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "No",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Yes",
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Application Flow Backup",
          "description": "Application Flow Backup",
          "valueType": "yes_no",
          "validFor": {
            "startDatetime": "2027-10-11 02:30:39"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "99.00",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.50",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.75",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.99",
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Up Time",
          "description": "Up time",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:34:30"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "No",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Yes",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Application Encryption",
          "description": "Application Encryption",
          "valueType": "yes_no",
          "validFor": {
            "startDatetime": "2027-10-11 02:29:08"
          }
        }
      ],
      "status": "published"
    }'

    --user 'username':'password'

Response body.

    {
      "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "href": "/api/sn_tmf_api/catalogmanagement/productSpecification/cfe5ef6a53702010cd6dddeeff7b12f6",
      "name": "SD-WAN Service Package",
      "displayName": "SD-WAN Service Package v3",
      "version": "",
      "internalVersion": "3",
      "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "description": "SD WAN Service Package",
      "lastUpdate": "2027-10-11 06:58:12",
      "isBundle": true,
      "validFor": {
        "startDateTime": "2029-02-05",
        "endDateTime": ""
      },
      "serviceSpecification": [],
      "productSpecificationRelationship": [
        {
          "id": "216663aa53702010cd6dddeeff7b12b5",
          "name": "SD-WAN Controller",
          "version": "",
          "internalVersion": "1",
          "internalId": "216663aa53702010cd6dddeeff7b12b5",
          "type": "Service",
          "validFor": {
            "startDateTime": "2025-01-24",
            "endDateTime": ""
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "1",
            "numberSpecRelUpperLimit": "1"
          }
        },
        {
          "id": "39b627aa53702010cd6dddeeff7b1202",
          "name": "SD-WAN Edge Device",
          "version": "",
          "internalVersion": "2",
          "internalId": "39b627aa53702010cd6dddeeff7b1202",
          "type": "Service",
          "validFor": {
            "startDateTime": "2026-06-05",
            "endDateTime": "2031-07-05"
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "2",
            "numberSpecRelUpperLimit": "4"
          }
        },
        {
          "id": "a6514bd3534560102f18ddeeff7b1247",
          "name": "SD-WAN Security",
          "version": "",
          "internalVersion": "2",
          "internalId": "a6514bd3534560102f18ddeeff7b1247",
          "type": "Service",
          "validFor": {
            "startDateTime": "2026-06-03",
            "endDateTime": "2031-07-05"
          },
          "relationshipType": "bundles",
          "ProdSpecRelationshipOption": {
            "numberSpecRelLowerLimit": "1",
            "numberSpecRelDefault": "4",
            "numberSpecRelUpperLimit": "20"
          }
        }
      ],
      "resourceSpecification": [],
      "productSpecCharacteristic": [
        {
          "productSpecCharacteristicValue": [
            {
              "value": "1",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.25",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.01",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "0.5",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Down Time",
          "description": "Down Time",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:36:15"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "500 Mbps",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "5 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "1 Gbps",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Bandwidth",
          "description": "Bandwidth",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:32:11"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "4 hrs",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 hrs",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "1 hr",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Time to Restore (TTR)",
          "description": "Time to Restore (TTR)",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:37:25"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "1 hr",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "2 hrs",
              "isMandatory":true,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "4 hrs",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Mean Time to Restore (MTR)",
          "description": "Mean Time to Restore (MTR)",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:39:05"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "No",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Yes",
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Application Flow Backup",
          "description": "Application Flow Backup",
          "valueType": "yes_no",
          "validFor": {
            "startDatetime": "2027-10-11 02:30:39"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "99.00",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.50",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.75",
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "99.99",
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Up Time",
          "description": "Up time",
          "valueType": "choice",
          "validFor": {
            "startDatetime": "2027-10-11 02:34:30"
          }
        },
        {
          "productSpecCharacteristicValue": [
            {
              "value": "No",
              "isMandatory":true,
              "isDefault":true,
              "validFor": {
                "startDateTime": ""
              }
            },
            {
              "value": "Yes",
              "isMandatory":false,
              "isDefault":false,
              "validFor": {
                "startDateTime": ""
              }
            }
          ],
          "name": "Application Encryption",
          "description": "Application Encryption",
          "valueType": "yes_no",
          "validFor": {
            "startDatetime": "2027-10-11 02:29:08"
          }
        }
      ],
      "status": "published"
    }'


