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

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, September 2024. The Product Inventory Open API is conformance certified by TM Forum.

Image omitted: tmf-conformance.png
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

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

NameDescription
idSys\_id of the product inventory to delete.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
NameDescription
None 
NameDescription
None 

Headers

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

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

Status codes

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

Status codeDescription
204No Content. Record successfully deleted.
400Bad Request. A bad request type or malformed request was detected.

Response body parameters (JSON)

NameDescription
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

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

offsetStarting index at which to begin retrieving records. Use this value to paginate record retrieval. This functionality enables the retrieval of all records, regardless of the number of records, in small manageable chunks.Data type: Number Default: 0
placeFilter product inventories by location.Data type: Object
"place": {
  "id": "String"
}
place.idSys\_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
statusFilter 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.
NameDescription
None 

Headers

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

HeaderDescription
None 
HeaderDescription
Content-RangeRange of content returned in a paginated call. For example, if offset=2 and limit=3, the value of the Content-Range header is items 3-5.
Content-TypeData format of the response body. Only supports application/json.
X-Total-CountFor paginated queries, this header specifies the total number of records available on the server.

Status codes

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

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

Response body parameters (JSON)

NameDescription
hrefRelative link to the product inventory record.Data type: String
idSys\_id of the product inventory.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
nameName of the product inventory.Data type: String
placeLocation of the product.Data type: Array
"place": [
   {
      "id": "String",
      "name": "String"
   }
]
place.idLocation sys\_id or external id.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
place.nameName of the location.Data type: String Table: Location \[cmn\_location\] Field: name
productCharacteristicList of product characteristics.For additional information on product characteristics, see Create a product offering category. Data type: Array of Objects
"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]
productCharacteristic.nameName of the characteristic.Data type: String
productCharacteristic.valueValue of the characteristic.Data type: String
productCharacteristic.valueTypeType 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
productIdSys\_id of the product model for the product inventory.Data type: String Table: Product Model \[cmdb\_model\]
productOfferingProduct offering that the product inventory is associated with.Data type: Object
"productOffering": {
   "id": "String",
   "internalId": "String",
   "internalVersion": "String",
   "name": "String",
   "version": "String"
}
productOffering.idInitial 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.internalIdInternal version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: internal\_version
productOffering.internalVersionVersion of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: version
productOffering.nameName of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.versionExternal version of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: external\_version
productPriceReturns an empty array.Data type: Array
productRelationshipList of related products.Data type: Array of Objects
"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]
productRelationship.productIdSys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipTypeType of relationship.Data type: String
productSpecificationProduct specification for the product.Data type: Object
"productSpecification": {
  "id": "String",
  "internalId": "String",
  "internalVersion": "String",
  "version": "String"
}
productSpecification.idInitial 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.internalIdInitial version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: initial\_version
productSpecification.internalVersionVersion of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: version
productSpecification.versionExternal version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: external\_version
realizingResourceResource 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.idSys\_id of the realizing resource. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.nameName of the realizing resource. Data type: String
realizingResource.typeType of the realizing resource.Valid value: child Data type: String
realizingServiceService 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.idSys\_id of the realizing service. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.nameName of the realizing service. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.typeType of the realizing service.Valid value: child Data type: String
relatedPartyList of parties associated with the ticket.Data type: Array of Objects
"relatedParty": [
  {
    "id": "String",
    "@referredType": "String"
  }
]
relatedParty.idSys\_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.@referredTypeType of customer.Possible values: - Consumer - Customer - CustomerContact Data type: String
stateCurrent 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",
    "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

NameDescription
idSys\_id of the product inventory to retrieve.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
NameDescription
customerFilter 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.
fieldsList of fields to return in the response. Invalid fields are ignored.Data type: String Default: All fields returned.
placeFilter product inventories by location.Data type: Object
"place": {
  "id": "String"
}
place.idSys\_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
statusFilter 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.
NameDescription
None 

Headers

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

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

Status codes

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

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

Response body parameters (JSON)

