> This page is for API Reference.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://contentful.com/developers/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/developers/docs/_mcp/server.

# Resolve personalized Destination experiences by Destination Node ID

POST https://xdn.contentful.com/spaces/{spaceId}/destinations/{destinationId}/nodes/{nodeId}/experiences
Content-Type: application/json

Resolves the Experience associated with a Destination Node ID and applies optional personalization input from the request body. Send an empty object when no personalization input is needed.

Reference: https://contentful.com/developers/docs/references/experience-delivery-api/destinations-delivery/resolve-personalized-destination-experiences-by-node-id

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `spaceId` (string, required) — ID of the space.
- `destinationId` (string, required) — ID of the published Destination.
- `nodeId` (string, required) — ID of the Destination Node to resolve.

### Body (application/json)

This endpoint expects a DestinationExperiencesByNodeRequest.

- `extensions` (DestinationExperiencesExtensions, optional)

## Response

### 200

OK - Experiences or a redirect resolved

- `DestinationExperienceResolutionResponse`
  - DestinationExperiencesResponse: DestinationExperiencesResponse
  - DestinationRedirectResponse: DestinationRedirectResponse

## Errors

### 400 Bad Request Error

Bad Request - The request could not be parsed

- `sys` (ErrorSys, required)
- `message` (string, optional)
- `requestId` (string, optional)
- `details` (any, optional) — Additional error-specific details.
- `i18nContext` (ErrorI18NContext, optional)

### 401 Unauthorized Error

Unauthorized - Authentication is missing or invalid

- `sys` (ErrorSys, required)
- `message` (string, optional)
- `requestId` (string, optional)
- `details` (any, optional) — Additional error-specific details.
- `i18nContext` (ErrorI18NContext, optional)

### 403 Forbidden Error

Forbidden - The token cannot access this resource

- `sys` (ErrorSys, required)
- `message` (string, optional)
- `requestId` (string, optional)
- `details` (any, optional) — Additional error-specific details.
- `i18nContext` (ErrorI18NContext, optional)

### 404 Not Found Error

Not Found - The Destination, path, or Destination Node could not be resolved

- `sys` (ErrorSys, required)
- `message` (string, optional)
- `requestId` (string, optional)
- `details` (any, optional) — Additional error-specific details.
- `i18nContext` (ErrorI18NContext, optional)

### 409 Conflict Error

Conflict - The request conflicts with the current resource state

- `sys` (ErrorSys, required)
- `message` (string, optional)
- `requestId` (string, optional)
- `details` (any, optional) — Additional error-specific details.
- `i18nContext` (ErrorI18NContext, optional)

### 422 Unprocessable Entity Error

Unprocessable Entity - The request failed validation

- `sys` (ErrorSys, required)
- `message` (string, optional)
- `requestId` (string, optional)
- `details` (any, optional) — Additional error-specific details.
- `i18nContext` (ErrorI18NContext, optional)

### 500 Internal Server Error

Internal Server Error - The request could not be completed

- `sys` (ErrorSys, required)
- `message` (string, optional)
- `requestId` (string, optional)
- `details` (any, optional) — Additional error-specific details.
- `i18nContext` (ErrorI18NContext, optional)

## Types

### DestinationExperiencesExtensions

- `personalization` (DestinationExperiencesExtensionsPersonalization, optional)

### DestinationExperiencesResponse

- `experiences` (list of ResolvedDestinationExperience, required)

### DestinationRedirectResponse

- `redirect` (DestinationRedirectResponseRedirect, required)

### ErrorSys

- `id` (string, required) — Machine-readable error identifier.
- `type` (enum, required)
  - Allowed values: `Error`

### ErrorI18NContext

- `code` (string, required)
- `pluralCount` (double, optional)
- `parameters` (map from string to any, optional)

### DestinationExperiencesExtensionsPersonalization

- `profileId` (string, optional)
- `events` (list of PersonalizationEvent, optional)

### ResolvedDestinationExperience

- `path` (string, required) — Resolved path for this Experience.
- `experience` (HydratedExperience, required) — Hydrated, optionally personalized Experience returned by Delivery View Synthesis.
- `children` (list of ChildPath, required) — Child paths available for lazy loading at the next depth level.

### DestinationRedirectResponseRedirect

- `path` (string, required) — Absolute path of the Destination Experience Node targeted by the redirect.

### PersonalizationEvent

Personalization event supplied while resolving an Experience.

