# Integration | Features

> Source: https://www.recombee.com/features/integration

> For the complete site index, see [llms.txt](/llms.txt). To integrate Recombee, see the developer documentation at https://docs.recombee.com/llms.txt.

[Features](https://www.recombee.com/features)

[Recommendations & Search](https://www.recombee.com/features/recommendations-search)

[Real-Time Analytics & Insights](https://www.recombee.com/features/real-time-analytics-insights)

[Full Control with Scenario Settings](https://www.recombee.com/features/full-control-with-scenario-settings)

[Business Rules](https://www.recombee.com/features/business-rules)

[Integration](https://www.recombee.com/features/integration)
* [Easy Integration](#easy-integration)
* [API SDKs](#api-sdks)
* [Widget SDKs](#widget-sdks)
* [No-Code Widgets](#no-code-widgets)
* [Catalog Feeds](#catalog-feeds)
* [Support](#support)

[Scalability](https://www.recombee.com/features/scalability)

Recommendations & SearchReal-Time Analytics & InsightsFull Control with Scenario SettingsBusiness RulesIntegrationScalability

Integration

# Easy Integration

Recombee makes integration a breeze with its well-structured **REST API** and **SDKs**. Coupled with tools like catalog feed processing, **No-Code widgets**, and pre-built integrations with platforms like [Segment](https://docs.recombee.com/segment), we streamline the entire integration process for your development teams.

![](https://www.recombee.com/img/integration-schema.svg)

[Read the documentation](https://docs.recombee.com/)

## API SDKs

Take advantage of SDKs available in multiple programming languages, supporting server-side, client-side, and hybrid integrations.

![](https://www.recombee.com/img/features/sdks.png)

Recombee offers API SDKs in multiple programming languages, ensuring effortless implementation and maintenance for both server-side and client-side integrations, or a combination of both.

![](https://www.recombee.com/img/codes/icon-javascript.svg)JavaScript

![](https://www.recombee.com/img/codes/icon-python.svg)Python

![](https://www.recombee.com/img/codes/icon-ruby.svg)Ruby

![](https://www.recombee.com/img/codes/icon-java.svg)Java

![](https://www.recombee.com/img/codes/icon-nodejs.svg)Node.js

![](https://www.recombee.com/img/codes/icon-android.svg)Android

![](https://www.recombee.com/img/codes/icon-ios.svg)iOS

![](https://www.recombee.com/img/codes/icon-php.svg)PHP

![](https://www.recombee.com/img/codes/icon-net.svg).NET

![](https://www.recombee.com/img/codes/icon-go.svg)Go

![](https://www.recombee.com/img/codes/icon-rest.svg)REST

* [_![](https://www.recombee.com/img/codes/icon-javascript.svg)_JavaScript](#code-javascript)
* [_![](https://www.recombee.com/img/codes/icon-python.svg)_Python](#code-python)
* [_![](https://www.recombee.com/img/codes/icon-ruby.svg)_Ruby](#code-ruby)
* [_![](https://www.recombee.com/img/codes/icon-java.svg)_Java](#code-java)
* [_![](https://www.recombee.com/img/codes/icon-nodejs.svg)_Node.js](#code-nodejs)
* [_![](https://www.recombee.com/img/codes/icon-android.svg)_Android](#code-android)
* [_![](https://www.recombee.com/img/codes/icon-ios.svg)_iOS](#code-ios)
* [_![](https://www.recombee.com/img/codes/icon-php.svg)_PHP](#code-php)
* [_![](https://www.recombee.com/img/codes/icon-net.svg)_.NET](#code-net)
* [_![](https://www.recombee.com/img/codes/icon-go.svg)_Go](#code-go)
* [_![](https://www.recombee.com/img/codes/icon-rest.svg)_REST](#code-rest)

```javascript
const client = new recombee.ApiClient('database-id', dbPublicToken);

// Send a view of item 'item_x' by user 'user_42'
client.send(new recombee.AddDetailView('user_42', 'item_x'));

// Get 5 recommended items for user 'user_42'. Recommend only items which haven't expired yet.
const recommended = await client.send(
   new recombee.RecommendItemsToUser('user_42', 5, {filter: "'expires' > now()"})
);
```

[See Recombee API Client for JavaScript on Github](https://github.com/recombee/js-api-client)

```ruby
client = RecombeeClient.new('database-id', secret_token)

# Send a view of item 'item_x' by user 'user_42'. Create user and/or item if it doesn't exist yet.
client.send(AddDetailView.new('user_42', 'item_x', 'cascadeCreate' => true))

# Get 5 recommended items for user 'user_42'. Recommend only items which haven't expired yet.
recommended = client.send(RecommendItemsToUser.new('user_42', 5, 'filter' => "'expires' > now()"))
```

[See Recombee API Client for Ruby on Github](https://github.com/Recombee/ruby-api-client)

```java
RecombeeClient client = new RecombeeClient("database-id", secretToken);

// Send a view of item "item_x" by user "user_42". Create user and/or item if it doesn't exist yet.
client.send(new AddDetailView("user_42", "item_x").setCascadeCreate(true));

// Get 5 recommended items for user "user_42". Recommend only items which haven't expired yet.
RecommendationResponse recommended = client.send(
   new RecommendItemsToUser("user_42", 5).setFilter("'expires' > now()")
);
```

[See Recombee API Client for Java on Github](https://github.com/recombee/java-api-client)

```python
client = RecombeeClient('database-id', secret_token)

# Send a view of item 'item_x' by user 'user_42'. Create user and/or item if it doesn't exist yet.
client.send(AddDetailView('user_42', 'item_x', cascade_create=True))

# Get 5 recommended items for user 'user_42'. Recommend only items which haven't expired yet.
recommended = client.send(RecommendItemsToUser('user_42', 5, filter="'expires' > now()"))
```

[See Recombee API Client for Python on Github](https://github.com/recombee/python-api-client)

```javascript
const client = new recombee.ApiClient('database-id', secretToken);

// Send a view of item 'item_x' by user 'user_42'. Create user and/or item if it doesn't exist yet.
client.send(new rqs.AddDetailView('user_42', 'item_x', {cascadeCreate: true}), callback);

// Get 5 recommended items for user 'user_42'. Recommend only items which haven't expired yet.
const recommended = await client.send(
   new rqs.RecommendItemsToUser('user_42', 5, {filter: "'expires' > now()"})
); // Supports both Promises and callbacks
```

[See Recombee API Client for Node.js on Github](https://github.com/Recombee/node-api-client)

```kotlin
val client = RecombeeClient(databaseId = "yourDatabaseId", publicToken = dbPublicToken,)

// Send a view of item 'item_x' by user 'user_42'
client.send(AddDetailView("user_42", "item_x"));

// Get 5 recommended items for user 'user_42'. Recommend only items which haven't expired yet.
val result =  client.sendAsync(RecommendItemsToUser("user_42", count = 5, filter = "'expires' > now()"))

result.onSuccess { response: RecommendationResponse ->
  // Show recommendations
}
```

[See Recombee API Client for Android on Github](https://github.com/Recombee/kotlin-api-client)

```swift
let client = RecombeeClient(databaseId: "yourDatabaseId", publicToken: dbPublicToken, region: .euWest)

try await client.send(AddDetailView(userId: "user_42", itemId: "item_x"))

let result = try await client.send(RecommendItemsToUser(userId: "user_42", count: 5, filter: "'expires' > now()"))

result.recomms.forEach { print($0.id) }
```

[See Recombee API Client for iOS on Github](https://github.com/Recombee/swift-api-client)

```php
$client = new Client('database-id', $secret_token);

// Send a view of item 'item_x' by user 'user_42'. Create user and/or item if it doesn't exist yet.
$client->send(new Reqs\AddDetailView('user_42', 'item_x', ['cascadeCreate' => true]));

// Get 5 recommended items for user 'user_42'. Recommend only items which haven't expired yet.
$recommended = $client->send(new Reqs\RecommendItemsToUser('user_42', 5, ['filter' => "'expires' > now()"]));
```

[See Recombee API Client for PHP on Github](https://github.com/Recombee/php-api-client)

```csharp
var client = new RecombeeClient("database_id", secretToken);

// Send a view of item "item_x" by user "user_42". Create user and/or item if it doesn't exist yet.
client.Send(new AddDetailView("user_42", "item_x", cascadeCreate: true));

// Get 5 recommended items for user 'user_42'. Recommend only items which haven't expired yet.
var recommended = client.Send(new RecommendItemsToUser("user_42", 5, filter: "'expires' > now()"));
```

[See Recombee API Client for .NET on Github](https://github.com/Recombee/net-api-client)

```go
client, _ := recombee.NewRecombeeClient("databaseId", secretToken)

// Send a view of item 'item_x' by user 'user_42', creating user/item if they don't exist
client.NewAddDetailView("user_42", "item_x").SetCascadeCreate(true).Send()

// Get 5 recommended items for user 'user_42', filtering out expired items
recommendRes, _ := client.NewRecommendItemsToUser("user_42", 5).SetFilter("'expires' > now()").Send()

// Print recommended item IDs
for _, rec := range recommendRes.Recomms {
  fmt.Println(rec.Id)
}
```

[See Recombee API Client for .NET on Github](https://github.com/Recombee/net-api-client)

```ruby
# Send a view of item 'item_x' by user 'user_id'. Create user and/or item if it doesn't exist yet.
POST https://rapi.recombee.com/database_id/detailviews/
Data: {'userId': 'user_42', 'itemId': 'item_x', 'cascadeCreate': true}

# Get 5 recommended items for user 'user_42'.
# Recommend only items which haven't expired yet (filter: 'expires' > now()).
GET https://rapi.recombee.com/database_id/recomms/users/user_42/items/?count=5&filter=%27expires%27%3Enow()
```

[See more API documentation](https://docs.recombee.com/getting_started)

[Read SDKs documentation](https://docs.recombee.com/api_clients)

## Widget SDKs

Display recommendations on your site with ease, while keeping full control over how they look and feel.

![](https://www.recombee.com/img/features/widget-sdks.png)

Recombee’s Widget SDKs are a collection of **customizable, pre-built components** that let you **easily embed personalized recommendations and search** into your website or app. They speed up development by offering ready-to-use components for carousels, feeds, grids, and quick search. These widgets handle the heavy lifting for you, from fetching recommendations to managing loading states and reacting to user interactions.

The widgets are built for flexibility, so your team can **fully adapt them** to match your site’s design using **custom CSS** or your **own rendering templates**. They’re also **fully responsive**, so users get a seamless experience on any screen size or device.

The SDKs are **optimized for modern front-end frameworks like React**, making it simple to build rich, fast, and personalized user experiences without sacrificing performance or design consistency.

[Explore Widget SDKs](https://docs.recombee.com/widget-sdks/)

## No-Code Widgets

For those seeking a no-code option, Recombee provides an intuitive way to integrate recommendations and search functionality directly into your website.

![](https://www.recombee.com/img/features/integration-html-widgets.png)

Our "WYSIWYG (What You See Is What You Get)" editor in the Recombee Admin UI allows you to design and customize widgets to fit both desktop and mobile layouts.

**Available Widget Types**

![](https://www.recombee.com/img/features/integration-html-widget-grid.png)Grid

![](https://www.recombee.com/img/features/integration-html-widget-carousel.png)Carousel

![](https://www.recombee.com/img/features/integration-html-widget-feed.png)Infinite Feed

![](https://www.recombee.com/img/features/integration-html-widget-quick-search.png)Quick Search

Once you've configured your widget, deployment is straightforward: simply **copy the provided embed code and paste it into your website.** Whether for recommendations or a search box, the widget will seamlessly integrate into your site.

![](https://www.recombee.com/img/features/integration-html-widgets-embed.png)

You can also enhance its appearance further by applying your own CSS for a perfect match with your website’s style.

[Read No-Code Widgets Documentation](https://docs.recombee.com/no-code-widgets)

## Catalog Feeds

Catalog synchronization with Recombee can be achieved through the API or by using catalog feeds.

Popular formats like **Google Merchant feed, RSS feed, custom XML, CSV, and JSON** are supported out of the box. Plus, feed processing settings are **easy to configure** directly in the Recombee Admin UI.

[Read Catalog Feeds Documentation](https://docs.recombee.com/catalog_feeds)

## Support

![](https://www.recombee.com/img/features/support.png)

[Documentation](https://docs.recombee.com/): Recombee offers **comprehensive public documentation** to assist with your integration and usage needs.

**Email Support**: For any questions or further clarification, our skilled support team is readily available at [support@recombee.com](mailto:support@recombee.com).

**Video Calls and Slack Support:** Available exclusively for Pro and Premium plans, our team is just a video call or Slack message away, offering tailored support and guidance.

## Explore More

[![Business Rules](https://www.recombee.com/img/features/business-rules.png)Business Rules](https://www.recombee.com/features/business-rules)
[![Scalability](https://www.recombee.com/img/features/scalability.png)Scalability](https://www.recombee.com/features/scalability)