NameDescription
billingAccountBilling account of the product inventory record.Data type: String
hrefRelative link to the product inventory record.Data type: String
idSys\_id of the product inventoryData type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
nameName of the product inventory.Data type: String
placeLocation of the product.Data type: Array
"place": [
   {
      "id": "String",
      "name": "String"
   }
]
place.idLocation sys\_id or external id.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
place.nameName of the location.Data type: String Table: Location \[cmn\_location\] Field: name
productCharacteristicList of product characteristics.For additional information on product characteristics, see Create a product offering category. Data type: Array of Objects
"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]
productCharacteristic.nameName of the characteristic.Data type: String
productCharacteristic.valueValue of the characteristic.Data type: String
productCharacteristic.valueTypeType 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
productIdSys\_id of the product model for the product inventory.Data type: String Table: Product Model \[cmdb\_model\]
productOfferingProduct offering that the product inventory is associated with.Data type: Object
"productOffering": {
   "id": "String",
   "internalId": "String",
   "internalVersion": "String",
   "name": "String",
   "version": "String"
}
productOffering.idInitial 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.internalIdInternal version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: internal\_version
productOffering.internalVersionVersion of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: version
productOffering.nameName of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.versionExternal version of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: external\_version
productPriceReturns an empty array.Data type: Array
productRelationshipList of related products.Data type: Array of Objects
"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]
productRelationship.productIdSys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipTypeType of relationship.Data type: String
productSpecificationProduct specification for the product.Data type: Object
"productSpecification": {
  "id": "String",
  "internalId": "String",
  "internalVersion": "String",
  "version": "String"
}
productSpecification.idInitial 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.internalIdInitial version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: initial\_version
productSpecification.internalVersionVersion of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: version
productSpecification.versionExternal version of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\] Field: external\_version
realizingResourceResource 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.idSys\_id of the realizing resource. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.nameName of the realizing resource. Data type: String
realizingResource.typeType of the realizing resource.Valid value: child Data type: String
realizingServiceService 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.idSys\_id of the realizing service. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.nameName of the realizing service. Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.typeType of the realizing service.Valid value: child Data type: String
relatedPartyList of parties associated with the ticket.Data type: Array of Objects
"relatedParty": [
  {
    "id": "String",
    "@referredType": "String"
  }
]
relatedParty.idSys\_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.typeType of related party. Value is always `Related Party`.Data type: String
relatedParty.@referredTypeType of customer, such as a customer or customer contact.Data type: String
statusCurrent 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",
  "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.

URL format

Default URL: api/sn_prd_invt/productinventory

Supported request parameters

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

offsetStarting index at which to begin retrieving records. Use this value to paginate record retrieval. This functionality enables the retrieval of all records, regardless of the number of records, in small manageable chunks.Data type: Number Default: 0
placeFilter product inventories by location.Data type: Object
"place": {
  "id": "String"
}
place.idSys\_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
statusFilter 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.
NameDescription
None 

Headers

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

HeaderDescription
None 
HeaderDescription
Content-RangeRange of content returned in a paginated call. For example, if offset=2 and limit=3, the value of the Content-Range header is items 3-5.
Content-TypeData format of the response body. Only supports application/json.
X-Total-CountFor paginated queries, this header specifies the total number of records available on the server.

Status codes

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

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

Response body parameters (JSON)

NameDescription
idSys\_id of the product inventory.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
nameName of the product inventory.Data type: String
placePlace associated with the product.Data type: Object
"place": {
  "id": "String",
  "name": "String"
}
place.idLocation sys\_id or external\_id of the product inventory.Table: Location \[cmn\_location\] Data: String
place.nameName of the location associated with the product inventory.Table: Location \[cmn\_location\] Data: String
productCharacteristicList of product characteristics.For additional information on product characteristics, see Create a product offering category. Data type: Array of Objects
"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]
productCharacteristic.nameName of the characteristic.Data type: String
productCharacteristic.valueValue of the characteristic.Data type: String
productCharacteristic.valueTypeType 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
productOfferingProduct offering that the product inventory is associated with.Data type: Object
"productOffering": {
  "id": "String",
  "name": "String"
}
productOffering.idSys\_id of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.nameName of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productRelationshipList of related products.Data type: Array of Objects
"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]
productRelationship.productIdSys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipTypeType of relationship.Data type: String
productSpecificationProduct specification for the product.Data type: Object
"productSpecification": {
  "id": "String"
}
productSpecification.idSys\_id of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\]
realizingResourceRealizing resource.Data type: Object
"realizingResource": {
  "id": "String",
  "type": "String"
}
realizingResource.idSys\_id of the realizing resource.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.typeType of the realizing resource.Data type: String
realizingServiceRealizing service.Data type: Object
"realizingService": {
  "id": "String",
  "type": "String"
}
realizingService.idSys\_id of the realizing service.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.typeType of the realizing service.Data type: String
relatedPartyList of parties associated with the ticket.Data type: Array of Objects
"relatedParty": [
  {
    "id": "String",
    "@referredType": "String"
  }
]
relatedParty.idSys\_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.@referredTypeType of related party. Value is always `Related Party`.Data type: String
relatedParty.typeType of customer.Possible values: - consumer - customer - customerContact Data type: String
statusCurrent 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",
      "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}.

