Siemens PLM · Schema
Product Information API Schemas
JSON Schema definitions for the Siemens Product Information Webservice API
PLMProduct Lifecycle ManagementTeamcenterNXSolid EdgeSimcenterXceleratorDigital ManufacturingIndustrial IoTCADCAMSustainabilityALM
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://developer.siemens.com/product-information-api/schemas/product-information-api.json",
"title": "Product Information API Schemas",
"description": "JSON Schema definitions for the Siemens Product Information Webservice API",
"definitions": {
"ProductRef": {
"type": "object",
"properties": {
"productNumber": {
"type": "string",
"description": "The ID of the product (MLFB, EAN, ...).",
"example": "6SN1123-1AA00-0CA1"
},
"name": {
"type": "string",
"description": "The product's name.",
"example": "SIMODRIVE 611 1-Axis Power Module 50A int.cooling"
},
"link": {
"type": "string",
"description": "Relative link to the product (using this API).",
"example": "/api/products/6SN1123-1AA00-0CA1/obsolescence"
}
},
"required": [
"productNumber",
"name",
"link"
]
},
"Obsolescence": {
"type": "object",
"properties": {
"productNumber": {
"type": "string",
"description": "The ID of the product (MLFB, ...).",
"example": "6SN1123-1AA00-0CA1"
},
"name": {
"type": "string",
"description": "The product's name.",
"example": "SIMODRIVE 611 1-Axis Power Module 50A int.cooling"
},
"info": {
"type": "string",
"description": "Abbreviated product description.",
"example": "POW.MOD.INT.50A 6SN1123-1AA00-0CA1"
},
"purchasabilityNote": {
"type": "string",
"description": "Additional information on the product's purchasability that may provide guidance if no successor or substitute was found."
},
"manufacturer": {
"type": "string",
"description": "The company that makes the product.",
"example": "Siemens AG"
},
"salesRelease": {
"type": "string",
"description": "Product can be ordered but not delivered. Existing dates and deadlines are not confirmed (PM280).",
"example": "2023-02-12T11:54:55.031Z",
"format": "date-time"
},
"deliveryRelease": {
"type": "string",
"description": "Product can be ordered and will be delivered from the shipping locations (PM300).",
"example": "2023-02-12T11:54:55.031Z",
"format": "date-time"
},
"phaseOutAnnouncement": {
"type": "string",
"description": "Product can still be ordered (PM400).",
"example": "2023-02-12T11:54:55.031Z",
"format": "date-time"
},
"productCancellation": {
"type": "string",
"description": "Product can still be ordered and delivered in the spare part business but incoming orders are rejected (PM410).",
"example": "2023-02-12T11:54:55.031Z",
"format": "date-time"
},
"productDiscontinuation": {
"type": "string",
"description": "Product can only be ordered and delivered in the spare part business in the context of warranty/repair (PM490).",
"example": "2023-02-12T11:54:55.031Z",
"format": "date-time"
},
"supportUrl": {
"type": "string",
"description": "URL of the product's support page.",
"example": "https://support.industry.siemens.com/cs/ww/en/pv/6SN1123-1AA00-0CA1/pi",
"format": "url"
},
"purchasabilityStatus": {
"type": "string",
"description": "Information on how the product can be purchased.\n\nPURCHASABLE = The product can still be purchased from the manufacturer.\n\nSUBSTITUTE_PURCHASABLE = The original product can't be purchased anymore, but a substitute exists.\n\nSUCCESSOR_PURCHASABLE = The original product can't be purchased anymore, but a successor exists.\n\nNOT_PURCHASABLE = Neither the original product nor its successors or substitutes can be purchased.",
"enum": [
"PURCHASABLE",
"SUBSTITUTE_PURCHASABLE",
"SUCCESSOR_PURCHASABLE",
"NOT_PURCHASABLE"
]
},
"obsolescenceLevel": {
"type": "number",
"description": "1 = Product has been discontinued and no successor or substitute exists.\n\n2 = Item has been discontinued but a successor exists.\n\n3 = Availability horizon of 1 year.\n\n4 = Availability horizon of 1 to 2 years.\n\n5 = Availability horizon of 2 to 5 years.\n\n6 = Availability horizon of over 5 years.",
"example": 2
},
"successor": {
"nullable": true,
"description": "The product's successor or `null` if no successor exists.\nThe successor is a product that is PARTIALLY compatible with the original.",
"allOf": [
{
"$ref": "#/components/schemas/ProductRef"
}
]
},
"substitute": {
"nullable": true,
"description": "The product's substitute or `null` if no substitute exists.\nThe substitute is a product that is FULLY compatible with the original.",
"allOf": [
{
"$ref": "#/components/schemas/ProductRef"
}
]
},
"relatedProducts": {
"description": "Related products that may be used as successors or substitutes.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ProductRef"
}
}
},
"required": [
"productNumber",
"name",
"info",
"purchasabilityNote",
"manufacturer",
"salesRelease",
"deliveryRelease",
"phaseOutAnnouncement",
"productCancellation",
"productDiscontinuation",
"supportUrl",
"purchasabilityStatus",
"obsolescenceLevel",
"successor",
"substitute",
"relatedProducts"
]
},
"DeliveryTimes": {
"type": "object",
"properties": {
"newPart": {
"type": "integer",
"nullable": true,
"example": 20,
"minimum": 0,
"format": "int32"
},
"sparePart": {
"type": "integer",
"nullable": true,
"example": 30,
"minimum": 0,
"format": "int32"
},
"repairPart": {
"type": "integer",
"nullable": true,
"example": 10,
"minimum": 0,
"format": "int32"
}
},
"required": [
"newPart",
"sparePart",
"repairPart"
]
},
"Prices": {
"type": "object",
"properties": {
"newPart": {
"type": "string",
"nullable": true,
"example": "300 \u20ac"
},
"sparePart": {
"type": "string",
"nullable": true,
"example": "500 \u20ac"
},
"repairPart": {
"type": "string",
"nullable": true,
"example": "400 \u20ac"
}
},
"required": [
"newPart",
"sparePart",
"repairPart"
]
},
"Delivery": {
"type": "object",
"properties": {
"productNumber": {
"type": "string",
"description": "The ID of the product (MLFB, ...).",
"example": "6SN1123-1AA00-0CA1"
},
"minimumOrderQuantity": {
"type": "integer",
"description": "The minimum order quantity for new parts.",
"example": 1,
"minimum": 0,
"format": "int32"
},
"countryOfOrigin": {
"type": "string",
"description": "The country of production or manufacture, given as country-code.",
"example": "DE"
},
"commodityCode": {
"type": "integer",
"description": "The commodity code is a numerical code used to classify the product in international trade. It helps to facilitate trade, ensure the correct application of tariffs and taxes, and track the movement of goods for statistical purposes.",
"example": 85015394,
"minimum": 0,
"format": "int32"
},
"eccn": {
"type": "string",
"description": "The Export Control Classification Number of the product.",
"example": "EAR99S"
},
"groupCode": {
"type": "string",
"description": "The GroupCode of the product.",
"example": "R111"
},
"productGroup": {
"type": "integer",
"description": "The ProductGroup of the product.",
"example": 4303,
"minimum": 0,
"format": "int32"
},
"deliveryTimes": {
"description": "The standard lead time ex-works of the product.\nLead times vary for new, spare or repair parts.\n\nA delivery time of `null` means that the product can only be delivered on request.",
"allOf": [
{
"$ref": "#/components/schemas/DeliveryTimes"
}
]
},
"prices": {
"description": "The prices of the product.\nPrices vary for new, spare or repair parts.",
"allOf": [
{
"$ref": "#/components/schemas/Prices"
}
]
}
},
"required": [
"productNumber",
"minimumOrderQuantity",
"countryOfOrigin",
"commodityCode",
"eccn",
"groupCode",
"productGroup",
"deliveryTimes",
"prices"
]
},
"ApiKeyDetails": {
"type": "object",
"properties": {
"customerId": {
"type": "string",
"description": "The id of the customer (owner of the api key).",
"example": "1d616354-1451-4d66-b001-1a44e6d51086",
"format": "uuid"
},
"customerName": {
"type": "string",
"description": "The name of the customer.",
"example": "Epic GmbH"
},
"apiKeyExpiryDate": {
"type": "string",
"description": "The expiry date of the api key, after which it can no longer be used.",
"example": "2023-02-12T11:54:55.031Z",
"format": "date-time"
},
"credits": {
"type": "object",
"description": "An object of numerical credits that this api key owns. Each credit belongs to a specific resource like `Obsolescence` or `Delivery` and is decremented for each request to that specific resource.",
"example": {
"obsolescence": 1,
"delivery": 2
}
}
},
"required": [
"customerId",
"customerName",
"apiKeyExpiryDate",
"credits"
]
}
}
}