
## Recommendations
---

### RecommendationRequestBody
Class responsible for creating a recommendation request.

**Declared In:**  
`com.synerise.sdk.content.model.recommendation.RecommendationRequestBody`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-137">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-137-0" data-tab-group="tabgrp-137" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-137-1" data-tab-group="tabgrp-137">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-137-0" data-tab-group="tabgrp-137" data-tab-active="true">

```Java
public final class RecommendationRequestBody implements Serializable
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-137-1" data-tab-group="tabgrp-137">

```Kotlin
class RecommendationRequestBody:Serializable
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **productId** | String | no | - | Item identifier of the context item |
| **itemsIds** | ArrayList<String> | no | - | List of item identifiers, used for multiple item context |
| **itemsExcluded** | ArrayList<String> | no | Items that will be excluded from the generated recommendations | | **additionalFilters** | String | no | Additional filters. These are merged with the campaign's own filters according to the logic in **filtersJoiner** |
| **filtersJoiner** | String | no | Defines the logic of merging additionalFilters with the campaign's existing filters | | **additionalElasticFilters** | String | no | Additional elastic filters. These are merged with the campaign's own elastic filters according to the logic in **elasticFiltersJoiner** |
| **elasticFiltersJoiner** | String | no | Defines the logic of merging **additionalElasticFilters** with the campaign's existing elastic filters | | **displayAttribute** | ArrayList<String> | no | An array of item attributes which value will be returned in a recommendation response |
| **includeContextItems** | Boolean | no | When true, the recommendation response will include context item metadata |


**Initializers:**  

There are no initializers.

**Methods:**  

Setter for productId


<pre><code class="language-java">public RecommendationRequestBody setProductId(String productId)</code></pre>


---

Setter for itemsIds


<pre><code class="language-java">public RecommendationRequestBody setItemsIds(ArrayList&lt;String&gt; itemsIds)</code></pre>


--- 

---
---

### RecommendationResponse
Class responsible for receiving recommendations.

**Declared In:**  
`com.synerise.sdk.content.model.recommendation.RecommendationResponse`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-138">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-138-0" data-tab-group="tabgrp-138" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-138-1" data-tab-group="tabgrp-138">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-138-0" data-tab-group="tabgrp-138" data-tab-active="true">