URL format

Default URL: /api/sn_prd_invt/productinventory/{inventoryId}

Supported request parameters

NameDescription
inventoryIdSys\_id of the product inventory to retrieve.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
NameDescription
customerFilter 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
fieldsList of fields to return in the response. Invalid fields are ignored.Data type: String Default: All fields returned.
placeFilter product inventories by location.Data type: Object
"place": {
  "id": "String"
}
place.idSys\_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
statusFilter product inventories by status. Only product inventories with a status matching the value of this parameter are returned in the response.Data type: String
NameDescription
None 

Headers

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

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

Status codes

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

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

Response body parameters (JSON)

NameDescription
idSys\_id of the product inventory Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
nameName of the product inventory.Data type: String
placePlace associated with the product.Data type: Object
"place": {
  "id": "String",
  "name": "String"
}
place.idLocation sys\_id or external\_id of the product inventory.Table: Location \[cmn\_location\] Data: String
place.nameName of the location associated with the product inventory.Table: Location \[cmn\_location\] Data: String
productCharacteristicList of product characteristics.For additional information on product characteristics, see Create a product offering category. Data type: Array of Objects
"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]
productCharacteristic.nameName of the characteristic.Data type: String
productCharacteristic.valueValue of the characteristic.Data type: String
productCharacteristic.valueTypeType 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
productOfferingProduct offering that the product inventory is associated with.Data type: Object
"productOffering": {
  "id": "String",
  "name": "String"
}
productOffering.idSys\_id of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.nameName of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productRelationshipList of related products.Data type: Array of Objects
"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]
productRelationship.productIdSys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipTypeType of relationship.Data type: String
productSpecificationProduct specification for the product.Data type: Object
"productSpecification": {
  "id": "String"
}
productSpecification.idSys\_id of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\]
realizingResourceRealizing resource.Data type: Object
"realizingResource": {
  "id": "String",
  "type": "String"
}
realizingResource.idSys\_id of the realizing resource.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.typeType of the realizing resource.Data type: String
realizingServiceRealizing service.Data type: Object
"realizingService": {
  "id": "String",
  "type": "String"
}
realizingService.idSys\_id of the realizing service.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.typeType of the realizing service.Data type: String
relatedPartyList of parties associated with the ticket.Data type: Array of Objects
"relatedParty": [
  {
    "id": "String",
    "@referredType": "String"
  }
]
relatedParty.idSys\_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.@referredTypeType of related party. Value is always `Related Party`.Data type: String
relatedParty.typeType of customer.Possible values: - consumer - customer - customerContact Data type: String
statusCurrent 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",
   "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

NameDescription
idSys\_id of the product inventory to update.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
NameDescription
None 
NameDescription
bundleFlag 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
nameName of the product inventory.Data type: String
placeLocation of the product.Data type: Array
"place": [
   {
      "id": "String",
      "name": "String"
   }
]
place.idLocation sys\_id or external id.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
place.nameName of the location.Data type: String Table: Location \[cmn\_location\] Field: name
productOfferingProduct 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.@referredTypeThis value is always `ProductOffering`.Data type: String
productOffering.idInitial 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.internalIdInternal version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: internal\_version
productOffering.internalVersionVersion of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: version
productOffering.nameName of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: name
productOffering.statusStatus of the product offering.Possible values: - archived - draft - published - retired Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: status
productOffering.versionExternal version of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: external\_version
relatedPartyList of parties associated with the ticket.Data type: Array of Objects
"relatedParty": [
  {
    "@referredType": "String",
    "@type": "String",
    "id": "String",
    "name": "String"   
  }
]
relatedParty.@referredTypeType of related party.Possible values: - Consumer - Customer - CustomerContact Data type: String
relatedParty.@typeThis value is always `RelatedParty`.Data type: String
relatedParty.idSys\_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.nameName 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.

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

