# Products API

## Create or update a product

> Creates or updates a product with the provided details

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Integration API","version":"1.0.0"},"servers":[{"url":"https://integration-api.userflux.co"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{}},"paths":{"/product":{"post":{"summary":"Create or update a product","description":"Creates or updates a product with the provided details","operationId":"upsertProduct","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","typeId","properties"],"properties":{"id":{"type":"string","description":"Unique identifier for the product"},"typeId":{"type":"string","description":"Type identifier for the product"},"properties":{"type":"object","description":"JSON object containing custom product properties","additionalProperties":true},"propertiesUpdateType":{"type":"string","description":"The type of update. Valid values are either FULL_UPDATE or INCREMENTAL_UPDATE. When using full update mode, any pre-existing properties not included in the request will be removed. Defaults to INCREMENTAL_UPDATE."}}}}}},"responses":{"204":{"description":"Product created successfully (No Content)"},"400":{"description":"Bad Request - Invalid input parameters"},"401":{"description":"Unauthorized - Authentication credentials are missing or invalid"},"403":{"description":"Forbidden - Insufficient permissions to perform the operation"},"500":{"description":"Internal Server Error - Unexpected server error occurred"}}}}}}
```

## Delete a product

> Deletes a product with the provided details

OpenAPI:

```json
{"openapi":"3.0.0","info":{"title":"Integration API","version":"1.0.0"},"servers":[{"url":"https://integration-api.userflux.co"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{}},"paths":{"/product/{typeId}/{productId}":{"delete":{"summary":"Delete a product","description":"Deletes a product with the provided details","operationId":"deleteProduct","parameters":[{"name":"typeId","in":"path","description":"ID of the Product Type","required":true,"schema":{"type":"string"}},{"name":"productId","in":"path","description":"ID of the Product","required":true,"schema":{"type":"string"}}]}}}}
```

{% openapi-schemas spec="integration-api" schemas="UpsertProductRequest" grouped="true" %}
[Broken link](broken-reference)
{% endopenapi-schemas %}
