Intempt Docs
Developer DocsAPI Reference

Choose API

Resolve server-side experiments and personalizations for a user before you render or respond.

Choose API

POST /v1/{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

ParameterTypeRequiredDescription
orgNamestringYesOrganization name
projectNamestringYesProject name

Query Parameters

ParameterTypeRequiredDescription
apiKeystringYesIntempt API key. Format: identifier.secret

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
identificationobjectYesUser identification — e.g. {"userId": "customer@example.com"}
namesstring[]NoExperience names to resolve
groupsstring[]NoExperience group names to resolve
devicestringNoDevice type — "all", "desktop", or "mobile"
sessionIdstringNoSession identifier for consistent assignment
productIdstringNoProduct identifier, for resolving product-specific experiences
timestampintegerNoEvent timestamp in milliseconds

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

FieldTypeDescription
choicesarrayList of resolved experiences
choices[].namestringExperience name
choices[].groupstringGroup name (optional)
choices[].bodyobjectPayload to apply — structure depends on the experience configuration

On this page