Status codes

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

Status codeDescription
200Successful. The request was successfully processed.
400Bad Request. A bad request type or malformed request was detected.
404Not found. The requested item wasn't found.

Response body parameters (JSON)

NameDescription
bundleFlag 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
nameName of the product inventory.Data type: String
placeLocation of the product.Data type: Array
"place": [
   {
      "id": "String",
      "name": "String"
   }
]
place.idLocation sys\_id or external id.Data type: String Table: Location \[cmn\_location\] Field: sys\_id or sn\_tmt\_core\_external\_id
place.nameName of the location.Data type: String Table: Location \[cmn\_location\] Field: name
productOfferingProduct 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.@referredTypeThis value is always `ProductOffering`.Data type: String
productOffering.idInitial 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.internalIdInternal version of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: internal\_version
productOffering.internalVersionVersion of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: version
productOffering.nameName of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: name
productOffering.statusStatus of the product offering.Possible values: - archived - draft - published - retired Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: status
productOffering.versionExternal version of the product offering. Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\] Field: external\_version
relatedPartyList of parties associated with the ticket.Data type: Array of Objects
"relatedParty": [
  {
    "@referredType": "String",
    "@type": "String",
    "id": "String",
    "name": "String"   
  }
]
relatedParty.@referredTypeType of related party.Possible values: - Consumer - Customer - CustomerContact Data type: String
relatedParty.@typeThis value is always `RelatedParty`.Data type: String
relatedParty.idSys\_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.nameName 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

