Skip to content

Recommend items for a user or device

GET
/v1/recommendations
curl --request GET \
--url 'https://your-tenant-host/v1/recommendations?scenario=read-next&count=5' \
--header 'Authorization: Bearer <token>'

Recombee’s recommendations, for Braze Connected Content and server-rendered pages. The site is the API key’s pin. Subject: userId, else domainUserId; neither is an empty 200 and no Recombee call. Only the site’s items that are not deleted are recommended, narrowed by the optional feed filter params (OR within a param, AND across); the scenario, authored in Recombee, adds its own filters on top. An answer is cached for 15 minutes per key site and full URL, so edition makes one edition’s renders share one answer and one recommId. /edgekit/v1/recommendations is the browser mount: the x-edgekit-site-id header and origin allowlist, the subject the EdgeKit session (none at an external_only site), else domainUserId, never cached. Every call spends the organization’s Recombee quota. A Recombee timeout or outage is a 503 with Retry-After.

section

An item in any of these sections.

Array<string>
<= 200 items

An item in any of these sections.

tag

An item with any of these tags.

Array<string>
<= 200 items

An item with any of these tags.

author

An item by any of these authors.

Array<string>
<= 200 items

An item by any of these authors.

contentType

An item of any of these types.

Array<string>
<= 200 items

An item of any of these types.

excludeSection

No item in these sections.

Array<string>
<= 200 items

No item in these sections.

excludeTag

No item with these tags.

Array<string>
<= 200 items

No item with these tags.

excludeContentType

No item of these types.

Array<string>
<= 200 items

No item of these types.

language

An item in any of these languages.

Array<string>
<= 200 items

An item in any of these languages.

publishedAfter

Only items first published at or after this instant.

string format: date-time

Only items first published at or after this instant.

publishedBefore

Only items first published at or before this instant.

string format: date-time

Only items first published at or before this instant.

excludeAlreadyRead

Leave out items the subject already viewed, as Recombee knows them. Needs Recombee’s interaction ReQL functions enabled on the database.

string

Leave out items the subject already viewed, as Recombee knows them. Needs Recombee’s interaction ReQL functions enabled on the database.

scenario
required

A scenario authored in the organization’s Recombee admin UI, passed through. An unknown one is 422.

string
>= 1 characters <= 200 characters

Example

read-next

A scenario authored in the organization’s Recombee admin UI, passed through. An unknown one is 422.

count
integer
default: 5 >= 1 <= 20

Example

5
item

The article being read: items to item (“read next”) for the subject, rather than items for the subject alone.

string
<= 200 characters

The article being read: items to item (“read next”) for the subject, rather than items for the subject alone.

userId

The signed-in user, on this keyed mount only; the browser mount reads its session.

string
<= 200 characters

The signed-in user, on this keyed mount only; the browser mount reads its session.

domainUserId

The anonymous device, from the tracker’s getDomainUserId(). Read when no user is.

string
<= 200 characters

The anonymous device, from the tracker’s getDomainUserId(). Read when no user is.

edition

Unread: part of the URL, so one edition’s renders share one cached answer.

string
<= 200 characters

Unread: part of the URL, so one edition’s renders share one cached answer.

Recommended items, best first. Empty with no subject or nothing to recommend.

Media typeapplication/json
object
recommId
required

Recombee’s id for this answer, already on every url. Null when there was no subject to ask about.

string | null
items
required
Array<object>
object
id
required

The Recombee item id.

string
headline
required
string | null
description
required
string | null
image
required
string | null
url
required

The canonical URL with recomm_id appended.

string | null
publishedAt
required
string | null format: date-time

Example generated

{
"recommId": "example",
"items": [
{
"id": "example",
"headline": "example",
"description": "example",
"image": "example",
"url": "example",
"publishedAt": "2026-04-15T12:00:00Z"
}
]
}

Invalid request.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Missing or invalid credential.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Not allowed.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Resource not found.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Request validation failed.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Unexpected error.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

With Retry-After, briefly unavailable; without it, not configured.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}