---
title: "Get product recommendations"
method: POST
path: "/recommendations/products"
tags: ["Recommendations"]
---

# Get product recommendations

`POST /recommendations/products`

## Request

- Base URL: `https://api.savanto.ai`
- URL: `https://api.savanto.ai/recommendations/products`
- Auth: HTTP bearer

Retrieve AI-powered product recommendations based on a source product, basket affinity, and optional filters.

## Request body

- RecommendationRequest
  - `productId` string, required
  - `basketAffinity` object[]
    - `productId` string, required
    - `frequency` number, required
  - `complimentaryProducts` string[]
  - `userId` string
  - `weights` object
    - `similarProducts` number
    - `basketAffinity` number
    - `memoryBased` number
  - `maxRecommendations` integer
  - `excludeProductIds` string[]
  - `productFilter` object

## Response `200`

Product recommendations

- object
  - `object` 'recommendations', required
  - `requestId` string, required
  - `data` object, required

## Other responses

- `400`: Validation error
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict
- `413`: Payload too large
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/savanto/apis/savanto-api.md) · [All operations](https://skmtc.dev/savanto/apis/savanto-api/llms.txt) · [OpenAPI document](https://skmtc.dev/savanto/apis/savanto-api/revisions/82437327a878?raw)