NameDescription
None 
NameDescription
None 
NameDescription
bundleFlag 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
isBundleFlag 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
nameRequired. Name of the product inventory.Data type: String
pidUnique identifier for the product inventory from the external system.Data type: String Default: Blank string
productCharacteristicList of product characteristics.For additional information on product characteristics, see Create a product offering category. Data type: Array of Objects
"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]
productCharacteristic.nameName of the characteristic.Data type: String Default: Blank string
productCharacteristic.valueValue of the characteristic.Data type: String Default: Blank string
productCharacteristic.valueTypeType 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
productOfferingRequired. Product offering that the product inventory is associated with.Data type: Object ``` "productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }
</td></tr><tr><td>

productOffering.id

</td><td>

Required. Initial\_version or external\_id of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

</td></tr><tr><td>

productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

Field: version

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Default: Blank string

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

</td></tr><tr><td>

productOffering.version

</td><td>

External version of the product offering. Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

Field: external\_version

</td></tr><tr><td>

productRelationship

</td><td>

List of related products.Data type: Array of Objects
"productRelationship": [ { "productId": "String", "relationshipType": "String" } ]
</td></tr><tr><td>

productRelationship.productId

</td><td><p>Required if using the <strong>productRelationship</strong> parameter. Sys_id of the related product.Data type: String</p>
<p>Table: Product Inventory [sn_prd_invt_product_inventory]</p></td></tr><tr><td>

productRelationship.relationshipType

</td><td>

Type of relationship. The only valid value is `child`.

Data type: String

Default: Blank string

</td></tr><tr><td>

productSpecification

</td><td>

Required. Product specification for the product.Data type: Object
"productSpecification": { "id": "String", "internalVersion": "String", "version": "String" }
</td></tr><tr><td>

productSpecification.id

</td><td>

Required. Initial\_version or external\_id of the product specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

</td></tr><tr><td>

productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

Field: version

</td></tr><tr><td>

productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

Field: external\_version

</td></tr><tr><td>

realizingResource

</td><td>

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" }
</td></tr><tr><td>

realizingResource.id

</td><td>Required if using the <strong>realizingResource</strong> parameter. Sys_id of the realizing resource. Data type: String</td></tr><tr><td>

realizingResource.type

</td><td>

Type of the realizing resource.Valid value: child

Data type: String

</td></tr><tr><td>

realizingService

</td><td>

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" }
</td></tr><tr><td>

realizingService.id

</td><td>Required if using the <strong>realizingService</strong> parameter. Sys_id of the realizing service. Data type: String</td></tr><tr><td>

realizingService.type

</td><td>

Type of the realizing service.Valid value: child

Data type: String

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects
"relatedParty": [ { "id": "String", "@referredType": "String" } ]
</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of customer.Possible values:

-   consumer
-   customer
-   customer\_contact

Data type: String

Default: Blank string

</td></tr><tr><td>

relatedParty.id

</td><td><p>Required if using the <strong>relatedParty</strong> parameter. Sys_id of the account or customer contact associated with the ticket.Data type: String</p>
<p>Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]</p></td></tr><tr><td>

state

</td><td>

Current state of the product.Possible values:

-   active
-   change\_pending
-   inactivation\_pending
-   inactive
-   installation\_pending

Data type: String

Default: installation\_pending

</td></tr></tbody>
</table>

### 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](../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](../rest-api-explorer/c_RESTAPI.md).

<table id="table_fbw_k3z_gsb"><thead><tr><th>

Status code

</th><th>

Description

</th></tr></thead><tbody><tr><td>

201

</td><td>

Request successfully processed.

</td></tr><tr><td>

400

</td><td>

Bad Request. Could be any of the following reasons: -   Empty payload.
-   Invalid payload. Mandatory field missing: &lt;field name&gt;

</td></tr></tbody>
</table>

### Response body parameters \(JSON\)

<table><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

bundle

</td><td>

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

</td></tr><tr><td>

href

</td><td>

Relative link to the product inventory record.Data type: String

</td></tr><tr><td>

id

</td><td>

Sys\_id of the product inventory.Data type: String

Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]

</td></tr><tr><td>

isBundle

</td><td>

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

</td></tr><tr><td>

name

</td><td>

Name of the product inventory.Data type: String

</td></tr><tr><td>

pid

</td><td>

Unique identifier for the product inventory from the external system.Data type: String

</td></tr><tr><td>

productCharacteristic

</td><td>

List of product characteristics.Data type: Array of Objects
"productCharacteristic": [ { "name": "String", "value": "String" } ]
</td></tr><tr><td>

productCharacteristic.name

</td><td>

Name of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.value

</td><td>

Value of the characteristic.Data type: String

</td></tr><tr><td>

productOffering

</td><td>

Product offering that the product inventory is associated with.Data type: Object
"productOffering": { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" }
</td></tr><tr><td>

productOffering.id

</td><td>

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

</td></tr><tr><td>

productOffering.internalId

</td><td>

Internal version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

Field: internal\_version

</td></tr><tr><td>

productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

Field: version

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

</td></tr><tr><td>

productOffering.version

</td><td>

External version of the product offering. Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

Field: external\_version

</td></tr><tr><td>

productPrice

</td><td>

Returns an empty array.Data type: Array

</td></tr><tr><td>

productRelationship

</td><td>

List of related products.Data type: Array of Objects
"productRelationship": [ { "productId": "String", "relationshipType": "String" } ]
</td></tr><tr><td>

productRelationship.productId

</td><td>

Sys\_id of the related product.Data type: String

Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]

</td></tr><tr><td>

productRelationship.relationshipType

</td><td>

Type of relationship.Data type: String

</td></tr><tr><td>

productSpecification

</td><td>

Product specification for the product.Data type: Object
"productSpecification": { "id": "String", "internalId": "String", "internalVersion": "String", "version": "String" }
</td></tr><tr><td>

productSpecification.id

</td><td>

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

</td></tr><tr><td>

productSpecification.internalId

</td><td>

Initial version of the product specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

Field: initial\_version

</td></tr><tr><td>

productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

Field: version

</td></tr><tr><td>

productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

Field: external\_version

</td></tr><tr><td>

realizingResource

</td><td>

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" }
</td></tr><tr><td>

realizingResource.id

</td><td>

Sys\_id of the realizing resource. Data type: String

Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]

</td></tr><tr><td>

realizingResource.type

</td><td>

Type of the realizing resource.Valid value: child

Data type: String

</td></tr><tr><td>

realizingService

</td><td>

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" }
</td></tr><tr><td>

realizingService.id

</td><td>

Sys\_id of the realizing service. Data type: String

Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]

</td></tr><tr><td>

realizingService.type

</td><td>

Type of the realizing service.Valid value: child

Data type: String

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects
"relatedParty": [ { "id": "String", "@referredType": "String" } ]
</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of related party. Value is always `Related Party`.Data type: String

</td></tr><tr><td>

relatedParty.id

</td><td>

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\]

</td></tr><tr><td>

relatedParty.type

</td><td>

Type of customer.Possible values:

-   consumer
-   customer
-   customerContact

Data type: String

</td></tr><tr><td>

status

</td><td>

Current state of the product.Data type: String

</td></tr></tbody>
</table>

### 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](product-inventory-open-api.md).

### URL format

Default URL: `/api/sn_prd_invt/productinventory`

### Supported request parameters

|Name|Description|
|----|-----------|
|None| |

|Name|Description|
|----|-----------|
|None| |

<table class="rest_api_request_body"><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

isBundle

</td><td>

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

</td></tr><tr><td>

name

</td><td>

Required. Name of the product inventory.Data type: String

</td></tr><tr><td>

pid

</td><td>

Unique identifier for the product inventory from the external system.Data type: String

Default: Blank string

</td></tr><tr><td>

productCharacteristic

</td><td>

List of product characteristics.For additional information on product characteristics, see <a href="../../../order-management/som-create-product-offering-category/">Create a product offering category</a>.

Data type: Array of Objects
"productCharacteristic": [ { "name": "String", "value": "String", "valueType": "String" } ]
</td></tr><tr><td>

productCharacteristic.name

</td><td>

Name of the characteristic.Data type: String

Default: Blank string

</td></tr><tr><td>

productCharacteristic.value

</td><td>

Value of the characteristic.Data type: String

Default: Blank string

</td></tr><tr><td>

productCharacteristic.valueType

</td><td>

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

</td></tr><tr><td>

productOffering

</td><td>

Required. Product offering that the product inventory is associated with.Data type: Object

 ```