```Java
public class RecommendationResponse
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-138-1" data-tab-group="tabgrp-138">

```Kotlin
class RecommendationResponse
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **recommended** | List<[Recommendation](/developers/mobile-sdk/class-reference/android/recommendations-and-documents#recommendation)> | no | - | List of recommendations |
| **extras** | RecommendationResponseExtras | yes | - | Additional details of the recommendation |
| **name** | String | no | - | Name of the recommendation campaign |
| **campaignHash** | String | no | - | Hash (UUID) of the recommendation campaign |
| **campaignId** | String | no | - | ID of the recommendation campaign |
| **correlationId** | String | no | - | Recommendation's correlation ID. It can be added to a `recommendation.click` event to associate it with the recommendation request |
| **schema** | String | no | - | Schema of the document which contains the recommendation |
| **slug** | String | no | - | Slug of the document |
| **uuid** | String | no | - | UUID of the document |


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>


**Initializers:**  

There are no initializers.

**Methods:**  

This method retrieves a recommendation schema.


<pre><code class="language-java">public String getSchema()</code></pre>


---

This method retrieves the value of the `slug` parameter.


<pre><code class="language-java">public String getSlug()</code></pre>


---

This method retrieves the value of the `UUID` parameter.


<pre><code class="language-java">public String getUuid()</code></pre>


---

This method retrieves a list of recommendations.


<pre><code class="language-java">public List&lt;Recommendation&gt; getRecommendationsV2()</code></pre>


---

This method retrieves the value of the `campaignHash` parameter.


<pre><code class="language-java">public String getCampaignHash()</code></pre>


---

This method retrieves the value of the `campaignId` parameter.


<pre><code class="language-java">public String getCampaignId()</code></pre>


---

---
---

### Recommendation
Class model for a recommendation.

**Declared In:**  
`com.synerise.sdk.content.model.recommendation.Recommendation`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-139">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-139-0" data-tab-group="tabgrp-139" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-139-1" data-tab-group="tabgrp-139">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-139-0" data-tab-group="tabgrp-139" data-tab-active="true">

```Java
public class Recommendation extends BaseModel
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-139-1" data-tab-group="tabgrp-139">

```Kotlin
class Recommendation : BaseModel
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **itemId** | String | no | - | Product's GTIN |
| **feed** | HashMap<String, Object> | no | - | Product’s recommendation attributes |


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters and setters.

</div></div></div>


**Initializers:**  
There are no initializers.

**Methods:**  
There are only getters and setters for the above properties.

---

---
---

### RecommendationAttribute
Class model for custom attributes.

**Declared In:**  
`com.synerise.sdk.content.model.recommendation.RecommendationAtribute`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-140">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-140-0" data-tab-group="tabgrp-140" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-140-1" data-tab-group="tabgrp-140">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-140-0" data-tab-group="tabgrp-140" data-tab-active="true">

```Java
public class RecommendationAtribute
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-140-1" data-tab-group="tabgrp-140">

```Kotlin
class RecommendationAtribute
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **name** | String | no | - | Attribute name |
| **type** | String | no | - | Attribute type |
| **value** | String | no | - | Attribute value |




<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters and setters.

</div></div></div>


**Initializers:**  

There are no initializers.

**Methods:**  

There are only getters and setters for the above properties.

---

## Documents
---

### DocumentApiQuery
Class responsible for creating a query to the Documents API.

**Declared In:**  
`com.synerise.sdk.content.model.DocumentApiQuery`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-141">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-141-0" data-tab-group="tabgrp-141" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-141-1" data-tab-group="tabgrp-141">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-141-0" data-tab-group="tabgrp-141" data-tab-active="true">

```Java
public class DocumentApiQuery
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-141-1" data-tab-group="tabgrp-141">

```Kotlin
class DocumentApiQuery
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **slug** | String | no | Unique identifier of a document |

**Properties used only if the document includes a recommendation insert:**  
| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **productId** | String | no | Item identifier of the context item |
| **itemsIds** | ArrayList<String> | no | List of item identifiers, used for multiple item context |
| **itemsExcluded** | ArrayList<String> | no | Items that will be excluded from the generated recommendations |
| **additionalFilters** | String | no | Additional filters. These are merged with the campaign's own filters according to the logic in **filtersJoiner** |
| **filtersJoiner** | String | no | Defines the logic of merging additionalFilters with the campaign's existing filters |
| **additionalElasticFilters** | String | no | Additional elastic filters. These are merged with the campaign's own elastic filters according to the logic in **elasticFiltersJoiner** |
| **elasticFiltersJoiner** | String | no | Defines the logic of merging **additionalElasticFilters** with the campaign's existing elastic filters |
| **displayAttribute** | ArrayList<String> | no | An array of item attributes which value will be returned in a recommendation response |
| **includeContextItems** | Boolean | no | When true, the recommendation response will include context item metadata |
| **params** | HashMap<String, Object> | yes | Additional parameters to pass for [Inserts in the document](/developers/inserts/screen-views-documents#handling-variables-when-displaying-screen-viewsdocuments). For example, if the insert is `{{ foo }}`, you need to pass the value of `foo` |

**Initializers:**  

There is a constructor.


<pre><code class="language-java">public DocumentApiQuery(String feedSlug)</code></pre>


**Methods:**  

Setter for feedSlug


<pre><code class="language-java">public void setFeedSlug(String feedSlug)</code></pre>


---

Setter for additionalFilters


<pre><code class="language-java">public DocumentApiQuery setAdditionalFilters(String additionalFilters)</code></pre>


---

Setter for itemsExcluded


<pre><code class="language-java">public DocumentApiQuery setItemsExcluded(ArrayList&lt;String&gt; itemsExcluded)</code></pre>


---

Setter for filtersJoiner


<pre><code class="language-java">public DocumentApiQuery setFiltersJoiner(FiltersJoinerRule filtersJoiner)</code></pre>


---

Setter for additionalElasticFilters


<pre><code class="language-java">public DocumentApiQuery setAdditionalElasticFilters(String additionalElasticFilters)</code></pre>


---

Setter for elasticFiltersJoiner


<pre><code class="language-java">public DocumentApiQuery setElasticFiltersJoiner(FiltersJoinerRule elasticFiltersJoiner)</code></pre>


---

Setter for displayAttributes


<pre><code class="language-java">public DocumentApiQuery setDisplayAttributes(ArrayList&lt;String&gt; displayAttribute)</code></pre>


---

Setter for includeContextItems


<pre><code class="language-java">public DocumentApiQuery setIncludeContextItems(Boolean includeContextItems)</code></pre>


---

Setter for itemsIds


<pre><code class="language-java">public DocumentApiQuery setItemsIds(ArrayList&lt;String&gt; itemsIds)</code></pre>


---

Setter for productId


<pre><code class="language-java">public DocumentApiQuery setProductId(String productId)</code></pre>


---

---
---

### Document
**Declared In:**  
`com.synerise.sdk.content.model.document`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-142">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-142-0" data-tab-group="tabgrp-142" data-tab-active="true">java</button><button class="tab-button" data-tab-id="tabgrp-142-1" data-tab-group="tabgrp-142">kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-142-0" data-tab-group="tabgrp-142" data-tab-active="true">

```java
public class Document
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-142-1" data-tab-group="tabgrp-142">

```kotlin
class Document
```

</div>
</div>


**Properties:**
| Property | Type | Optional | Description |
| --- | --- | --- | --- |
| **uuid** | String | no | Document's identifier (UUID) |
| **slug** | String | no | Document's slug |
| **schema** | String | no | Document's schema type |
| **content** | [AnyHashable: Any] | no | Document's content |


<div class="admonition admonition-note"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

All the properties above are accessible by using getters.

</div></div></div>


**Initializers:**  
There are no initializers.
  
**Methods:**  
There are only getters for the above properties.

---
---

## Removed symbols
---

### <del>DocumentsApiQuery</del>{#documentsapiquery}
The object to set parameters easily for fetching documents from API.
  
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 3.5.10 | 3.5.1 | 0.9.10 | 0.2.0 |
| <span style="color:orange">Deprecated in:</span> | 4.13.0 | 5.5.0 | 0.17.0 | n/a |
| <span style="color:red">Removed in:</span> | 5.0.0 | 6.0.0 | 1.0.0 | 2.0.0 |
Class responsible for creating a query to the Documents API.

**Declared In:**  
`com.synerise.sdk.content.model.DocumentsApiQuery`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-143">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-143-0" data-tab-group="tabgrp-143" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-143-1" data-tab-group="tabgrp-143">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-143-0" data-tab-group="tabgrp-143" data-tab-active="true">

```Java
public class DocumentsApiQuery
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-143-1" data-tab-group="tabgrp-143">

```Kotlin
class DocumentsApiQuery
```

</div>
</div>


**Properties:**  

| Property | Type | Optional | Default | Description |
| --- | --- | --- | --- | --- |
| **type** | [DocumentsApiQueryType](/developers/mobile-sdk/class-reference/android/recommendations-and-documents#documentsapiquerytype) | yes | - | Document's query type |
| **typeValue** | String | yes | - | Document's query type value |
| **version** | String | yes | - | Document version |



**Initializers:**  

There are no initializers.

**Methods:**  

This method sets query parameters.


<pre><code class="language-java">public void setDocumentQueryParameters(DocumentsApiQueryType type, String typeValue)</code></pre>


---

This method sets a document version.


<pre><code class="language-java">public void setVersion(String version)</code></pre>


--- 

---
---

### <del>DocumentsApiQueryType</del>{#documentsapiquerytype}
| | **iOS SDK** | **Android SDK** | **React Native SDK** | **Flutter SDK** |
| --- | --- | --- | --- | --- |
| <span style="color:green">Introduced in:</span> | 3.5.10 | 3.5.1 | 0.9.10 | 0.2.0 |
| <span style="color:orange">Deprecated in:</span> | 4.13.0 | 5.5.0 | 0.17.0 | n/a |
| <span style="color:red">Removed in:</span> | 5.0.0 | 6.0.0 | 1.0.0 | 2.0.0 |
This enum contains values for the Documents API query type.

**Declared In:**  
`com.synerise.sdk.content.model.DocumentsApiQueryType`

**Declaration:**  

<div class="content-tabs code-tabs" data-tab-group="tabgrp-144">
<div class="tab-buttons"><button class="tab-button" data-tab-id="tabgrp-144-0" data-tab-group="tabgrp-144" data-tab-active="true">Java</button><button class="tab-button" data-tab-id="tabgrp-144-1" data-tab-group="tabgrp-144">Kotlin</button></div>

<div class="tab-panel" data-tab-id="tabgrp-144-0" data-tab-group="tabgrp-144" data-tab-active="true">

```Java
public enum DocumentsApiQueryType
```

</div>

<div class="tab-panel" data-tab-id="tabgrp-144-1" data-tab-group="tabgrp-144">

```Kotlin
public enum DocumentsApiQueryType
```

</div>
</div>


**Values:**

| Property | Value | Description |
| --- | --- | --- |
| **SCHEMA** | "by-schema" | Query type |


**Methods:**  

Get by path type.


<pre><code class="language-java">public static DocumentsApiQueryType getByPathType(String type)</code></pre>


---