Intempt Docs
Developer DocsAPI Reference

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

ParameterTypeRequiredDescription
orgNamestringYesOrganization name
projectNamestringYesProject name

Query Parameters

ParameterTypeRequiredDescription
apiKeystringNoIntempt API key. Format: identifier.secret

Request Body

Content-Type: application/json

FieldTypeDescription
identificationobjectUser identification — e.g. {"userId": "customer@example.com"}
namesstring[]Experience names to resolve
groupsstring[]Experience group names to resolve
devicestringDevice type — e.g. "desktop", "mobile"
sessionIdstringSession 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

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