"productOffering": {
   "id": "String",
   "name": "String"
}
productOffering.idRequired. Sys\_id of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.nameName of the product offering.Data type: String Default: Blank string Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productRelationshipList 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.relationshipTypeType of relationship. The only valid value is `child`. Data type: String Default: Blank string
productSpecificationRequired. Product specification for the product.Data type: Object
"productSpecification": {
  "id": "String"
}
productSpecification.idRequired. Sys\_id of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\]
realizingResourceRealizing 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.typeType of the realizing resource.The only valid value is `child`. Data type: String Default: Blank string
realizingServiceRealizing 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.typeType of the realizing service.The only valid value is `child`. Data type: String Default: Blank string
relatedPartyList of parties associated with the ticket.Data type: Array of Objects
"relatedParty": [
  {
    "id": "String",
    "@referredType": "String"
  }
]
relatedParty.@referredTypeType 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]

stateCurrent 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.

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

Status codes

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

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

Response body parameters (JSON)

NameDescription
idSys\_id of the product inventory.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
isBundleFlag 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
nameName of the product inventory.Data type: String
pidUnique identifier for the product inventory from the external system.Data type: String
productCharacteristicList of product characteristics.Data type: Array of Objects
"productCharacteristic": [
  {
    "name": "String",
    "value": "String"
  }
]
productCharacteristic.nameName of the characteristic.Data type: String
productCharacteristic.valueValue of the characteristic.Data type: String
productOfferingProduct offering that the product inventory is associated with.Data type: Object
"productOffering": {
   "id": "String",
   "name": "String"
}
productOffering.idSys\_id of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productOffering.nameName of the product offering.Data type: String Table: Product Offering \[sn\_prd\_pm\_product\_offering\]
productRelationshipList of related products.Data type: Array of Objects
"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]
productRelationship.productIdSys\_id of the related product.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
productRelationship.relationshipTypeType of relationship.Data type: String
productSpecificationProduct specification for the product.Data type: Object
"productSpecification": {
  "id": "String"
}
productSpecification.idSys\_id of the product specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\]
realizingResourceRealizing resource.Data type: Object
"realizingResource": {
  "id": "String",
  "type": "String"
}
realizingResource.idSys\_id of the realizing resourceData type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingResource.typeType of the realizing resource.Data type: String
realizingServiceRealizing service.Data type: Object
"realizingService": {
  "id": "String",
  "type": "String"
}
realizingService.idSys\_id of the realizing service.Data type: String Table: Product Inventory \[sn\_prd\_invt\_product\_inventory\]
realizingService.typeType of the realizing service.Data type: String
relatedPartyList of parties associated with the ticket.Data type: Array of Objects
"relatedParty": [
  {
    "id": "String",
    "@referredType": "String"
  }
]
relatedParty.idSys\_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.@referredTypeType of customer.Possible values: - Consumer - Customer - CustomerContact Data type: String
stateCurrent 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"
}