- Page event: PersonalizationPageEvent
- Track event: PersonalizationTrackEvent
- Identify event: PersonalizationIdentifyEvent
- Screen event: PersonalizationScreenEvent
- Component event: PersonalizationComponentEvent

### HydratedExperience

Hydrated, optionally personalized Experience returned by Delivery View Synthesis.

- `sys` (map from string to any, required)
- `nodes` (list of map from string to any, required)
- `errors` (list of map from string to any, required)
- `extensions` (map from string to any, optional)
- `__source` (map from string to any, optional)

### ChildPath

Child path available at the next depth level.

- `path` (string, required)

### PersonalizationPageEvent

- `path` (string, required)
- `query` (string, required)
- `referrer` (string, required)
- `search` (string, required)
- `url` (string, required)

### PersonalizationTrackEvent

Fields shared by personalization events.

- `channel` (enum, required)
  - Allowed values: `web`, `mobile`, `server`, `client`
- `context` (PersonalizationTrackEventContext, required) — Event context, including client library information.
- `messageId` (string, required)
- `timestamp` (string, required)
- `type` (enum, required)
  - Allowed values: `track`
- `event` (string, required)
- `originalTimestamp` (string, optional)
- `sentAt` (string, optional)
- `userId` (string, optional)
- `name` (string, optional)
- `properties` (map from string to any, optional)
- `traits` (map from string to any, optional)
- `componentId` (string, optional)
- `componentType` (enum, optional)
  - Allowed values: `Entry`, `Variable`
- `experienceId` (string, optional)
- `variantIndex` (double, optional)
- `viewDurationMs` (double, optional)
- `viewId` (string, optional)

### PersonalizationIdentifyEvent

Fields shared by personalization events.

- `channel` (enum, required)
  - Allowed values: `web`, `mobile`, `server`, `client`
- `context` (PersonalizationIdentifyEventContext, required) — Event context, including client library information.
- `messageId` (string, required)
- `timestamp` (string, required)
- `userId` (string, required)
- `type` (enum, required)
  - Allowed values: `identify`
- `traits` (map from string to any, required)
- `originalTimestamp` (string, optional)
- `sentAt` (string, optional)
- `name` (string, optional)
- `event` (string, optional)
- `properties` (map from string to any, optional)
- `componentId` (string, optional)
- `componentType` (enum, optional)
  - Allowed values: `Entry`, `Variable`
- `experienceId` (string, optional)
- `variantIndex` (double, optional)
- `viewDurationMs` (double, optional)
- `viewId` (string, optional)

### PersonalizationScreenEvent

- `name` (string, required)

### PersonalizationComponentEvent

Fields shared by personalization events.

- `channel` (enum, required)
  - Allowed values: `web`, `mobile`, `server`, `client`
- `context` (PersonalizationComponentEventContext, required) — Event context, including client library information.
- `messageId` (string, required)
- `timestamp` (string, required)
- `type` (enum, required)
  - Allowed values: `component`
- `componentId` (string, required)
- `originalTimestamp` (string, optional)
- `sentAt` (string, optional)
- `userId` (string, optional)
- `name` (string, optional)
- `event` (string, optional)
- `properties` (map from string to any, optional)
- `traits` (map from string to any, optional)
- `componentType` (enum, optional)
  - Allowed values: `Entry`, `Variable`
- `experienceId` (string, optional)
- `variantIndex` (double, optional)
- `viewDurationMs` (double, optional)
- `viewId` (string, optional)

### PersonalizationTrackEventContext

Event context, including client library information.

- `library` (PersonalizationTrackEventContextLibrary, required)

### PersonalizationIdentifyEventContext

Event context, including client library information.

- `library` (PersonalizationIdentifyEventContextLibrary, required)

### PersonalizationComponentEventContext

Event context, including client library information.

- `library` (PersonalizationComponentEventContextLibrary, required)

### PersonalizationTrackEventContextLibrary

- `name` (string, required)
- `version` (string, required)

### PersonalizationIdentifyEventContextLibrary

- `name` (string, required)
- `version` (string, required)

### PersonalizationComponentEventContextLibrary

- `name` (string, required)
- `version` (string, required)

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "experiences": [
    {
      "children": [
        {
          "path": "string"
        }
      ],
      "experience": {
        "__source": {},
        "errors": [
          {}
        ],
        "extensions": {},
        "nodes": [
          {}
        ],
        "sys": {}
      },
      "path": "string"
    }
  ]
}
```