Choose API
Resolve server-side experiments and personalizations for a user before you render or respond.
Choose API
POST /{orgName}/projects/{projectName}/optimization/choose-api
Resolves server-side experiments and personalizations for a user before you render or respond. Use this endpoint to fetch the correct variation or personalization payload, resolve experiences by name or group, and ensure consistent assignments via sessionId + device pairing.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
orgName | string | Yes | Organization name |
projectName | string | Yes | Project name |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
apiKey | string | No | Intempt API key. Format: identifier.secret |
Request Body
Content-Type: application/json
| Field | Type | Description |
|---|---|---|
identification | object | User identification — e.g. {"userId": "customer@example.com"} |
names | string[] | Experience names to resolve |
groups | string[] | Experience group names to resolve |
device | string | Device type — e.g. "desktop", "mobile" |
sessionId | string | Session identifier for consistent assignment |
Examples
Resolve by Experience Names
{
"identification": {
"userId": "customer@example.com"
},
"names": [
"demo-server-side-experiment",
"demo-server-side-personalization-most-popular"
],
"device": "desktop",
"sessionId": "sess_web_20260127_001"
}Resolve Personalization — Mobile
{
"identification": {
"userId": "habilow207@inupup.com"
},
"names": [
"demo-server-side-personalization-recently-viewed"
],
"device": "mobile",
"sessionId": "my_session_2"
}Responses
200 OK
Returns a choices array. Each choice includes the experience name, optional group, and the body payload your backend should apply.
No active experiences
{
"choices": []
}Experiment variation assigned
{
"choices": [
{
"name": "demo-server-side-experiment",
"group": "homepage-experiments",
"body": {
"variant": "B",
"heroLayout": "variantB",
"ctaText": "Start free trial"
}
}
]
}400 Bad Request
Invalid request parameters.
Response Fields
| Field | Type | Description |
|---|---|---|
choices | array | List of resolved experiences |
choices[].name | string | Experience name |
choices[].group | string | Group name (optional) |
choices[].body | object | Payload to apply — structure depends on the experience configuration |
ConsentPOST
Record user consent decisions (accept/reject) for a project. Consent is evaluated in real time and affects tracking and downstream features.
Recommendations Feed APIPOST
Retrieve a ranked list of products from an Intempt recommendation feed — Most Popular, Recently Viewed, Purchased Together, Image Similarity, and more.
