User Documentation
API Clients & Integrations
Scenario Recipes
Documentation Index
Fetch the complete index at:https://docs.recombee.com/llms.txt
Use this file to discover all available pages before exploring further.
Other Resources
- To see a complete guide for AI assistants carrying out a Recombee integration, go to:https://docs.recombee.com/ai_assistant_guide.md
- To access the entire documentation in a single Markdown file, go to:https://docs.recombee.com/llms-full.txt
- Every page has a Markdown twin: append
.mdto its URL (for example https://docs.recombee.com/getting_started.md), or request the normal URL with the headerAccept: text/markdown.
For client side (browser, mobile apps …) .js library please see the .js library.
Example
var recombee = require('recombee-api-client');
var rqs = recombee.requests;
var client = new recombee.ApiClient('--your-database-id--', '--your-db-private-token--', { region: 'us-west' });
// Prepare some userIDs and itemIDs
const NUM = 100;
var userIds = Array.apply(0, Array(NUM)).map((_, i) => {
return `user-${i}`;
});
var itemIds = Array.apply(0, Array(NUM)).map((_, i) => {
return `item-${i}`;
});
// Generate some random purchases of items by users
const PROBABILITY_PURCHASED = 0.1;
var purchases = [];
userIds.forEach((userId) => {
var purchased = itemIds.filter(() => Math.random() < PROBABILITY_PURCHASED);
purchased.forEach((itemId) => {
purchases.push(new rqs.AddPurchase(userId, itemId, { 'cascadeCreate': true }))
});
});
// Send the data to Recombee, use Batch for faster processing of larger data
await client.send(new rqs.Batch(purchases))
try {
// Get 5 recommended items for user 'user-25'
const response = await client.send(new rqs.RecommendItemsToUser('user-25', 5));
console.log("Recommended items for user-25: %j", response.recomms);
// User scrolled down - get next 3 recommended items
const nextResponse = await client.send(new rqs.RecommendNextItems(response.recommId, 3));
console.log("Next recommended items for user-25: %j", nextResponse.recomms);
} catch (error) {
console.error(error);
// Use fallback
}