--- title: Product Inventory Open API description: The Product Inventory Open API provides endpoints to create and retrieve product inventories.Deletes a specified product inventory record.Retrieves a list of all product inventories.Retrieves a specified product inventory record.Retrieves a list of all product inventories.Retrieves a product inventory.Updates a specified product inventory record.Creates a product inventory record.Creates a product inventory. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/api-reference/rest-apis/product-inventory-open-api.html release: australia product: REST APIs classification: rest-apis topic_type: concept last_updated: "2026-03-12" reading_time_minutes: 46 breadcrumb: [REST API reference, API reference, API implementation and reference] --- # Product Inventory Open API The Product Inventory Open API provides endpoints to create and retrieve product inventories. Use this API to manage product inventory information between external systems and the ServiceNow AI Platform. This API is included in the Product Inventory Advanced application, which is available on the ServiceNow Store. This API is provided within the `sn_prd_invt` namespace. The calling user must have the sn\_prd\_invt.product\_inventory\_integrator role. This API creates and updates data in the following tables. - Product Characteristics \[sn\_prd\_invt\_product\_characteristics\] - Product Inventory \[sn\_prd\_invt\_product\_inventory\] - Product Model \[cmdb\_model\] - Product Model Characteristic \[sn\_prd\_pm\_product\_model\_characteristic\] The Product Inventory Open API is a ServiceNow® implementation of the TM Forum Product Inventory Management API REST specification. This implementation is based on the [TMF637 Product Inventory Management API User Guide v5.0.0](https://www.tmforum.org/resources/specifications/tmf637-product-inventory-management-api-user-guide-v5-0-0/), September 2024. The Product Inventory Open API is conformance certified by TM Forum. \[Omitted image "tmf-conformance.png"\] Alt text: TMF conformance logo **Note:** By default, POST /sn\_prd\_invt/product accepts and returns a single JSON object. `GET` endpoints return **status** as a display label, such as `Installation pending`, and the product reference field is named **product**. To change the default behavior, create a system property **sn\_prd\_invt.tmf637.version4** and set the value to `true`. When `true`, POST /sn\_prd\_invt/product accepts and returns a JSON array. `GET` endpoints return **status** as an internal value, such as `installation_pending`, and the product reference field is named **productId**. Set the property to `false` to return to the default behavior. **Parent Topic:**[REST API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/api-rest.md) ## Product Inventory Open API – DELETE /sn\_prd\_invt/order/product/\{id\} Deletes a specified product inventory record. ### URL format Default URL: `/api/sn_prd_invt/order/product/{id}` ### Supported request parameters
Name Description
id Sys\_id of the product inventory to delete.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
|Name|Description| |----|-----------| |None| | |Name|Description| |----|-----------| |None| | ### Headers The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md). |Header|Description| |------|-----------| |Accept|Data format of the response body. Only supports **application/json**.| |Header|Description| |------|-----------| |None| | ### Status codes The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md). |Status code|Description| |-----------|-----------| |204|No Content. Record successfully deleted.| |400|Bad Request. A bad request type or malformed request was detected.| ### Response body parameters \(JSON\) |Name|Description| |----|-----------| |None|| ### cURL request This example deletes a product inventory record. ``` curl "https://instance.service-now.com/api/sn_prd_invt/product/01b2f9972b8c72d07a83f395f291bf53" \ --request DELETE \ --header "Accept:application/json" \ --user 'username':'password' ``` No response body is returned when a product inventory record is successfully deleted. ## Product Inventory Open API - GET /sn\_prd\_invt/product Retrieves a list of all product inventories. ### URL format Default URL: `api/sn_prd_invt/product` ### Supported request parameters |Name|Description| |----|-----------| |None| |
Name Description
customer Filter product inventories by customer. Only product offerings with a customer sys\_id or external ID matching the value of this parameter are returned in the response.Data type: String Default: Don't filter by customer.
fields List of fields to return in the response. Invalid fields are ignored.Data type: String Default: Return all fields.
limit Maximum number of records to return. For requests that exceed this number of records, use the **offset** parameter to paginate record retrieval. Data type: Number Default: 20 Maximum: 100
offset Starting index at which to begin retrieving records. 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
place Filter product inventories by location.Data type: Object ``` "place": { "id": "String" } ```
place.id Sys\_id or external id of the location associated with the product inventory record.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
status Filter product inventories by status. Only product inventories with a status matching the value of this parameter are returned in the response.Data type: String Default: Don't filter by status.
|Name|Description| |----|-----------| |None| | ### Headers The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md). |Header|Description| |------|-----------| |None| |
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**.
X-Total-Count For paginated queries, this header specifies the total number of records available on the server.
### Status codes The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).
Status code Description
200 Request successfully processed. Full resource returned in response \(no pagination\).
206 Partial resource returned in response \(with pagination\).
400 Bad request. Possible reasons: - Invalid path parameter - Invalid URI
404 Record not found. No records matching the query parameters are found in the table.
### Response body parameters \(JSON\)
Name Description
href Relative link to the product inventory record.Data type: String
id Sys\_id of the product inventory.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
externalId External ID of the product inventory.Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\] Data type: String
name Name of the product inventory.Data type: String
place Location of the product.Data type: Array ``` "place": [ { "id": "String", "name": "String" } ] ```
place.id Location sys\_id or external id.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
place.name Name of the location.Data type: String Table: Location \[cmn\_location\] Field: name
productCharacteristic List of product characteristics.For additional information on product characteristics, see [Create a product offering category](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/order-management/som-create-product-offering-category.md). Data type: Array of Objects ``` "productCharacteristic": [ { "name": "String", "value": "String", "valueType": "String" } ] ```
productCharacteristic.name Name of the characteristic.Data type: String
productCharacteristic.value Value of the characteristic.Data type: String
productCharacteristic.valueType Type of characteristic value.Accepted values: - address - array.date - array.datetime - array.decimal - array.integer - array.object - array.single\_line\_text - attachment - checkbox - choice - date - date\_time - decimal - duration - email - integer - object - single\_line\_text - yes\_no Data type: String
productId Sys\_id of the product model for the product inventory.Data type: String Table: Product Model \[cmdb\_model\]
productOffering Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ```
productOffering.id Initial version or external ID of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: initial\_version or external\_id
productOffering.internalId Internal version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: internal\_version
productOffering.internalVersion Version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: version
productOffering.name Name of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.version External version of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: external\_version
productPrice Returns an empty array.Data type: Array
productRelationship List of related products.Data type: Array of Objects ``` "productRelationship": [ { "productId": "String", "relationshipType": "String" } ] ```
productRelationship.productId Sys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipType Type of relationship.Data type: String
productSpecification Product specification for the product.Data type: Object ``` "productSpecification": { "id": "String", "internalId": "String", "internalVersion": "String", "version": "String" } ```
productSpecification.id Initial version or external ID of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: internal\_version or external\_id
productSpecification.internalId Initial version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: initial\_version
productSpecification.internalVersion Version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: version
productSpecification.version External version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: external\_version
realizingResource Resource that realizes the product. The realizing resource is a child product inventory of this product inventory.Data type: Object ``` "realizingResource": { "id": "String", "name": "String", "type": "String" } ```
realizingResource.id Sys\_id of the realizing resource. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.name Name of the realizing resource. Data type: String
realizingResource.type Type of the realizing resource.Valid value: child Data type: String
realizingService Service that realizes the product. The realizing service is a child product inventory of this product inventory.Data type: Object ``` "realizingService": { "id": "String", "name": "String", "type": "String" } ```
realizingService.id Sys\_id of the realizing service. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.name Name of the realizing service. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.type Type of the realizing service.Valid value: child Data type: String
relatedParty List of parties associated with the ticket.Data type: Array of Objects ``` "relatedParty": [ { "id": "String", "@referredType": "String" } ] ```
relatedParty.id Sys\_id of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_consumer\]
relatedParty.@referredType Type of customer.Possible values: - Consumer - Customer - CustomerContact Data type: String
state Current state of the product.Data type: String
### cURL request This example retrieves all product inventories. ``` curl --location --request GET "https://instance.service-now.com/api/sn_prd_invt/product" \ --user 'username':'password' ``` Response body. ``` [ { "id": "23562ee2e445b5443110f87235736620", "externalId": "LOC-SF-HQ-2026", "relatedParty": [ { "id": "9e2fd2ee11b43110f877366201dea674", "name": "Startech svcs", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "dca96eaa11f43110f877366201dea6c1", "name": "Alex Star", "@type": "RelatedParty", "@referredType": "CustomerContact" } ], "name": "test_098 PI0001002", "productSpecification": { "id": "test_123", "name": "test_123", "version": "", "internalVersion": "1", "internalId": "c9b6a51221590f50f877be98c79c230b", "@type": "productSpecificationRef" }, "status": "installation_pending", "productOffering": { "id": "test_123", "name": "test_123", "version": "", "internalVersion": "1", "internalId": "0308a5d221590f50f877be98c79c2303", "@type": "productOfferingRef" }, "productId": "", "place": [ { "id": "6774fee611383110f877366201dea64f", "name": "222 Star St, Santa Clara, CA 94560" } ], "productRelationship": [], "realizingService": [], "realizingResource": [], "horizontalRelationship": [], "@type": "Product", "productPrice": [], "href": "/api/sn_prd_invt/product/testt21313", "billingAccount": "Not Specified." }, { "id": "02917c3577b301108e191e599a5a99cf", "relatedParty": [ { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" } ], "name": "SD WAN Optimization Service PI0000045", "productSpecification": { "id": "16d79ec3532520103b6bddeeff7b12a6", "name": "SD WAN Optimization Service", "version": "", "internalVersion": "1", "internalId": "16d79ec3532520103b6bddeeff7b12a6", "@type": "productSpecificationRef" }, "status": "active", "productOffering": { "id": "ff93e80477f301108b2a1e599a5a9901", "name": "Premium SD-WAN Offering", "version": "", "internalVersion": "2", "internalId": "69017a0f536520103b6bddeeff7b127d", "@type": "productOfferingRef" }, "productId": "28adfdf15b7520102dff5e92dc81c75d", "productCharacteristic": [ { "name": "SSL Optimization", "valueType": "Choice", "value": "", "@type": "productCharacteristicRef" }, { "name": "CIFS Optimization", "valueType": "Choice", "value": "", "@type": "productCharacteristicRef" } ], "productRelationship": [], "realizingService": [ { "id": "42917c3577b301108e191e599a5a99ee", "name": "Deduplication and Compression PI0000046", "@type": "realizingServiceRef" } ], "realizingResource": [], "horizontalRelationship": [], "@type": "Product", "productPrice": [], "href": "/api/sn_prd_invt/product/02917c3577b301108e191e599a5a99cf", "billingAccount": "Not Specified." }, { "id": "test_post_new_002", "relatedParty": [ { "id": "1d253ada77250110531ba8e48f5a996d", "name": "Valeire Hunt", "@type": "RelatedParty", "@referredType": "Consumer" } ], "name": "test_123 PI0001031 PI0001051", "productSpecification": { "id": "268b81f621e9c314f877be98c79c2362", "name": "test_invt", "version": "", "internalVersion": "1", "internalId": "268b81f621e9c314f877be98c79c2362", "@type": "productSpecificationRef" }, "status": "active", "productOffering": { "id": "", "name": "", "version": "", "internalVersion": "", "internalId": "", "@type": "productOfferingRef" }, "productId": "027ddeb13710200044e0bfc8bcbe5d00", "place": [ { "id": "729fd006212d0fd0f877be98c79c23a8", "name": "123" } ], "productRelationship": [], "realizingService": [], "realizingResource": [ { "id": "c6d1b09f21edc714f877be98c79c236b", "name": "test_hunt_2 PI0001047", "@type": "realizingResourceRef" } ], "horizontalRelationship": [], "@type": "Product", "productPrice": [], "href": "/api/sn_prd_invt/product/test_post_new_002", "billingAccount": "Not Specified." } ] ``` ## Product Inventory Open API - GET /sn\_prd\_invt/product/\{id\} Retrieves a specified product inventory record. ### URL format Default URL: `/api/sn_prd_invt/product/{id}` ### Supported request parameters
Name Description
id Sys\_id of the product inventory to retrieve.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
Name Description
customer Filter product inventories by customer. Only product offerings with a customer sys\_id or external ID matching the value of this parameter are returned in the response.Data type: String Default: Don't filer y customer.
fields List of fields to return in the response. Invalid fields are ignored.Data type: String Default: All fields returned.
place Filter product inventories by location.Data type: Object ``` "place": { "id": "String" } ```
place.id Sys\_id or external id of the location associated with the product inventory record.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
status Filter product inventories by status. Only product inventories with a status matching the value of this parameter are returned in the response.Data type: String Default: Don't filter by status.
|Name|Description| |----|-----------| |None| | ### Headers The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md). |Header|Description| |------|-----------| |None| | |Header|Description| |------|-----------| |Content-Type|Data format of the response body. Only supports **application/json**.| ### Status codes The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).
Status code Description
200 Request successfully processed.
400 Bad Request. Could be any of the following reasons: - Invalid path parameter - Invalid URI
404 Record not found. Record associated with the ID is not found in the table.
### Response body parameters \(JSON\)
Name Description
billingAccount Billing account of the product inventory record.Data type: String
externalId External ID of the product inventory.Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\] Data type: String
href Relative link to the product inventory record.Data type: String
id Sys\_id of the product inventoryData type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
name Name of the product inventory.Data type: String
place Location of the product.Data type: Array ``` "place": [ { "id": "String", "name": "String" } ] ```
place.id Location sys\_id or external id.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
place.name Name of the location.Data type: String Table: Location \[cmn\_location\] Field: name
productCharacteristic List of product characteristics.For additional information on product characteristics, see [Create a product offering category](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/order-management/som-create-product-offering-category.md). Data type: Array of Objects ``` "productCharacteristic": [ { "name": "String", "value": "String", "valueType": "String" } ] ```
productCharacteristic.name Name of the characteristic.Data type: String
productCharacteristic.value Value of the characteristic.Data type: String
productCharacteristic.valueType Type of characteristic value.Accepted values: - address - array.date - array.datetime - array.decimal - array.integer - array.object - array.single\_line\_text - attachment - checkbox - choice - date - date\_time - decimal - duration - email - integer - object - single\_line\_text - yes\_no Data type: String
productId Sys\_id of the product model for the product inventory.Data type: String Table: Product Model \[cmdb\_model\]
productOffering Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ```
productOffering.id Initial version or external ID of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: initial\_version or external\_id
productOffering.internalId Internal version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: internal\_version
productOffering.internalVersion Version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: version
productOffering.name Name of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.version External version of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: external\_version
productPrice Returns an empty array.Data type: Array
productRelationship List of related products.Data type: Array of Objects ``` "productRelationship": [ { "productId": "String", "relationshipType": "String" } ] ```
productRelationship.productId Sys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipType Type of relationship.Data type: String
productSpecification Product specification for the product.Data type: Object ``` "productSpecification": { "id": "String", "internalId": "String", "internalVersion": "String", "version": "String" } ```
productSpecification.id Initial version or external ID of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: internal\_version or external\_id
productSpecification.internalId Initial version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: initial\_version
productSpecification.internalVersion Version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: version
productSpecification.version External version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: external\_version
realizingResource Resource that realizes the product. The realizing resource is a child product inventory of this product inventory.Data type: Object ``` "realizingResource": { "id": "String", "name": "String", "type": "String" } ```
realizingResource.id Sys\_id of the realizing resource. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.name Name of the realizing resource. Data type: String
realizingResource.type Type of the realizing resource.Valid value: child Data type: String
realizingService Service that realizes the product. The realizing service is a child product inventory of this product inventory.Data type: Object ``` "realizingService": { "id": "String", "name": "String", "type": "String" } ```
realizingService.id Sys\_id of the realizing service. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.name Name of the realizing service. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.type Type of the realizing service.Valid value: child Data type: String
relatedParty List of parties associated with the ticket.Data type: Array of Objects ``` "relatedParty": [ { "id": "String", "@referredType": "String" } ] ```
relatedParty.id Sys\_id of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_consumer\]
relatedParty.type Type of related party. Value is always `Related Party`.Data type: String
relatedParty.@referredType Type of customer, such as a customer or customer contact.Data type: String
status Current state of the product.Data type: String
### cURL request This example retrieves a specified product inventory. ``` curl -X GET 'https://instance.service-now.com/api/sn_prd_invt/product/037fd87ec3603010abc8b5183c40ddf2' \ --user 'username':'password' ``` Output: ``` { "id": "209aa30421710354f877be98c79c2364", "externalId": "LOC-SF-HQ-2026", "relatedParty": [ { "id": "1d253ada77250110531ba8e48f5a996d", "name": "Valeire Hunt", "@type": "RelatedParty", "@referredType": "Consumer" } ], "name": "trert_terewt PI0001072", "productSpecification": { "id": "e9f13b0421b10354f877be98c79c234e", "name": "test_wert", "version": "", "internalVersion": "1", "internalId": "e9f13b0421b10354f877be98c79c234e", "@type": "productSpecificationRef" }, "status": "active", "productOffering": { "id": "9732b34421b10354f877be98c79c2378", "name": "test_wert", "version": "", "internalVersion": "1", "internalId": "9732b34421b10354f877be98c79c2378", "@type": "productOfferingRef" }, "productId": "ed44fb4821b10354f877be98c79c23c9", "productCharacteristic": [ { "name": "ASN Information", "valueType": "Object", "value": { "ASN Type": "", "ASN": "65500", "Area": "42", "Downstream ASNs": [] }, "@type": "productCharacteristicRef" } ], "productRelationship": [], "realizingService": [ { "id": "848de83d21f18f54f877be98c79c2357", "name": "Premium SD-WAN Offering PI0001023 PI0001077", "@type": "realizingServiceRef" } ], "realizingResource": [ { "id": "286da0f921f18f54f877be98c79c23b3", "name": "SD WAN INVENTORY PI0001076", "@type": "realizingResourceRef" } ], "horizontalRelationship": [], "@type": "Product", "productPrice": [], "href": "/api/sn_prd_invt/product/209aa30421710354f877be98c79c2364", "billingAccount": "Not Specified." } ``` ## Product Inventory Open API - GET /sn\_prd\_invt/productinventory Retrieves a list of all product inventories. **Important:** Starting with the Tokyo release, this endpoint is deprecated. The new version of this endpoint is [Product Inventory Open API - GET /sn\_prd\_invt/product](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/product-inventory-open-api.md). ### URL format Default URL: `api/sn_prd_invt/productinventory` ### Supported request parameters |Name|Description| |----|-----------| |None| |
Name Description
customer Filter product inventories by customer. Only product offerings with a customer sys\_id or external ID matching the value of this parameter are returned in the response.Data type: String Default: Don't filter by customer.
fields List of fields to return in the response. Invalid fields are ignored.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
place Filter product inventories by location.Data type: Object ``` "place": { "id": "String" } ```
place.id Sys\_id or external id of the location associated with the product inventory record.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
status Filter product inventories by status. Only product inventories with a status matching the value of this parameter are returned in the response.Data type: String Default: Don't filter by inventory status.
|Name|Description| |----|-----------| |None| | ### Headers The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md). |Header|Description| |------|-----------| |None| |
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**.
X-Total-Count For paginated queries, this header specifies the total number of records available on the server.
### Status codes The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).
Status code Description
200 Request successfully processed. Full resource returned in response \(no pagination\).
206 Partial resource returned in response \(with pagination\).
400 Bad request. Possible reasons: - Invalid path parameter - Invalid URI
404 Record not found. No records matching the query parameters are found in the table.
### Response body parameters \(JSON\)
Name Description
externalId External ID of the product inventory.Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\] Data type: String
id Sys\_id of the product inventory.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
name Name of the product inventory.Data type: String
place Place associated with the product.Data type: Object ``` "place": { "id": "String", "name": "String" } ```
place.id Location sys\_id or external\_id of the product inventory.Table: Location \[cmn\_location\] Data: String
place.name Name of the location associated with the product inventory.Table: Location \[cmn\_location\] Data: String
productCharacteristic List of product characteristics.For additional information on product characteristics, see [Create a product offering category](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/order-management/som-create-product-offering-category.md). Data type: Array of Objects ``` "productCharacteristic": [ { "name": "String", "value": "String", "valueType": "String" } ] ```
productCharacteristic.name Name of the characteristic.Data type: String
productCharacteristic.value Value of the characteristic.Data type: String
productCharacteristic.valueType Type of characteristic value.Accepted values: - address - array.date - array.datetime - array.decimal - array.integer - array.object - array.single\_line\_text - attachment - checkbox - choice - date - date\_time - decimal - duration - email - integer - object - single\_line\_text - yes\_no Data type: String
productOffering Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "id": "String", "name": "String" } ```
productOffering.id Sys\_id of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.name Name of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productRelationship List of related products.Data type: Array of Objects ``` "productRelationship": [ { "productId": "String", "relationshipType": "String" } ] ```
productRelationship.productId Sys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipType Type of relationship.Data type: String
productSpecification Product specification for the product.Data type: Object ``` "productSpecification": { "id": "String" } ```
productSpecification.id Sys\_id of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\]
realizingResource Realizing resource.Data type: Object ``` "realizingResource": { "id": "String", "type": "String" } ```
realizingResource.id Sys\_id of the realizing resource.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.type Type of the realizing resource.Data type: String
realizingService Realizing service.Data type: Object ``` "realizingService": { "id": "String", "type": "String" } ```
realizingService.id Sys\_id of the realizing service.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.type Type of the realizing service.Data type: String
relatedParty List of parties associated with the ticket.Data type: Array of Objects ``` "relatedParty": [ { "id": "String", "@referredType": "String" } ] ```
relatedParty.id Sys\_id of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\] or Consumer \[csm\_consumer\]
relatedParty.@referredType Type of related party. Value is always `Related Party`.Data type: String
relatedParty.type Type of customer.Possible values: - consumer - customer - customerContact Data type: String
status Current state of the product.Data type: String
### cURL request This example retrieves all product inventories. ``` curl "https://instance.servicenow.com/api/sn_prd_invt/productinventory" \ --request GET \ --user 'username':'password' ``` Response body. ``` [ { "id": "075072aec3a83010abc8b5183c40dd44", "externalId": "LOC-SF-HQ-2026", "relatedParty": [ { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" } ], "name": "Firewall Administration PI0000300", "productSpecification": { "id": "31c5caff07266010a7955b7e0ad3006b", "name": "Firewall Administration" }, "status": "Active", "productOffering": { "id": "", "name": "" }, "place": { "id": "920cf6ac73d423002728660c4cf6a799", "name": "200 South James street,Atlanta, GA" }, "productCharacteristic": [ { "name": "Firewall Administration CPE Type", "valueType": "Choice", "value": "Physical" }, { "name": "Configuration and Policy backup", "valueType": "Choice", "value": "" }, { "name": "Firewall Administration CPE ID", "valueType": "Single Line Text", "value": "CPE123456789" }, { "name": "Remote CLI troubleshoot support", "valueType": "Choice", "value": "" }, { "name": "Firewall Administration CPE Model", "valueType": "Choice", "value": "9300 series" } ], "productRelationship": [], "realizingService": [], "realizingResource": [ { "id": "3546463307666010a7955b7e0ad3005d", "name": "Cisco Firewall Management system" } ] }, { "id": "0303a8ea74418510f877ca57242ff96d", "relatedParty": [ { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" } ], "name": "SD-WAN Edge Device PI0001114", "productSpecification": { "id": "39b627aa53702010cd6dddeeff7b1202", "name": "SD-WAN Edge Device" }, "status": "Installation Pending", "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "place": "", "productCharacteristic": [], "productRelationship": [], "realizingService": [ { "id": "bf65eadc1b7420106ba59acf034bcb57", "name": "SD-WAN Routing" }, { "id": "16d79ec3532520103b6bddeeff7b12a6", "name": "SD WAN Optimization Service" }, { "id": "16d79ec3532520103b6bddeeff7b12a6", "name": "SD WAN Optimization Service" }, { "id": "bf65eadc1b7420106ba59acf034bcb57", "name": "SD-WAN Routing" }, { "id": "bf65eadc1b7420106ba59acf034bcb57", "name": "SD-WAN Routing" }, { "id": "bf65eadc1b7420106ba59acf034bcb57", "name": "SD-WAN Routing" } ], "realizingResource": [ { "id": "493fa60b536520103b6bddeeff7b12b6", "name": "Customer Premise SD-WAN Router" } ] } ] ``` ## Product Inventory Open API - GET /sn\_prd\_invt/productinventory/\{inventoryId\} Retrieves a product inventory. **Important:** Starting with the Tokyo release, this endpoint is deprecated. The new version of this endpoint is [Product Inventory Open API - GET /sn\_prd\_invt/product/\{id\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/product-inventory-open-api.md). ### URL format Default URL: `/api/sn_prd_invt/productinventory/{inventoryId}` ### Supported request parameters
Name Description
inventoryId Sys\_id of the product inventory to retrieve.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
Name Description
customer Filter product inventories by customer. Only product offerings with a customer sys\_id or external ID matching the value of this parameter are returned in the response.Data type: String
fields List of fields to return in the response. Invalid fields are ignored.Data type: String Default: All fields returned.
place Filter product inventories by location.Data type: Object ``` "place": { "id": "String" } ```
place.id Sys\_id or external id of the location associated with the product inventory record.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
status Filter product inventories by status. Only product inventories with a status matching the value of this parameter are returned in the response.Data type: String
|Name|Description| |----|-----------| |None| | ### Headers The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md). |Header|Description| |------|-----------| |None| | |Header|Description| |------|-----------| |Content-Type|Data format of the response body. Only supports **application/json**.| ### Status codes The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).
Status code Description
200 Request successfully processed.
400 Bad Request. Could be any of the following reasons: - Invalid path parameter - Invalid URI
404 Record not found. Record associated with the ID is not found in the table.
### Response body parameters \(JSON\)
Name Description
externalId External ID of the product inventory.Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\] Data type: String
id Sys\_id of the product inventory Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
name Name of the product inventory.Data type: String
place Place associated with the product.Data type: Object ``` "place": { "id": "String", "name": "String" } ```
place.id Location sys\_id or external\_id of the product inventory.Table: Location \[cmn\_location\] Data: String
place.name Name of the location associated with the product inventory.Table: Location \[cmn\_location\] Data: String
productCharacteristic List of product characteristics.For additional information on product characteristics, see [Create a product offering category](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/order-management/som-create-product-offering-category.md). Data type: Array of Objects ``` "productCharacteristic": [ { "name": "String", "value": "String", "valueType": "String" } ] ```
productCharacteristic.name Name of the characteristic.Data type: String
productCharacteristic.value Value of the characteristic.Data type: String
productCharacteristic.valueType Type of characteristic value.Accepted values: - address - array.date - array.datetime - array.decimal - array.integer - array.object - array.single\_line\_text - attachment - checkbox - choice - date - date\_time - decimal - duration - email - integer - object - single\_line\_text - yes\_no Data type: String
productOffering Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "id": "String", "name": "String" } ```
productOffering.id Sys\_id of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.name Name of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productRelationship List of related products.Data type: Array of Objects ``` "productRelationship": [ { "productId": "String", "relationshipType": "String" } ] ```
productRelationship.productId Sys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipType Type of relationship.Data type: String
productSpecification Product specification for the product.Data type: Object ``` "productSpecification": { "id": "String" } ```
productSpecification.id Sys\_id of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\]
realizingResource Realizing resource.Data type: Object ``` "realizingResource": { "id": "String", "type": "String" } ```
realizingResource.id Sys\_id of the realizing resource.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.type Type of the realizing resource.Data type: String
realizingService Realizing service.Data type: Object ``` "realizingService": { "id": "String", "type": "String" } ```
realizingService.id Sys\_id of the realizing service.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.type Type of the realizing service.Data type: String
relatedParty List of parties associated with the ticket.Data type: Array of Objects ``` "relatedParty": [ { "id": "String", "@referredType": "String" } ] ```
relatedParty.id Sys\_id of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_consumer\]
relatedParty.@referredType Type of related party. Value is always `Related Party`.Data type: String
relatedParty.type Type of customer.Possible values: - consumer - customer - customerContact Data type: String
status Current state of the product.Data type: String
### cURL request This example retrieves a product inventory for an SD-WAN service package. ``` curl --location --request GET 'https:// instance.servicenow.com/api/sn_prd_invt/productinventory/074450fc74918d10f877ca57242ff9e3' \ --user 'username':'password' ``` Output: ``` { "id": "074450fc74918d10f877ca57242ff9e3", "externalId": "LOC-SF-HQ-2026", "relatedParty": [ { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" } ], "name": "SD-WAN Service Package PI0001576", "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "name": "SD-WAN Service Package" }, "status": "Installation Pending", "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "place": "", "productCharacteristic": [], "productRelationship": [ { "id": "a74490fc74918d10f877ca57242ff942", "name": "SD-WAN Edge Device PI0001582", "relationshipType": "Bundles" }, { "id": "b85414fc74918d10f877ca57242ff90e", "name": "SD-WAN Controller PI0001602", "relationshipType": "Bundles" }, { "id": "d74490fc74918d10f877ca57242ff907", "name": "SD-WAN Security PI0001577", "relationshipType": "Bundles" } ], "realizingService": [], "realizingResource": [] } ``` ## Product Inventory Open API – PATCH /sn\_prd\_invt/order/product/\{id\} Updates a specified product inventory record. ### URL format Default URL: `/api/sn_prd_invt/order/product/{id}` ### Supported request parameters
Name Description
id Sys\_id of the product inventory to update.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
|Name|Description| |----|-----------| |None| |
Name Description
bundle Flag that indicates whether the product inventory record is part of a bundled product.Valid values: - true: Is part of a bundle. - false: Isn't part of a bundle. Data type: Boolean
name Name of the product inventory.Data type: String
place Location of the product.Data type: Array ``` "place": [ { "id": "String", "name": "String" } ] ```
place.id Location sys\_id or external id.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
place.name Name of the location.Data type: String Table: Location \[cmn\_location\] Field: name
productOffering Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "@referredType": "String", "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "status": "String", "version": "String" } ```
productOffering.@referredType This value is always `ProductOffering`.Data type: String
productOffering.id Initial version or external ID of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: initial\_version or external\_id
productOffering.internalId Internal version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: internal\_version
productOffering.internalVersion Version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: version
productOffering.name Name of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: name
productOffering.status Status of the product offering.Possible values: - archived - draft - published - retired Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: status
productOffering.version External version of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: external\_version
relatedParty List of parties associated with the ticket.Data type: Array of Objects ``` "relatedParty": [ { "@referredType": "String", "@type": "String", "id": "String", "name": "String" } ] ```
relatedParty.@referredType Type of related party.Possible values: - Consumer - Customer - CustomerContact Data type: String
relatedParty.@type This value is always `RelatedParty`.Data type: String
relatedParty.id Sys\_id of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_consumer\]
relatedParty.name Name of the of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_consumer\]
### 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://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md). |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**.| |Header|Description| |------|-----------| |None| | ### Status codes The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md). |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.| ### Response body parameters \(JSON\)
Name Description
bundle Flag that indicates whether the product inventory record is part of a bundled product.Valid values: - true: Is part of a bundle. - false: Isn't part of a bundle. Data type: Boolean
name Name of the product inventory.Data type: String
place Location of the product.Data type: Array ``` "place": [ { "id": "String", "name": "String" } ] ```
place.id Location sys\_id or external id.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
place.name Name of the location.Data type: String Table: Location \[cmn\_location\] Field: name
productOffering Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "@referredType": "String", "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "status": "String", "version": "String" } ```
productOffering.@referredType This value is always `ProductOffering`.Data type: String
productOffering.id Initial version or external ID of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: initial\_version or external\_id
productOffering.internalId Internal version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: internal\_version
productOffering.internalVersion Version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: version
productOffering.name Name of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: name
productOffering.status Status of the product offering.Possible values: - archived - draft - published - retired Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: status
productOffering.version External version of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: external\_version
relatedParty List of parties associated with the ticket.Data type: Array of Objects ``` "relatedParty": [ { "@referredType": "String", "@type": "String", "id": "String", "name": "String" } ] ```
relatedParty.@referredType Type of related party.Possible values: - Consumer - Customer - CustomerContact Data type: String
relatedParty.@type This value is always `RelatedParty`.Data type: String
relatedParty.id Sys\_id of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_consumer\]
relatedParty.name Name of the of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_consumer\]
### cURL request This example updates a product inventory record. ``` curl "https://instance.service-now.com/api/sn_prd_invt/product/036e506510322250f8777d910acbd77f" \ --request PATCH \ --header "Accept:application/json" \ --header "Content-Type:application/json" \ --data "{ \"name\": \"Internet Plan\", \"productOffering\": { \"@referredType\": \"ProductOffering\", \"name\": \"Premium SD-WAN Offering\", \"id\": \"0361dd9fd0a63110f8770dbf976be16f\" }, \"relatedParty\": [ { \"@referredType\": \"CustomerContact\", \"@type\": \"RelatedParty\", \"name\": \"Sally Thomas\", \"id\": \"f3af54c413651200042ab3173244b053\" }, { \"@referredType\": \"Customer\", \"@type\": \"RelatedParty\", \"name\": \"Funco Intl\", \"id\": \"ffc68911c35420105252716b7d40dd55\" } ], \"bundle\": false, \"place\": [ { \"id\": \"25ab9c4d0a0a0bb300f7dabdc0ca7c1c\", \"name\": \"100 South Charles Street, Baltimore, MD\" } ] }" \ --user 'username':'password' ``` Response body. ``` { "name": "Internet Plan", "productOffering": { "@referredType": "ProductOffering", "name": "Premium SD-WAN Offering", "id": "0361dd9fd0a63110f8770dbf976be16f", "internalVersion": "1", "version": "", "status": "published", "internalId": "0361dd9fd0a63110f8770dbf976be16f" }, "relatedParty": [ { "@referredType": "CustomerContact", "@type": "RelatedParty", "name": "Sally Thomas", "id": "f3af54c413651200042ab3173244b053" }, { "@referredType": "Customer", "@type": "RelatedParty", "name": "Funco Intl", "id": "ffc68911c35420105252716b7d40dd55" } ], "bundle": false, "place": [ { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "name": "100 South Charles Street, Baltimore, MD" } ], "productPrice": [], "id": "036e506510322250f8777d910acbd77f", "href": "/api/sn_prd_invt/product/036e506510322250f8777d910acbd77f" } ``` ## Product Inventory Open API - POST /sn\_prd\_invt/product Creates a product inventory record. ### URL format Default URL: `/api/sn_prd_invt/product` ### Supported request parameters |Name|Description| |----|-----------| |None| | |Name|Description| |----|-----------| |None| |
Name Description
bundle Flag that indicates whether the product inventory record is part of a bundled product.Valid values: - true: Is part of a bundle. - false: Isn't part of a bundle. Data type: Boolean Default: false
isBundle Flag that indicates whether the product inventory record is part of a bundled product.Valid values: - true: Is part of a bundle. - false: Isn't part of a bundle. Data type: Boolean Default: false
name Required. Name of the product inventory.Data type: String
pid Unique identifier for the product inventory from the external system.Data type: String Default: Blank string
productCharacteristic List of product characteristics.For additional information on product characteristics, see [Create a product offering category](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/order-management/som-create-product-offering-category.md). Data type: Array of Objects ``` "productCharacteristic": [ { "name": "String", "value": "String", "valueType": "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
productCharacteristic.valueType Type of characteristic value.Accepted values: - address - array.date - array.datetime - array.decimal - array.integer - array.object - array.single\_line\_text - attachment - checkbox - choice - date - date\_time - decimal - duration - email - integer - object - single\_line\_text - yes\_no Data type: String
productOffering Required. Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" } ```
productOffering.id Required. Initial\_version or external\_id of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.internalVersion Version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: version
productOffering.name Name of the product offering.Data type: String Default: Blank string Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.version External version of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: external\_version
productRelationship List of related products.Data type: Array of Objects ``` "productRelationship": [ { "productId": "String", "relationshipType": "String" } ] ```
productRelationship.productId Required if using the **productRelationship** parameter. Sys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipType Type of relationship. The only valid value is `child`. Data type: String Default: Blank string
productSpecification Required. Product specification for the product.Data type: Object ``` "productSpecification": { "id": "String", "internalVersion": "String", "version": "String" } ```
productSpecification.id Required. Initial\_version or external\_id of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\]
productSpecification.internalVersion Version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: version
productSpecification.version External version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: external\_version
realizingResource Resource that realizes the product. The realizing resource is a child product inventory of this product inventory.Data type: Object ``` "realizingResource": { "id": "String", "name": "String", "type": "String" } ```
realizingResource.id Required if using the **realizingResource** parameter. Sys\_id of the realizing resource. Data type: String
realizingResource.type Type of the realizing resource.Valid value: child Data type: String
realizingService Service that realizes the product. The realizing service is a child product inventory of this product inventory.Data type: Object ``` "realizingService": { "id": "String", "name": "String", "type": "String" } ```
realizingService.id Required if using the **realizingService** parameter. Sys\_id of the realizing service. Data type: String
realizingService.type Type of the realizing service.Valid value: child Data type: String
relatedParty List of parties associated with the ticket.Data type: Array of Objects ``` "relatedParty": [ { "id": "String", "@referredType": "String" } ] ```
relatedParty.@referredType Type of customer.Possible values: - consumer - customer - customer\_contact Data type: String Default: Blank string
relatedParty.id Required if using the **relatedParty** parameter. Sys\_id of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_consumer\]
state Current state of the product.Possible values: - active - change\_pending - inactivation\_pending - inactive - installation\_pending Data type: String Default: installation\_pending
### 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://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md). |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**.| |Header|Description| |------|-----------| |Content-Type|Data format of the response body. Only supports **application/json**.| ### Status codes The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).
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>
### Response body parameters \(JSON\)
Name Description
bundle Flag that indicates whether the product inventory record is part of a bundled product.Valid values: - true: Is part of a bundle. - false: Isn't part of a bundle. Data type: Boolean
href Relative link to the product inventory record.Data type: String
id Sys\_id of the product inventory.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
isBundle Flag that indicates whether the product inventory record is part of a bundled product.Valid values: - true: Is part of a bundle. - false: Isn't part of a bundle. Data type: Boolean
name Name of the product inventory.Data type: String
pid Unique identifier for the product inventory from the external system.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
productOffering Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" } ```
productOffering.id Initial version or external ID of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: initial\_version or external\_id
productOffering.internalId Internal version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: internal\_version
productOffering.internalVersion Version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: version
productOffering.name Name of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.version External version of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: external\_version
productPrice Returns an empty array.Data type: Array
productRelationship List of related products.Data type: Array of Objects ``` "productRelationship": [ { "productId": "String", "relationshipType": "String" } ] ```
productRelationship.productId Sys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipType Type of relationship.Data type: String
productSpecification Product specification for the product.Data type: Object ``` "productSpecification": { "id": "String", "internalId": "String", "internalVersion": "String", "version": "String" } ```
productSpecification.id Initial version or external ID of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: internal\_version or external\_id
productSpecification.internalId Initial version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: initial\_version
productSpecification.internalVersion Version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: version
productSpecification.version External version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: external\_version
realizingResource Resource that realizes the product. The realizing resource is a child product inventory of this product inventory.Data type: Object ``` "realizingResource": { "id": "String", "name": "String", "type": "String" } ```
realizingResource.id Sys\_id of the realizing resource. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.type Type of the realizing resource.Valid value: child Data type: String
realizingService Service that realizes the product. The realizing service is a child product inventory of this product inventory.Data type: Object ``` "realizingService": { "id": "String", "name": "String", "type": "String" } ```
realizingService.id Sys\_id of the realizing service. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.type Type of the realizing service.Valid value: child Data type: String
relatedParty List of parties associated with the ticket.Data type: Array of Objects ``` "relatedParty": [ { "id": "String", "@referredType": "String" } ] ```
relatedParty.@referredType Type of related party. Value is always `Related Party`.Data type: String
relatedParty.id Sys\_id of the account or customer contact associated with the ticket.Data type: String Table:Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_consumer\]
relatedParty.type Type of customer.Possible values: - consumer - customer - customerContact Data type: String
status Current state of the product.Data type: String
### cURL request This example creates a product inventory for a voice over IP solution for a user. ``` curl -X POST "https://instance.service-now.com/api/sn_prd_invt/product" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --user "username":"password" \ --data "[ { "pid": "PO-456", "description": "inventory description", "isBundle": false, "name": "Voice Over IP Basic instance for Jean", "productOffering": { "@referredType": "ProductOffering", "name": "Premium SD-WAN Offering", "id": "69017a0f536520103b6bddeeff7b127d" }, "productCharacteristic": [], "productRelationship": [ { "productId": "fa6d13f45b5620102dff5e92dc81c77f", "relationshipType": "child" } ], "realizingService": { "id": "fe6d13f45b5620102dff5e92dc81c786", "relationshipType": "child" }, "realizingResource": { "id": "326d13f45b5620102dff5e92dc81c78c", "relationshipType": "child" }, "relatedParty": [ { "@referredType": "CustomerContact", "@type": "RelatedParty", "name": "Sally Thomas", "id": "eaf68911c35420105252716b7d40ddde" }, { "@referredType": "Customer", "@type": "RelatedParty", "name": "Funco Intl", "id": "ffc68911c35420105252716b7d40dd55" } ], "productSpecification": { "@referredType": "ProductSpecification", "@type": null, "name": null, "id": "3ee1fdb1c3331010d216b5183c40dd81", "internalVersion": "1" }, "bundle": false } ]" ``` Response body. ``` { "pid": "PO-456", "description": "inventory description", "isBundle": false, "name": "Voice Over IP Basic instance for Jean", "productOffering": { "@referredType": "ProductOffering", "name": "Premium SD-WAN Offering", "id": "69017a0f536520103b6bddeeff7b127d", "internalVersion": "1", "version": null, "status": "published", "internalId": "69017a0f536520103b6bddeeff7b127d" }, "productCharacteristic": [], "productRelationship": [ { "productId": "fa6d13f45b5620102dff5e92dc81c77f", "relationshipType": "child" } ], "realizingService": { "id": "fe6d13f45b5620102dff5e92dc81c786", "relationshipType": "child" }, "realizingResource": { "id": "326d13f45b5620102dff5e92dc81c78c", "relationshipType": "child" }, "relatedParty": [ { "@referredType": "CustomerContact", "@type": "RelatedParty", "name": "Sally Thomas", "id": "eaf68911c35420105252716b7d40ddde" }, { "@referredType": "Customer", "@type": "RelatedParty", "name": "Example Company", "id": "ffc68911c35420105252716b7d40dd55" } ], "productSpecification": { "@referredType": "ProductSpecification", "@type": null, "name": null, "id": "3ee1fdb1c3331010d216b5183c40dd81", "internalVersion": "1", "version": null, "status": "published", "internalId": "3ee1fdb1c3331010d216b5183c40dd81" }, "bundle": false, "productPrice": [], "id": "25b07475471789108761b955d36d439d", "href": "/api/sn_prd_invt/product/25b07475471789108761b955d36d439d" } ``` ## Product Inventory Open API - POST /sn\_prd\_invt/productinventory Creates a product inventory. **Important:** Starting with the Tokyo release, this endpoint is deprecated. The new version of this endpoint is [Product Inventory Open API - POST /sn\_prd\_invt/product](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/product-inventory-open-api.md). ### URL format Default URL: `/api/sn_prd_invt/productinventory` ### Supported request parameters |Name|Description| |----|-----------| |None| | |Name|Description| |----|-----------| |None| |
Name Description
isBundle Flag that indicates whether the product inventory record is part of a bundled product.Valid values: - true: Is part of a bundle. - false: Isn't part of a bundle. Data type: Boolean Default: false
name Required. Name of the product inventory.Data type: String
pid Unique identifier for the product inventory from the external system.Data type: String Default: Blank string
productCharacteristic List of product characteristics.For additional information on product characteristics, see [Create a product offering category](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/order-management/som-create-product-offering-category.md). Data type: Array of Objects ``` "productCharacteristic": [ { "name": "String", "value": "String", "valueType": "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
productCharacteristic.valueType Type of characteristic value.Accepted values: - address - array.date - array.datetime - array.decimal - array.integer - array.object - array.single\_line\_text - attachment - checkbox - choice - date - date\_time - decimal - duration - email - integer - object - single\_line\_text - yes\_no Data type: String
productOffering Required. Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "id": "String", "name": "String" } ```
productOffering.id Required. Sys\_id of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.name Name of the product offering.Data type: String Default: Blank string Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productRelationship List of related products.Data type: Array of Objects ``` "productRelationship": [ { "productId": "String", "relationshipType": "String" } ] ```
productRelationship.productId Required if using the **productRelationship** parameter. Sys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipType Type of relationship. The only valid value is `child`. Data type: String Default: Blank string
productSpecification Required. Product specification for the product.Data type: Object ``` "productSpecification": { "id": "String" } ```
productSpecification.id Required. Sys\_id of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\]
realizingResource Realizing resource.Data type: Object ``` "realizingResource": { "id": "String", "type": "String" } ```
realizingResource.id Required if using the **realizingResource** parameter. Sys\_id of the realizing resource.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.type Type of the realizing resource.The only valid value is `child`. Data type: String Default: Blank string
realizingService Realizing service.Data type: Object ``` "realizingService": { "id": "String", "type": "String" } ```
realizingService.id Required if using the **realizingService** parameter. Sys\_id of the realizing service.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.type Type of the realizing service.The only valid value is `child`. Data type: String Default: Blank string
relatedParty List of parties associated with the ticket.Data type: Array of Objects ``` "relatedParty": [ { "id": "String", "@referredType": "String" } ] ```
relatedParty.@referredType Type of customer.Possible values: - consumer - customer - customer\_contact Data type: String Default: Blank string
relatedParty.id Required if using the **relatedParty** parameter. Sys\_id of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_Consumer\]
state Current state of the product.Possible values: - active - change\_pending - inactivation\_pending - inactive - installation\_pending Data type: String Default: installation\_pending
### 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://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md). |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**.| |Header|Description| |------|-----------| |Content-Type|Data format of the response body. Only supports **application/json**.| ### Status codes The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).
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>
### Response body parameters \(JSON\)
Name Description
id Sys\_id of the product inventory.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
isBundle Flag that indicates whether the product inventory record is part of a bundled product.Valid values: - true: Is part of a bundle. - false: Isn't part of a bundle. Data type: Boolean
name Name of the product inventory.Data type: String
pid Unique identifier for the product inventory from the external system.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
productOffering Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "id": "String", "name": "String" } ```
productOffering.id Sys\_id of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.name Name of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productRelationship List of related products.Data type: Array of Objects ``` "productRelationship": [ { "productId": "String", "relationshipType": "String" } ] ```
productRelationship.productId Sys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipType Type of relationship.Data type: String
productSpecification Product specification for the product.Data type: Object ``` "productSpecification": { "id": "String" } ```
productSpecification.id Sys\_id of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\]
realizingResource Realizing resource.Data type: Object ``` "realizingResource": { "id": "String", "type": "String" } ```
realizingResource.id Sys\_id of the realizing resourceData type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.type Type of the realizing resource.Data type: String
realizingService Realizing service.Data type: Object ``` "realizingService": { "id": "String", "type": "String" } ```
realizingService.id Sys\_id of the realizing service.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.type Type of the realizing service.Data type: String
relatedParty List of parties associated with the ticket.Data type: Array of Objects ``` "relatedParty": [ { "id": "String", "@referredType": "String" } ] ```
relatedParty.id Sys\_id of the account or customer contact associated with the ticket.Data type: String Table: Account \[customer\_account\], Contact \[customer\_contact\], or Consumer \[csm\_consumer\]
relatedParty.@referredType Type of customer.Possible values: - Consumer - Customer - CustomerContact Data type: String
state Current state of the product.Data type: String
### cURL request This example creates a product inventory for a voice over IP solution for a user. ``` curl --location --request POST "https://instance.servicenow.com/api/sn_prd_invt/productinventory" \ --header "Content-Type: application/json" \ --data-raw '[ { "pid": "demoInventory", "description": "inventory description", "isBundle": false, "name": "Voice Over IP Basic instance for Jean", "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "@referredType": "ProductOffering" }, "productCharacteristic": [ { "name": "CPE Type", "valueType": "choice", "value": "Virtual" }, { "name":"Routing", "valueType": "choice", "value": "Premium" } ], "productRelationship": [ { "productId": "7e6d13f45b5620102dff5e92dc81c787", "relationshipType": "child" } ], "relatedParty": [ { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "role": "User", "@type": "RelatedParty", "@referredType": "CustomerContact" }, { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" } ], "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "@referredType": "ProductSpecification", "version": "1" } } ]' --user 'username':'password' ``` Response body. ``` { "pid": "demoInventory", "description": "inventory description", "isBundle": false, "name": "Voice Over IP Basic instance for Jean", "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "@referredType": "ProductOffering" }, "productCharacteristic": [ { "name": "CPE Type", "valueType": "choice", "value": "Virtual" }, { "name": "Routing", "valueType": "choice", "value": "Premium" } ], "productRelationship": [ { "productId": "7e6d13f45b5620102dff5e92dc81c787", "relationshipType": "child" } ], "relatedParty": [ { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "role": "User", "@type": "RelatedParty", "@referredType": "CustomerContact" }, { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" } ], "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "@referredType": "ProductSpecification", "version": "1" }, "id": "3ac715c6745d8150f877ca57242ff97a" } ```