---
title: "createProductRecommendation"
method: POST
path: "/v1/product-recommendation"
tags: ["Product Recommendation"]
---

# createProductRecommendation

`POST /v1/product-recommendation`

Create a new product recommendation entity

## Request body

- ProductRecommendationCreate
  - `_schema` 'product_recommendation'
  - `source_price` object — Price being used as source
    - `$relation` BaseRelation[]
      - `$relation` object[], required
        - `entity_id` string, uuid
        - `_tags` string[], nullable
  - `source_product` object — Product being used as source
    - `$relation` BaseRelation[]
      - `$relation` object[], required
        - `entity_id` string, uuid
        - `_tags` string[], nullable
  - `type` 'change' | 'cross-sell' | 'up-sell', required — Type of product recommendation
  - `offers` Offer[]
    - `product_id` string
    - `price_id` string
    - `target_id` string
  - `_tags` string[], nullable
  - `_purpose` string[], nullable
  - `_files` BaseRelation
    - `$relation` object[], required
      - `entity_id` string, uuid
      - `_tags` string[], nullable
  - `_manifest` string[] — Manifest ID used to create/update the entity
  - `__additional` object, nullable — Additional fields that are not part of the schema

## Response `201`

Product recommendations request payload

- ProductRecommendation
  - `_id` string, uuid
  - `_schema` 'product_recommendation', required
  - `_org` string, required — Organization Id the entity belongs to
  - `_tags` string[], nullable
  - `_files` BaseRelation
    - `$relation` object[], required
      - `entity_id` string, uuid
      - `_tags` string[], nullable
  - `_owners` BaseEntityOwner[]
    - `org_id` string, required
    - `user_id` string
  - `_title` string
  - `_created_at` string, date-time
  - `_updated_at` string, date-time
  - `_acl` BaseEntityAcl — Access control list (ACL) for an entity. Defines sharing access to external orgs or users.
    - `view` string[]
    - `edit` string[]
    - `delete` string[]
  - `source_price` object — Price being used as source
    - `$relation` BaseRelation[]
      - `$relation` object[], required
        - `entity_id` string, uuid
        - `_tags` string[], nullable
  - `source_product` object — Product being used as source
    - `$relation` BaseRelation[]
      - `$relation` object[], required
        - `entity_id` string, uuid
        - `_tags` string[], nullable
  - `type` 'change' | 'cross-sell' | 'up-sell', required — Type of product recommendation
  - `offers` Offer[]
    - `product_id` string
    - `price_id` string
    - `target_id` string
  - `_purpose` string[], nullable
  - `_manifest` string[] — Manifest ID used to create/update the entity
  - `__additional` object, nullable — Additional fields that are not part of the schema

## Other responses

- `400` — Any error based on client data errors
- `500` — Any error based on the server-side

---

[API](https://skmtc.dev/epilot/apis/product-api.md) · [All operations](https://skmtc.dev/epilot/apis/product-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/epilot/product-api/revisions/246cfb2edf7f/schema)
