> For the complete documentation index, see [llms.txt](https://hub.equipme.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hub.equipme.io/development/api-reference-pro/sourcing-or-bom-definitions.md).

# Sourcing | BOM Definitions

## GET /v1/sourcing/bom-definitions

> List the BOM definitions of a sales service (currently only base BOM definition is supported)

```json
{"openapi":"3.0.4","info":{"title":"Equipme Supplier API","version":"v1"},"tags":[{"name":"Sourcing | BOM Definitions"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"Required for authorization in every request. You can request an API-Key for your tenant in the integrations section of the equipme App.","name":"X-API-KEY","in":"header"}},"schemas":{"BomDefinitionType":{"enum":["base","combination","additive"],"type":"string"},"BomDefinitionList":{"required":["items","self","total"],"type":"object","properties":{"previous":{"$ref":"#/components/schemas/ResourceLink"},"next":{"$ref":"#/components/schemas/ResourceLink"},"items":{"type":"array","items":{"$ref":"#/components/schemas/BomDefinition"},"description":"The list of result items."},"total":{"type":"integer","description":"The total number of items.","format":"int32"},"self":{"$ref":"#/components/schemas/ResourceLink"}},"additionalProperties":false},"ResourceLink":{"required":["href"],"type":"object","properties":{"href":{"minLength":1,"type":"string","description":"The target resource URI."},"method":{"type":"string","description":"The HTTP method to use for the request.","nullable":true}},"additionalProperties":false},"BomDefinition":{"required":["id","self","type"],"type":"object","properties":{"id":{"type":"integer","description":"The identifier of the BOM definition.","format":"int64"},"type":{"$ref":"#/components/schemas/BomDefinitionType"},"items":{"type":"array","items":{"$ref":"#/components/schemas/BomDefinitionItem"},"description":"The products which are items in this BOM definition.","nullable":true},"self":{"$ref":"#/components/schemas/ResourceLink"}},"additionalProperties":false},"BomDefinitionItem":{"required":["id","product","quantity","self"],"type":"object","properties":{"id":{"type":"integer","description":"The identifier of the BOM definition item.","format":"int64"},"product":{"$ref":"#/components/schemas/ProductReference"},"quantity":{"type":"integer","description":"The quantity of this product in the BOM definition.","format":"int32","default":1},"subscriptionPeriodCondition":{"type":"integer","description":"If set, this item only applies to orders of an offer with the matching subscription period.","format":"int32","nullable":true},"self":{"$ref":"#/components/schemas/ResourceLink"}},"additionalProperties":false},"ProductReference":{"required":["id","name","partNumber","self"],"type":"object","properties":{"id":{"type":"integer","description":"The identifier of the product.","format":"int64"},"name":{"minLength":1,"type":"string","description":"The name of the product."},"partNumber":{"minLength":1,"type":"string","description":"The manufacturer part number of the product."},"externalId":{"type":"string","description":"The id of the product in an external application like an ERP. Can be used for synchronization correlation.","nullable":true},"self":{"$ref":"#/components/schemas/ResourceLink"}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"errorCode":{"type":"string","nullable":true},"errorDescription":{"type":"string","nullable":true},"data":{"nullable":true}},"additionalProperties":false}}},"paths":{"/v1/sourcing/bom-definitions":{"get":{"tags":["Sourcing | BOM Definitions"],"summary":"List the BOM definitions of a sales service (currently only base BOM definition is supported)","parameters":[{"name":"serviceId","in":"query","description":"The identifier of the sales service.","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"types","in":"query","description":"Filter the BOM definitions by one or more types.","schema":{"type":"array","items":{"$ref":"#/components/schemas/BomDefinitionType"}}}],"responses":{"200":{"description":"OK: A list of BOM definitions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BomDefinitionList"}}}},"401":{"description":"Unauthorized: Invalid api key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden: Resource access denied or resource does not exist anymore.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"NotFound: Requested resource could not be found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## POST /v1/sourcing/bom-definitions

> Create a new BOM definition for a sales service (currently only one base BOM definition is allowed)

```json
{"openapi":"3.0.4","info":{"title":"Equipme Supplier API","version":"v1"},"tags":[{"name":"Sourcing | BOM Definitions"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"Required for authorization in every request. You can request an API-Key for your tenant in the integrations section of the equipme App.","name":"X-API-KEY","in":"header"}},"schemas":{"BomDefinitionCreate":{"required":["serviceId"],"type":"object","properties":{"serviceId":{"type":"integer","description":"The identifier of the sales service this BOM definition belongs to.","format":"int32"},"items":{"type":"array","items":{"$ref":"#/components/schemas/BomDefinitionItemCreate"},"description":"The products which are items in the BOM definition.","nullable":true}},"additionalProperties":false},"BomDefinitionItemCreate":{"required":["productId","quantity"],"type":"object","properties":{"productId":{"type":"integer","description":"The identifier of the sourcing product to add as a BOM item.","format":"int64"},"quantity":{"maximum":20,"minimum":1,"type":"integer","description":"The quantity of this product in the BOM definition.","format":"int32","default":1},"subscriptionPeriodCondition":{"maximum":2147483647,"minimum":0,"type":"integer","description":"If set, this item only applies to orders of an offer with the matching subscription period.","format":"int32","nullable":true}},"additionalProperties":false},"BomDefinition":{"required":["id","self","type"],"type":"object","properties":{"id":{"type":"integer","description":"The identifier of the BOM definition.","format":"int64"},"type":{"$ref":"#/components/schemas/BomDefinitionType"},"items":{"type":"array","items":{"$ref":"#/components/schemas/BomDefinitionItem"},"description":"The products which are items in this BOM definition.","nullable":true},"self":{"$ref":"#/components/schemas/ResourceLink"}},"additionalProperties":false},"BomDefinitionType":{"enum":["base","combination","additive"],"type":"string"},"BomDefinitionItem":{"required":["id","product","quantity","self"],"type":"object","properties":{"id":{"type":"integer","description":"The identifier of the BOM definition item.","format":"int64"},"product":{"$ref":"#/components/schemas/ProductReference"},"quantity":{"type":"integer","description":"The quantity of this product in the BOM definition.","format":"int32","default":1},"subscriptionPeriodCondition":{"type":"integer","description":"If set, this item only applies to orders of an offer with the matching subscription period.","format":"int32","nullable":true},"self":{"$ref":"#/components/schemas/ResourceLink"}},"additionalProperties":false},"ProductReference":{"required":["id","name","partNumber","self"],"type":"object","properties":{"id":{"type":"integer","description":"The identifier of the product.","format":"int64"},"name":{"minLength":1,"type":"string","description":"The name of the product."},"partNumber":{"minLength":1,"type":"string","description":"The manufacturer part number of the product."},"externalId":{"type":"string","description":"The id of the product in an external application like an ERP. Can be used for synchronization correlation.","nullable":true},"self":{"$ref":"#/components/schemas/ResourceLink"}},"additionalProperties":false},"ResourceLink":{"required":["href"],"type":"object","properties":{"href":{"minLength":1,"type":"string","description":"The target resource URI."},"method":{"type":"string","description":"The HTTP method to use for the request.","nullable":true}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"errorCode":{"type":"string","nullable":true},"errorDescription":{"type":"string","nullable":true},"data":{"nullable":true}},"additionalProperties":false}}},"paths":{"/v1/sourcing/bom-definitions":{"post":{"tags":["Sourcing | BOM Definitions"],"summary":"Create a new BOM definition for a sales service (currently only one base BOM definition is allowed)","requestBody":{"description":"Information of the BOM definition to be created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BomDefinitionCreate"}}}},"responses":{"201":{"description":"Created: The created BOM definition.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BomDefinition"}}}},"400":{"description":"Bad request: Body validation failed. See response message for details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized: Invalid api key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden: Resource access denied or resource does not exist anymore.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict: A base BOM definition already exists for this service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## POST /v1/sourcing/bom-definitions/{bomDefinitionId}/items

> Add a product item to an existing BOM definition

```json
{"openapi":"3.0.4","info":{"title":"Equipme Supplier API","version":"v1"},"tags":[{"name":"Sourcing | BOM Definitions"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"Required for authorization in every request. You can request an API-Key for your tenant in the integrations section of the equipme App.","name":"X-API-KEY","in":"header"}},"schemas":{"BomDefinitionItemCreate":{"required":["productId","quantity"],"type":"object","properties":{"productId":{"type":"integer","description":"The identifier of the sourcing product to add as a BOM item.","format":"int64"},"quantity":{"maximum":20,"minimum":1,"type":"integer","description":"The quantity of this product in the BOM definition.","format":"int32","default":1},"subscriptionPeriodCondition":{"maximum":2147483647,"minimum":0,"type":"integer","description":"If set, this item only applies to orders of an offer with the matching subscription period.","format":"int32","nullable":true}},"additionalProperties":false},"BomDefinitionItem":{"required":["id","product","quantity","self"],"type":"object","properties":{"id":{"type":"integer","description":"The identifier of the BOM definition item.","format":"int64"},"product":{"$ref":"#/components/schemas/ProductReference"},"quantity":{"type":"integer","description":"The quantity of this product in the BOM definition.","format":"int32","default":1},"subscriptionPeriodCondition":{"type":"integer","description":"If set, this item only applies to orders of an offer with the matching subscription period.","format":"int32","nullable":true},"self":{"$ref":"#/components/schemas/ResourceLink"}},"additionalProperties":false},"ProductReference":{"required":["id","name","partNumber","self"],"type":"object","properties":{"id":{"type":"integer","description":"The identifier of the product.","format":"int64"},"name":{"minLength":1,"type":"string","description":"The name of the product."},"partNumber":{"minLength":1,"type":"string","description":"The manufacturer part number of the product."},"externalId":{"type":"string","description":"The id of the product in an external application like an ERP. Can be used for synchronization correlation.","nullable":true},"self":{"$ref":"#/components/schemas/ResourceLink"}},"additionalProperties":false},"ResourceLink":{"required":["href"],"type":"object","properties":{"href":{"minLength":1,"type":"string","description":"The target resource URI."},"method":{"type":"string","description":"The HTTP method to use for the request.","nullable":true}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"errorCode":{"type":"string","nullable":true},"errorDescription":{"type":"string","nullable":true},"data":{"nullable":true}},"additionalProperties":false}}},"paths":{"/v1/sourcing/bom-definitions/{bomDefinitionId}/items":{"post":{"tags":["Sourcing | BOM Definitions"],"summary":"Add a product item to an existing BOM definition","parameters":[{"name":"bomDefinitionId","in":"path","description":"Identifier of the BOM definition.","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"description":"Information of the item to be added.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BomDefinitionItemCreate"}}}},"responses":{"201":{"description":"Created: The created BOM definition item.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BomDefinitionItem"}}}},"400":{"description":"Bad request: Body validation failed. See response message for details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized: Invalid api key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden: Resource access denied or resource does not exist anymore.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"NotFound: Requested resource could not be found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## DELETE /v1/sourcing/bom-definitions/{bomDefinitionId}/items/{itemId}

> Remove an item from a BOM definition

```json
{"openapi":"3.0.4","info":{"title":"Equipme Supplier API","version":"v1"},"tags":[{"name":"Sourcing | BOM Definitions"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"Required for authorization in every request. You can request an API-Key for your tenant in the integrations section of the equipme App.","name":"X-API-KEY","in":"header"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"errorCode":{"type":"string","nullable":true},"errorDescription":{"type":"string","nullable":true},"data":{"nullable":true}},"additionalProperties":false}}},"paths":{"/v1/sourcing/bom-definitions/{bomDefinitionId}/items/{itemId}":{"delete":{"tags":["Sourcing | BOM Definitions"],"summary":"Remove an item from a BOM definition","parameters":[{"name":"bomDefinitionId","in":"path","description":"Identifier of the BOM definition.","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"itemId","in":"path","description":"The identifier of the item to be removed.","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"NoContent: Item successfully removed."},"401":{"description":"Unauthorized: Invalid api key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden: Resource access denied or resource does not exist anymore.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"NotFound: Requested resource could not be found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hub.equipme.io/development/api-reference-pro/sourcing-or-bom-definitions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
